User loginNavigation |
DSLClojure’s Mini-languagesA nice blog post about "little mini-languages" that form part of the syntax of Clojure. Project SikuliPicture or screenshot driven programming from the MIT. From the Sikuli project page:
By Kay Schluehr at 2010-01-24 05:31 | DSL | Paradigms | Python | 7 comments | other blogs | 14916 reads
ScalaModules: a DSL for bringing OSGi to ScalaScalaModules is an open source project aimed at providing fluent support for OSGi to Scala developers. It takes advantage of Scala's infix operator notation, higher order functions, and implicit conversions. ScalaModules transparently uses the Scala compiler to wrap an OSGi BundleContext with its own RichBundleContext model. This general technique is not unusual for creating DSLs in mainstream languages. Sean McDirmid uses similar tricks for his C# Bling library for WPF, except that Bling must overcome the lack of C# offering comparable extensions to Scala. The AI Systems of Left 4 DeadThere's no PL content per se in this presentation, but a PL weenie will surely think of a DSL for almost every slide, so I hope posting this is warranted. Tim Sweeney has written previously on the programming challenges raised by game development (The Next Mainstream Programming Languages: A Game Developer's Perspective), and I think this presentation is another showcase of the huge problems that need solving in game development. Finally, I wonder why anyone would use a language that doesn't allow quick and simple syntax extension for driving a game engine? Seriously, the possibilities for ad-hoc DSLs seem endless. By Manuel J. Simoni at 2009-12-22 13:48 | DSL | Parallel/Distributed | 13 comments | other blogs | 18892 reads
Back to the Future: Lisp as a Base for a Statistical Computing SystemBack to the Future: Lisp as a Base for a Statistical Computing System by Ross Ihaka and Duncan Temple Lang, and the accompanying slides. This paper was previously discussed on comp.lang.lisp, but apparently not covered on LtU before.
Foot note: Duncan Temple Lang is a core developer of R and has worked on the core engine for TIBCO's S-PLUS. Thanks to LtU user bashyal for providing the links. Why API Design MattersMichi Henning, Why API Design Matters, Communications of the ACM, May 2009.
This is a rather accessible look at the consequences of bad API design. Interestingly enough, the main example revolves around the inappropriate use of side effects. The last section concludes with cultural changes the author feels is necessary to improve the situation. Ï€: a pattern languageπ - not to be confused with the π-calculus - is a pattern-based language being developed by the Software Technology group at Technische Universität Darmstadt. Quoting from the project website:
The basic idea here seems similar to the OMeta language, previously mentioned on LtU here, but based on EBNF instead of Parsing Expression Grammars (PEGs). Pattern definitions in π have the form declare_pattern name ≔ syntax ⇒ type âžž meaning; Here's a trivial example of defining a pattern: declare_pattern integer_potentiation ≔ integer:i %W- "^" %W- integer:j ⇒ integer âžž { int result = i; for (int k = 1; k <= j-1; k++) result *= i; return result; }; The resulting pattern can then be used directly in expressions, such as More information about the language, as well as the implementation, can be found at http://www.pi-programming.org. There's an OOPSLA09 paper on π as well, but I haven't been able to find an open access version of it yet. [Update: the π team has made their OOPSLA article available here] By Allan McInnes at 2009-10-29 01:58 | DSL | Meta-Programming | 10 comments | other blogs | 15719 reads
Causal Commutative Arrows and Their OptimizationCausal Commutative Arrows and Their Optimization, Hai Liu. Eric Cheng. Paul Hudak. ICFP 2009.
One way of understanding what is going on in this paper is that in terms of dataflow programming, FRP programs correspond to programs with single-entry, single-exit dataflow graphs. This means that none of the internal dataflow nodes in an FRP program are actually necessary -- you can coalesce all those nodes into a single node while preserving the observable behavior. (They briefly touch on this point when they mention that synchronous languages try to compile to "single loop code".) What's very slick is that they have a nice normal form procedure that (a) is defined entirely in terms of their high-level language, and (b) always yields code corresponding to the the coalesced dataflow graph. It's an elegant demonstration of the power of equational reasoning. L+C Modeling Language
Radoslaw Karwowski and Przemyslaw Prusinkiewicz. Design and implementation of the L+C modeling language. Electronic Notes in Theoretical Computer Science 86 (2), 19 pp.
L-systems are parallel grammars that provide a theoretical foundation for a class of programs used in the simulation of plant development and procedural image synthesis. In particular, the formalism of L-systems guides the construction of declarative languages for specifying input to these programs. We outline key factors that have motivated the development of L-system-based languages in the past, and introduce a new language, L+C, that addresses the shortcomings of its predecessors. We also describe a simulation program, lpfg, which makes it possible to execute models specified in L+C. To this end, L+C programs are translated into C++, compiled into a DLL, and linked with lpfg at runtime. The use of this strategy simplifies the implementation of the modeling system. I somehow failed to notice L+C as a demarcated language before. I am not entirely sure what one needs to download in order to use L+C directly. I am sure this is relevant to the great DSL debate, but I am not sure in favor of which side of the debate... The page gives links to other papers about L+C. While you are there, don't miss The Algorithmic Beauty of Plants, which is great fun. DSL goodnessThe site for DSL'09, which took place two months ago in Oxford, is a treasure trove for DSL fans. While the blog format may be a bit confusing for a conference website, you should be able to find your way around to links to slides and paper versions of the presentations. Even better, the posts include various comments people made about the papers (each talk was followed by a comment from a discussant). Apparently one can even join in and post comments! So tell us: What item caught your attention? Which paper should everyone here rush to read? Which DSL is downloadable and worth downloading? |
Browse archives
Active forum topics
|
Recent comments
14 weeks 16 hours ago
18 weeks 2 days ago
19 weeks 6 days ago
19 weeks 6 days ago
22 weeks 4 days ago
27 weeks 2 days ago
27 weeks 2 days ago
27 weeks 5 days ago
27 weeks 5 days ago
30 weeks 3 days ago