Skip to content
0:00 / 0:00

#concatenativeprogramming#stack-basedlanguages#factor

Stanford Seminar - Concatenative Programming: From Ivory to Metal

Stanford Online

1.3M subscribers • 34 videos on Hallway • University channel

YouTube
  • Recommended by 3 people: 2 on Hacker News and 1 on Lobsters.
  • Presented by Jon Purdy, Software Engineer at Microsoft

Intermediate. Assumes working knowledge.

13K views8 years ago3 recommendations

Programming languagesComputer scienceLanguage design and type systemsFunctional programmingComputation and complexity

Jon Purdy introduces concatenative programming, exploring its mathematical foundations, stack-based execution, and potential hardware performance benefits.

EE380: Computer Systems Colloquium Seminar Concatenative Programming: From Ivory to Metal Speaker: Jon Purdy, Microsoft Concatenative programming is a relatively new programming paradigm built on a simple yet powerful tool: function composition. In this talk I will give an overview of concatenative languages from high-level theory down to low-level implementation. I will discuss some historical background, give an overview of the existing concatenative programming literature, then dive into examples of the exciting advantages that these languages may have to offer in terms of program correctness, safety, usability, and performance on the hardware of today and tomorrow. About the Speaker: Jon Purdy is a software engineer who has worked extensively on programming language technology such as compilers, virtual machines, and garbage collectors, both in industry and as a hobbyist. He has worked on the Mono runtime at Xamarin and Microsoft, developed high-performance site integrity infrastructure in Haskell at Facebook, and co-developed an ActionScript compiler for an implementation of Flash. In his spare time he works on Kitten, a statically typed concatenative programming language. For more information about this seminar and its speaker, you can visit ee380.stanford.edu/Abstracts/171115.html Support for the Stanford Colloquium on Computer Systems Seminar Series provided by the Stanford Computer Forum. Colloquium on Computer Systems Seminar Series (EE380) presents the current research in design, implementation, analysis, and use of computer systems. Topics range from integrated circuits to operating systems and programming languages. It is free and open to the public, with new lectures each week. Learn more: bit.ly/WinYX5

Why it's here

3 people recommend this

What people say. Highly recommended as an excellent introduction to the theory and practical advantages of concatenative programming languages.

carapaceon Hacker News • Recommends

On “Why concatenative programming matters (2012)”

I didn't see it linked from the article, Jon Purdy has a great talk about this too: "Concatenative Programming: From Ivory to Metal" (2017) link to this video There's also "A Conversation with Manfred von Thun" link which is worth reading (IMO) if you're interested in concatenative languages. He's the creator of Joy. I've been working with Joy over the last few years now and I really think there's something there. It seems to combine the best features of both Forth and Lisp.

jmivenon Lobsters • Recommends

Concatenative Programming: From Ivory to Metal Jon Purdy is the author of Why concatenative programming matters, discussed here last year.

nemo1618on Hacker News • Recommends

On “Factor: A Practical Stack Languge”

I don't know if it's Baader-Meinhof or what, but I'm seeing concatenative languages all over the place now. Which is great, because now I'm planning to write my own! My gut says that a concatenative language could be ideal for competitive programming, where you want to quickly apply various transformations to your input and immediately see the result. Here's a talk I watched recently describing some of the neat mathematical properties of concatenative languages: link to this video

carapaceon Hacker News • Recommends

On “Minimalism in programming language design”

…are likewise simple. It's easy to reason about functions and derive them in a mathematical way using simple algebra, so it's hard to introduce bugs. I recently found a very good 2017 talk by Jon Purdy describing concatinative programming and it's quirks and (potential) advantages: Stanford Seminar - "Concatenative Programming: From Ivory to Metal" link to this video Anyway, it's made me "allergic" to complexity. I tried Rust. Wrote the beginning of a Joy interpreter. I paused for a month and came back to it and it had become Greek to me, and I can't read Greek. :( Now part of that is just I 'm getting old, but a lot of it is the complexity of Rust. I don't want to pick on Rust though, complexity itself…

henrydarkon Hacker News • Mentions

On “Austral: A Systems Language with Linear Types and Capabilities”

It comes from Linear Logic, where there's no inference A&B->A. I think the point of the name is "there's always progress". This talk explains some other origins as well as the connections between different logics to different type systems (though the focus is on stack languages) link to this video