User loginNavigation |
DSLConcoqtion: Indexed Types Now!Concoqtion: Indexed Types Now!
The follow-up to Concoqtion: Mixing Indexed Types and Hindley-Milner Type Inference, discussed earlier. Good stuff. Update: There's now a public Concoqtion web site! Josh, does this answer your question? :-) By Paul Snively at 2007-03-12 15:20 | DSL | Functional | Implementation | Semantics | Type Theory | 6 comments | other blogs | 9342 reads
The Design and Implementation of a Dataflow Language for Scriptable DebuggingThe Design and Implementation of a Dataflow Language for Scriptable Debugging, Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi, and Steven P. Reiss.
We've seen a paper on compiling dataflow languages, so here's one on an interesting application. By neelk at 2007-02-20 02:06 | DSL | Functional | Implementation | Logic/Declarative | Software Engineering | 8 comments | other blogs | 11731 reads
RZ for Constructive Mathematics in ProgrammingRZ for Constructive Mathematics in Programming by Chris Stone and Andrej Bauer. Realizability theory is not only a fundamental tool in logic and computability, but also has direct application to the design and implementation of programs: it can produce interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between the worlds of constructive mathematics and programming. By using the realizability interpretation of constructive mathematics, RZ translates specifications in constructive logic into annotated interface code in Objective Caml. The system supports a rich input language allowing descriptions of complex mathematical structures. RZ does not extract code from proofs, but allows any implementation method, from handwritten code to code extracted from proofs by other tools. I haven't read the paper yet, but the abstract reminded me of PADS. By Jim Apple at 2007-02-03 21:19 | DSL | Semantics | Theory | Type Theory | 3 comments | other blogs | 6386 reads
Meta-Compilation of Language AbstractionsMeta-Compilation of Language Abstractions, a dissertation by Pinku Surana.
A very interesting and detailed paper, which touches on many perennial LtU subjects, and once again shifts the line between user programs and the compiler. If you're tempted to say "this sounds like X...", then read Chapter 2, which gives a comprehensive comparison to alternative approaches, including static type inference, traditional macro systems, templates, partial evaluation, and multi-stage languages such as MetaML and MetaOCaml. Some carefully selected quotes which I think summarize the summary quite well:
Pinku Surana will be presenting this work at a meeting of LispNYC on Feb 13th in New York City. An announcement with details of the meeting can be found here. By Anton van Straaten at 2007-02-02 19:16 | DSL | Meta-Programming | 13 comments | other blogs | 17539 reads
Ott--a tool for writing definitions of programming languages and calculi.Ott—a tool for writing definitions of programming languages and calculi.
Peter Sewell and his team continue to bridge the gap between the informal and formal worlds of programming language semantics. By Paul Snively at 2007-01-23 07:06 | DSL | Meta-Programming | Semantics | Type Theory | login or register to post comments | other blogs | 12711 reads
AgentSheets: End-User Programing (and Secret Lisp Success Story!)Several interesting papers have been published by researchers at the University of Colorado investigating ways of making end-user programming more accessible, especially to secondary-level (i.e., High School) students. In many ways, this work reminds me of the efforts of the PLT group and their excellent DrScheme software implementation, though its strong graphical leanings makes for wonderful eye candy. I stumbled across this body of work while trying to generate some OpenGL models from Common Lisp. It turns out that most of the AgentSheets system is built on top of a DSL embedded in Common Lisp called AgenTalk. AgentTalk is implemented on top of MCL and Allegro Common Lisp. (Interestingly, an apparently independent AgentTalk appears to have been implemented on top of DrScheme.) I found several items of note:
Ralph Johnson: Language workbenches
Ralph also mentions Intentional Software and points to Fowler's JAOO talk on Domain Specific Languages, a video of which is available online. Second Life Faces Threat to its Virtual EconomySecond Life Faces Threat to its Virtual Economy
Related to this thread, especially my "Not Merely Predictable" post, as well as the various Lightweight Static Capabilities and Robust Composition threads. I'm absolutely convinced that a future language design will evolve to accomodate the development of distributed systems in which these kinds of issues are impossible to impose. Is it time to add an "object capability security" and/or "cooperation without vulnerability" (a great phrase from Mark Miller) category to LtU? By Paul Snively at 2006-11-15 15:45 | DSL | Software Engineering | Theory | 39 comments | other blogs | 15322 reads
A rationale for semantically enhanced library languagesBjarne Stroustrup. A rationale for semantically enhanced library languages. LCSD05. October 2005.
How similar or different this idea really is compared to the facilities found in PLT Scheme and other previous apporaches to this issue? By Ehud Lamm at 2006-11-01 22:09 | DSL | Software Engineering | Teaching & Learning | 15 comments | other blogs | 9123 reads
Flapjax - Functional Reactive AjaxFlapjax s a functional reactive compiler and Javascript library for creating interactive web GUIs, created by Brown PLT. You can try the compiler online, or read the docs to get more of an idea of how the language works. If you've used OO style MVC before, but not functional reactive programming (FRP), take a look at Flapjax for a different, and in my opinion, cleaner approach to the same problem. If you're familiar with FrTime you'll recognise the elements of Flapjax -- Flapjax is essentially a Javascript implementation of FrTime, and a compiler from the Flapjax language to Javascript to make writing code less verbose. The key differences compared to the Haskell FRP tradition are that FrTime is asynchronous and uses mutable state. This means behaviours (time varying values) can be sampled at any time, whereas in Haskell FRP behaviours are all sampled at the same time, and it isn't necessary to use the arrow combinators to hide accumulators. Of course it isn't all roses: the implementation is more complex, and doesn't work well in, say, a continuation based web server as mutable state will mess up resumptions of previous continuations. (Don't get the idea that this is a problem for Flapjax -- it runs on the client, not the server.) |
Browse archives
Active forum topics |
Recent comments
4 weeks 2 days ago
4 weeks 3 days ago
4 weeks 4 days ago
4 weeks 4 days ago
5 weeks 2 days ago
5 weeks 2 days ago
5 weeks 2 days ago
8 weeks 3 days ago
9 weeks 1 day ago
9 weeks 1 day ago