[Pl-seminar] 11/20: Jonathan Edwards, "Dynamic => Static"
Vincent St-Amour
stamourv at ccs.neu.edu
Wed Nov 13 17:22:44 EST 2013
NUPRL Seminar presents
Jonathan Edwards
MIT
11:45 - 1:30
Wednesday, 11/20
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
Dynamic => Static
The schism between static and dynamic languages has been long and bitter.
Static types provide performance, safety, and intelligent IDE assistance.
Dynamic languages are simpler and make it easier to use polymorphism and
metaprogramming. I observe that in dynamic application frameworks like
Rails the essential uses of polymorphism and metaprogramming occur (or
could occur) during an initialization phase of the program. For example,
generating classes for an Object Relational Mapping. Accordingly I
demonstrate a language that is dynamic during an initial phase and then
static henceforth. Initialization is performed by a bounded partial
evaluation that computes all types, instantiates all generics, and executes
all metaprogramming. What remains after this partial evaluation is a
statically type-checked runtime. A notable (but perhaps orthogonal) feature
is that types are implicit, never being mentioned within the language
syntax or error messages. This approach may unite much that is good in both
static and dynamic programming. This is early-stage work and I welcome
advice on its direction.
More information about the pl-seminar
mailing list