HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Stanford Seminar - Concatenative Programming: From Ivory to Metal

Stanford Online · Youtube · 5 HN points · 4 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Stanford Online's video "Stanford Seminar - Concatenative Programming: From Ivory to Metal".
Youtube Summary
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 http://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: http://bit.ly/WinYX5
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
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) https://www.youtube.com/watch?v=_IgqJr8jG8M

There's also "A Conversation with Manfred von Thun" http://archive.vector.org.uk/art10000350 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.

adastra22
It’s still possible to work with Joy today?
carapace
The C source on the old site compiled and ran when I tried it: https://www.kevinalbrecht.com/code/joy-mirror/joy.html (mirror)

My own project is here: https://joypy.osdn.io/ It includes interpreters in Python, Prolog, and Nim (and a start on Rust) and some explorations of compilers and type inference/checking written in Prolog.

Hear, hear! Wise words from the genius who created Turing Drawings.

It's becoming more and more important to treat complexity as a kind of technical debt that has the potential at any moment to metastasize into eldritch horror.

I've been playing with what you could call a minimalist programming language: Joy created by Manfred von Thun (who was a philosophy professor! See "A Conversation with Manfred von Thun" http://archive.vector.org.uk/art10000350 ) It combines features of Lisp and Forth, and I suspect it may be the simplest useful language. The syntax is enormously simple, and the semantics 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" https://www.youtube.com/watch?v=_IgqJr8jG8M

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 is the enemy (Rust is, if anything, an improvement on most of what has come before it, eh? I think only Ada can really be said to be Rust's peer?)

Aug 26, 2021 · 2 points, 0 comments · submitted by davegauer
Jan 17, 2020 · 3 points, 1 comments · submitted by tosh
pgtan
I see LOGO also as a kind of (lispy, interactive, left to right!) concatenative langugage. Here is an example, an ASCII christmass tree we made with the kid recently:

    ?  tanne.print tanne.output tanne.shift tanne.split 19 3 3 
             x
            xxx
           xxxx*
          oOOOx
           OxO
          ~oxoOox
         ~~o*o**O
        *o~*~x*OO
       x~Ox*x~~xOx*
        *~ox*x*O*O
       xO~ox~~*~
      oxoxxox~~xx**
     *O*o~OOo~*o**
    ~xOxOx~x*o*x*O
    
just putting something in between:

    ? tanne.print butlast tanne.output tanne.shift tanne.split 19 3 3 
          
         x*
        xxO*
       x*o*Oo
        oo*x
       o~ox~*x
      xOoOOOx*
     **o*xoo
    o***OO**x~
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: https://www.youtube.com/watch?v=_IgqJr8jG8M

tluyben2
I implement small Forth-likes quite a lot, for instance [0].

I really like having something to explore 70-80s machines (other than Basic), hardware and systems that have no/bad Repls (like Xamarin). This kind of thing is ideal for that as it takes a really short time to implement, gives full and flexible access and it is fast enough to prototype things with.

[0] https://gist.github.com/tluyben/16ee2645c4c8aed813005d51488d...

Stanford EE380 talk by Jon Purdy:

  abstract: http://web.stanford.edu/class/ee380/Abstracts/171115.html

  slides: http://web.stanford.edu/class/ee380/Abstracts/171115-slides.pdf

  video: https://www.youtube.com/watch?v=_IgqJr8jG8M
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.