Building Your Own Dynamic Language
Stanford3 HN recommenders · recommended in 4 months, 2009-2014
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.
1:01:37Compiling and Optimizing Scripting Languages
Google TechTalks
21K views • 17 years ago
2:07:18Demo: Base language, compile-time execution
Jonathan Blow
164K views • 12 years ago
1:38:36Episode 1: A basic expression evaluator
Immo Landwerth (terrajobst)
284K views • 8 years ago
47:51Brandt Bucher – A JIT Compiler for CPython
encukou
14K views • 2 years ago
2:03:12Co-dfns Live Stream: Compiler Design and Architecture
Aaron Hsu (arcfide)
21K views • 9 years ago
1:58:46Dynamic Languages Wizards Series - Panel on Language Design
Eduardo Cavazos
16K views • 14 years ago
17:26Lecture 1 | Programming Paradigms (Stanford)
Stanford
1.2M views • 18 years ago
56:55Q&A with Guido van Rossum, Inventor of Python
Microsoft Reactor
28K views • 5 years ago
1:28:59Psp collections: views and more by Paul Phillips
AI Council
11K views • 12 years ago
1:03:31Brian Goetz - Stewardship: the Sobering Parts
ClojureTV
39K views • 11 years ago
1:01:40Demo: Implicit Context
Jonathan Blow
28K views • 11 years ago
1:13:00Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated
LambdaConf
241K views • 1 year ago
1:02:44Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts
softdevteamuk
5K views • 10 years ago
39:40"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference
15K views • 8 years ago
47:41"Programming Should Eat Itself" by Nada Amin
Strange Loop Conference
43K views • 12 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:55:24Ideas about a new programming language for games.
Jonathan Blow
530K views • 12 years ago
1:01:45Four Languages from Forty Years Ago - Scott Wlaschin
NDC Conferences
33K views • 8 years ago
1:12:02Java on a 1000 Cores - Tales of Hardware / Software CoDesign
Google TechTalks
23K views • 17 years ago
51:40Domain Modeling Made Functional - Scott Wlaschin
NDC Conferences
71K views • 9 years ago
5 comments from Hacker News
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
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.
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.
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.
Easy, COLA: ▶ this video Any syntax you want, running on the same JIT compiler, but designed from scratch without marketing breathing down your neck.