User loginNavigation |
DSLCloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision DiagramsCloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams, John Whaley and Monica S. Lam. PLDI 2004.
Binary decision diagrams are one of the coolest data structures of the last 20 years, and are also one of the basic enabling data structures underlying modern SAT solvers. Using them to implement Datalog is a really clever idea. EDIT: I relied on memory instead of Google, and got it wrong about BDDs and SAT solving. Modern DPLL-based SAT solvers generally do not use BDDs, because when your solutions are far apart in the solution space the representing BDD would get quite large. BDDs are widely used in verification, though, and are also still one my favorite data structures. :) By neelk at 2007-08-08 08:12 | DSL | Implementation | Logic/Declarative | 4 comments | other blogs | 9599 reads
Apache Camel routing rules: a DSL?
The authors probably meant embedded DSL. The examples of its use feel remarkably similar to "criteria queries" DSLs, as popularized in Java by Hibernate (and yes, many others as well). To start a discussion - where is the boundary between an API and an embedded DSL? Is it in the eye of beholder or are there some objective differences? Some APIs have a strong feel of a DSL - remarkably various parser libraries in Haskell. Is it the quality of the host language (Haskell) or the domain (parsers)? Realization of natural language interfaces using lazy functional programmingRealization of natural language interfaces using lazy functional programming, Richard Frost, ACM Computing Surveys, Volume 38, Issue 4 (2006).
By neelk at 2007-08-06 09:43 | DSL | Functional | login or register to post comments | other blogs | 12575 reads
Amazon Flexible Payments ServiceWhen I heard of Amazon FPS (an overview of which can be found here), I knew a DSL must be hidden somewhere. And indeed, the GateKeeper language is a special-purpose language for specifying (declarative) payment instructions. Once again we see the importance of language design skills in today's marketplace... So what do LtU readers think of the design of the GateKeeper language? Application-specific foreign-interface generationApplication-specific foreign-interface generation, John Reppy and Chunyan Song, October 2006.
FFIs are a perennial engineering problem, and it's very nice to see progress being made on automating what's automatable about building interfaces. Their interface specification language is built from two little DSLs. The first one is a language that for specifying how to map low level types to high level types, and the second one is a rewriting-based language for translating API functions, which makes use of the type mapping programs you defined earlier. The whole thing is quite pretty, and seems to read very well. An interesting gimme for you stack-language fans: the DSL that Reppy and Song use to specify type mappings from low-level to high-level types is a combinator-based language that reads a bit like Forth or Postscript. By neelk at 2007-06-20 20:52 | DSL | Functional | Implementation | Logic/Declarative | Semantics | 3 comments | other blogs | 6977 reads
Derivatives of Regular ExpressionsDerivatives of Regular Expressions, Janusz Brzozowski, Journal of the ACM 1964.
This is one of my favorite papers. It describes a very cute algorithm for building deterministic finite automata directly from a regular expression. The key trick is the idea of a derivative of a regular expression with respect to a string, which is a non-obvious but fun idea. Note: This is an ACM DL link; I couldn't find the paper freely available online. :( A Functional Description of TeX's Formula LayoutA Functional Description of TeX's Formula Layout, Reinhold Heckmann and Reinhard Wilhelm, Journal of Functional Programming 1997.
I've wanted a simple description of what TeX is doing for a long time, and it's nice to see that laid out in a clear and readable way. AutoBayes -- A DSL For Bayesian NetworksBayesian networks are one of the most important formalisms in contemporary machine learning. Given the structure of a network there are a number of well established inference algorithms, but the algorithms are quite involved to implement and applications are typically very performance sensitive. Hence the programmer faces a dilemma: quickly implement a solution in a high level language and suffer extended run time or grub around in C or Fortran for weeks but achieve good performance. This is a perfect application area for a DSL to neatly solve this dilemma, and this is exactly what AutoBayes does. Specify a high level description of the network and it generates high performance C++ code to solve it. If you find this interesting you will also be interested in the links between probability theory and monads. Eric Kidd has had a great series of blog posts on this theme, and sigfpe has also posted on this theme. Those crazy academics have also been getting in on the action! RZ: a tool for bringing constructive and computable mathematics closer to programming practiceRZ: a tool for bringing constructive and computable mathematics closer to programming practice, Chris Stone and Andrej Bauer.
Realizability is a way of formalizing the constructive interpretation of logical formulas (eg, the BHK interpretation). Constructively, a proof of an implication By neelk at 2007-04-10 22:57 | DSL | Lambda Calculus | Semantics | 3 comments | other blogs | 6872 reads
Putting functional database theory into practice: NixOS
Here are links to:
I found this an extremely readable thesis, light on math but high on insight. I now have an entirely new way of thinking about components and the filesystem, and that's really cool. I'd be very interested in hearing what people with serious deployment/sysadmin experience think about this approach. (Thanks to Gavin Mendel-Gleason and Martin Bravenboer for posting the original links in the discussions page!) By neelk at 2007-04-05 23:38 | DSL | Implementation | Software Engineering | 2 comments | other blogs | 17767 reads
|
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