HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Building Your Own Dynamic Language

Stanford3 HN recommenders · recommended in 4 months, 2009-2014
YouTube
21K views · 18 years ago · lecture · evergreen

Ian Piumarta's 2007 Stanford EE380 lecture on building a dynamic programming environment from the ground up, from the Viewpoints Research Institute's work. It covers the design of a language and system with a recursive design, parsing through code generation, and the COLA architecture.

HN commenters recommend it as a way to understand what the VPRI group considers core, such as supporting any syntax on one JIT compiler and removing boundaries between application and interpreter.

Compilers, interpreters & program analysisProgramming language designUniversity lectures & courses#ianpiumarta#vpri#cola#jitcompilers#languagedesign

5 comments from Hacker News

@theoh2014 · in “A Conversation with Arthur Whitney (2009)”

Well, in terms of whether the example is a well-posed question, a networked window system isn't too different from the WWW, which as we know by now works pretty flawlessly. Perhaps the key contrast here is between the tendency toward static mathematical perfection of the APL family and the notion of dynamic languages for building systems that Alan Kay et al would propose. "APL is like a beautiful diamond - flawless, beautifully symmetrical. But you can’t add anything to it. If you try to glue on another diamond, you don’t get a bigger diamond." --Joel Moses There's a talk by Ian Piumarta that tries to get to the core of what the VPRI guys feel is important. I'm not sure about it but it seems worth mentioning in this context: Ian Piumarta "Building Your Own Dynamic Language" ▶ this video Also, this: link

RecommendsView on HN
@wedesoft2014 · in “Don't use assembly unless you're an expert”

No big deal. Just become an expert then. It is not that hard. Just have a look at Ian Piumarta's work [1,2]. Future systems will probably facilitate programming on every level from the bare metal to the highest abstraction. I.e. no strict boundaries between the implementation of the application and the implementation of the compiler/interpreter. [1] link [2] ▶ this video EDIT: There are other reasons to write machine code than performance.

RecommendsView on HN
@toadpipe2009 · in “LYSP (a really tiny lisp)”

The gold box/pepsi/coke/cola/jolt/id/idst/soda languages are indeed interesting, but from the outside of VPRI it isn't easy to figure out what they do. Listening to Alan Kay try to summarize it in a few minutes ( link ) makes it sound like even he doesn't understand it very well. Piumarta seems to be a very sharp guy, but it's strange that a software project that is supposed to radically simplify the software stack still doesn't appear to have a working prototype of a complete two-kernel (pepsi+coke) system, almost five years after the albert paper ( link ) that sketched out the basics was written. Kay keeps talking about how cool it is, and Piumarta has given at least one talk about how cool it is ( ▶ this video ), but as far as I can tell it doesn't even exist yet. There are working pieces (which are each tens of thousands of lines of code), but from the outside there doesn't appear to be a working pepsi+coke system yet, let alone iterations on it. The VPRI progress reports don't even mention it. VPRI seems all over the place, and Kay is talking about objects with AI-complete interfaces now. The mailing list is dead, and the wiki is pretty much dead. There's more information on Piumarta's personal website than anywhere else. I know it's supposed to be blue sky research, but it still seems weird. My impression of the whole thing is that "complete" reflection/self-description is not a good foundation for minimalistic systems.

CriticalView on HN
@andreyf2009 · in “Steve Yegge: Lisp is not an acceptable Lisp. (2006)”

Thanks for the link, it's a good read. Ian gave a talk on the same material at Stanford ( ▶ this video ). The paper about the object model ( link ) is also very useful. The hallmark of COLA is recursive design, which sort of makes it more like Smalltalk than Lisp Late binding is certainly a big part of the smalltalk philosophy as well, and recursive design is a great way of implementing late binding. A system uses the same "user interface" internally, it certainly makes it easier to let people modify the internals. The big difference I see between Smalltalk and Lisp (correct me if I'm wrong) is that Lisp systems tend to use compile-time abstractions Lisp->machine code->execution, while Smalltalkers from early on started thinking about interpretation and VM's - using abstractions which require run-time data to make decisions.

RecommendsView on HN
@andreyf2009 · in “Ask HN: How do you see the future of computing ?”

Easy, COLA: ▶ this video Any syntax you want, running on the same JIT compiler, but designed from scratch without marketing breathing down your neck.

RecommendsView on HN
Compiling and Optimizing Scripting Languages1:01:37

Compiling and Optimizing Scripting Languages

Google TechTalks
21K views • 17 years ago
Demo: Base language, compile-time execution2:07:18

Demo: Base language, compile-time execution

Jonathan Blow
164K views • 12 years ago
Episode 1: A basic expression evaluator1:38:36

Episode 1: A basic expression evaluator

Immo Landwerth (terrajobst)
284K views • 8 years ago
Brandt Bucher – A JIT Compiler for CPython47:51

Brandt Bucher – A JIT Compiler for CPython

encukou
14K views • 2 years ago
Co-dfns Live Stream: Compiler Design and Architecture2:03:12

Co-dfns Live Stream: Compiler Design and Architecture

Aaron Hsu (arcfide)
21K views • 9 years ago
Dynamic Languages Wizards Series - Panel on Language Design1:58:46

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos
16K views • 14 years ago
Lecture 1 | Programming Paradigms (Stanford)17:26

Lecture 1 | Programming Paradigms (Stanford)

Stanford
1.2M views • 18 years ago
Q&A with Guido van Rossum, Inventor of Python56:55

Q&A with Guido van Rossum, Inventor of Python

Microsoft Reactor
28K views • 5 years ago
Psp collections: views and more by Paul Phillips1:28:59

Psp collections: views and more by Paul Phillips

AI Council
11K views • 12 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
Demo: Implicit Context1:01:40

Demo: Implicit Context

Jonathan Blow
28K views • 11 years ago
Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated1:13:00

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

LambdaConf
241K views • 1 year ago
Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts1:02:44

Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts

softdevteamuk
5K views • 10 years ago
"Type-Driven Program Synthesis" by Nadia Polikarpova39:40

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference
15K views • 8 years ago
"Programming Should Eat Itself" by Nada Amin47:41

"Programming Should Eat Itself" by Nada Amin

Strange Loop Conference
43K views • 12 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
Four Languages from Forty Years Ago - Scott Wlaschin1:01:45

Four Languages from Forty Years Ago - Scott Wlaschin

NDC Conferences
33K views • 8 years ago
Java on a 1000 Cores - Tales of Hardware / Software CoDesign1:12:02

Java on a 1000 Cores - Tales of Hardware / Software CoDesign

Google TechTalks
23K views • 17 years ago
Domain Modeling Made Functional - Scott Wlaschin51:40

Domain Modeling Made Functional - Scott Wlaschin

NDC Conferences
71K views • 9 years ago