User loginNavigation |
SemanticsSpecifying ECMAScript via MLBrendan Eich has just mentioned on the es4-discuss mailing list that we will be using ML as the definition language for the semantics of ECMAScript Edition 4. One of the immediate benefits of this approach will be that our definition will also serve as a reference implementation. LtUers will of course recognize this as the approach of "definitional interpreters" (discussed on LtU here and countless other times). Our initial intention was to write a custom specification language that would be tailored to our purposes, with just the right core control features and datatypes to serve as an appropriately abstract model of ECMAScript. But before long, we realized that we were pretty much describing ML. Rather than specifying, implementing, and documenting another programming language that was 80% ML, why reinvent the wheel? The benefits of this approach are many: a definition in a formal language that itself has a clear and precise definition, the luxury of many robust and high-performance implementations (we'll be using OCaml extended with first-class continuations), and free "technology transfer" from all the existing ML literature and communities. And finally, by releasing real software--written in a direct functional style--for reading, type-checking, and evaluating ECMAScript programs, we'll be providing a standard set of tools for static analysis and other research on the ECMAScript language. By Dave Herman at 2006-10-20 20:38 | Javascript | Semantics | 33 comments | other blogs | 76355 reads
Gradual Typing for Functional LanguagesGradual Typing for Functional Languages
In other news, the Holy Grail has been found. Film at 11. This piece of genius is the combined work of Jeremy Siek, of Boost fame, and Walid Taha, of MetaOCaml fame. The formalization of their work in Isabelle/Isar can be found here. I found this while tracking down the relocated Concoqtion paper. In that process, I also found Jeremy Siek's other new papers, including his "Semantic Analysis of C++ Templates" and "Concepts: Linguistic Support for Generic Programming in C++." Just visit Siek's home page and read all of his new papers, each of which is worth a story here. By Paul Snively at 2006-08-30 17:49 | Functional | Implementation | Lambda Calculus | Semantics | Type Theory | 18 comments | other blogs | 37410 reads
Lightweight Static Capabilitites (II)The slides for the talk discussed here are now available for download. Like all of Ken and Oleg's work, this stuff is both cool and important. Keep in mind that the talk is quite different from the paper. The safety claims were formalized and proved in Twelf: list example, array example. To follow the proofs you should read them alongside the presentation slides. I am told that the first file might change soon, to reflect a more general proof. Perhaps Ken or Oleg would like to comment on the experience of doing mechanized proofs, a subject the comes up regularly on LtU. LtU newcomers, who already managed to take in a little Haskell or ML, may want to spend a little time chewing on this, and ask questions if something remains unclear, since this work may eventually have practical importance, and can teach quite a few interesting techniques. By Ehud Lamm at 2006-08-29 08:34 | Semantics | Software Engineering | Type Theory | 1 comment | other blogs | 9029 reads
The Daikon Invariant Detector
I spend a lot of time here talking about static typing, but let's face it: most often we're dealing with existing code that probably isn't written in a language with a very expressive type system, and rarely has been formally specified, whether through an expressive type system or otherwise. Daikon is interesting because it attempts to learn important properties of a piece of software by execution and observation. Combine it with a model checker like Java PathFinder, and you have an unusually powerful means of evolving the correctness of even quite complex code. There's also a relationship to the already-mentioned JML and ESC/Java 2, which in turn has a connection to the popular JUnit unit-testing framework. In short, the gap between compile time and runtime, and static vs. dynamic typing, seems to be narrowed in powerful ways by these, and related, tools. By Paul Snively at 2006-08-28 01:12 | Semantics | Software Engineering | 1 comment | other blogs | 10026 reads
Interface AutomataInterface Automata
The idea of expressing order of message exchange as type is certainly not new (as anyone exposed to web service choreography hype can tell - oh, just kidding, of course the theory is much older). However, the specific approach looks interesting (not the least because of appealing to game semantics). By Andris Birkmanis at 2006-07-24 17:32 | Semantics | Type Theory | 4 comments | other blogs | 7250 reads
Lightweight Static CapabilitiesLightweight Static Capabilitites
Pursuant to this thread about the membrane pattern in static languages from Mark Miller's excellent Ph.D. thesis. I don't yet know whether a solution is derivable from this work, but Mark was kind enough to point me to it, and Oleg seems to want to see it distributed, so here it is—Mark and/or Oleg, please let me know if this is premature. By Paul Snively at 2006-07-23 19:50 | Semantics | Type Theory | 17 comments | other blogs | 24415 reads
Concoqtion: Mixing Indexed Types and Hindley-Milner Type InferenceFrom the "Whoa!" files: Concoqtion: Mixing Indexed Types and Hindley-Milner Type Inference
Another tough-to-categorize one: dependent types, the Curry-Howard Correspondence, logic programming, theorem provers as subsystems of compilers, implementation issues... it's all in here. Update: A prototype implementation is available here, but it took a bit of Google-fu to find, and it's brand new, so be gentle. Update II: The prototype implementation isn't buildable out of the box, and includes a complete copy of both the Coq and O'Caml distributions, presumably with patches etc. already applied. So it's clearly extremely early days yet. But this feels very timely to me, perhaps because I've just started using Coq within the past couple of weeks, and got my copy of Coq'Art and am enjoying it immensely. Update III: It occurs to me that this might also relate to Vesa Karvonen's comment about type-indexed functions, which occurs in the thread on statically-typed capabilities, so there might be a connection between this front-page story and the front-page story on lightweight static capabilities. That thought makes me happy; I love it when concepts converge. By Paul Snively at 2006-07-23 18:15 | Functional | Implementation | Logic/Declarative | Semantics | Type Theory | 3 comments | other blogs | 12241 reads
Socially Responsive, Environmentally Friendly LogicSocially Responsive, Environmentally Friendly Logic
This paper seems to unify multiple interesting directions - logic, game semantics, concurrent constraint programming (and concurrent programming in general). At the same time it remains very accessible, without overwhelming amount of math, so can be hopefully useful not only for academics. I, for one, was waiting for exactly this kind of paper for two years (and my interest is very practical). Multiplayer Curry-Howard correspondence, anyone? Or Curry-Howard for web services? By Andris Birkmanis at 2006-07-10 17:28 | Category Theory | Logic/Declarative | Semantics | 10 comments | other blogs | 10787 reads
Abstracting Allocation: The New new ThingAbstracting Allocation: The New new Thing. Nick Benton.
This is, of course, related to TAL, PCC etc. If you find the deatils too much, I suggest reading the discussion (section 7) to get a feel for the possible advantages of this approach. By Ehud Lamm at 2006-07-09 13:44 | Implementation | Semantics | 11 comments | other blogs | 12681 reads
Programming Languages and Lambda CalculiProgramming Languages and Lambda Calculi looks like a comprehensive treatement of the semantics of typed and untyped call-by-value programming languages. I imagine if one had a basic undergraduate education in programming language theory and wanted to get up to speeed in a hurry this would be a great resource. |
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
23 weeks 43 min ago
23 weeks 49 min ago
45 weeks 1 day ago
49 weeks 3 days ago
51 weeks 8 hours ago
51 weeks 8 hours ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago