The ANTLR 3 Eclipse Plugin helps you develop ANTLR 3 grammars inside Eclipse. It currently provides a project nature, a label decorator, a builder, and problem markers for ANTLR errors.
easyb is a behavior driven development framework for the Java platform. By using a specification based Domain Specific Language, easyb aims to enable executable, yet readable documentation.
Speed.io ist der modernste DSL Spedtest zur Analyse der eigenen Internet Geschwindigkeit. Testen Sie Download, Upload Ping. Speed Test bis zu VDSL 50 Mbit/s
Schnelles Internet, guter Service, kleine Preise: So wünschen sich Surfer ihren Internetprovider. Die Anbieter bringen das nur selten. Im Test: 10 Provider für schnelles Internet. Nur T-Home ist gut. test.de zeigt die Stärken und Schwächen von Alice über Freenet bis Versatel.
Squeryl
Home Learn more Scaladoc Community Follow _squeryl on TwitterTwitter
A Scala ORM and DSL for talking with Databases with minimum verbosity and maximum type safety
Write compiler validated statements.
Squeryl statements that pass compilation won’t fail at runtime. Refactor your schema as often as is required, the Scala compiler and your IDE will tell you exactly which lines of code are affected.
Never repeat yourself
The Composability of Squeryl statements allows you to define them
once and reuse them as sub queries within other statements.
Write declaratively
Write as declaratively as SQL, only with less boilerplate. SQL’s declarativeness is preserved, not encapsulated in a lower level API that requires imperative and procedural code to get things done.
Explicitly control retrieval granularity and laziness
A significant part of optimizing a database abstraction layer is to choose for every situation the right balance between fine and large grained retrieval, and the optimal mix of laziness and eagerness. Data retrieval strategies are explicit in Squeryl rather than driven by configuration like current generation Java ORMs read more
Since programmers often build task-specific tools, one way to make them more productive is to give them better tool-making tools. When tools take the form of program generators, this idea leads to libraries for creating languages that are directly extensible. Programmers may even be encouraged to think about a problem in terms of a language that would better support the task. This approach is sometimes called language-oriented programming
au:chlipala Ur introduces richer type system features into FP. Ur is functional, pure, statically-typed, and strict. Ur supports metaprogramming based on row types. Ur/Web is standard library and associated rules for parsing and optimization. Ur/Web supports construction of dynamic web applications backed by SQL databases. The signature of the standard library is such that well-typed Ur/Web programs "don't go wrong" in a very broad sense. They also may not: * Suffer from any kinds of code-injection attacks * Return invalid HTML * Contain dead intra-application links * Have mismatches between HTML forms and the fields expected by their handlers It is also possible to use metaprogramming to build significant application pieces by analysis of type structure - demo includes an ML-style functor for building an admin interface for an arbitrary SQL table. The Ur/Web compiler also produces very efficient object code that does not use gc
Jaskell is a functional scripting programming language that runs in JVM. The name "Jaskell" stands for Java-Haskell, but it is not haskell 1. Most of the current scripting languages are Object-Oriented. Though they more or less have functional tastes (Ruby's sexy closure, for example), the heart of them are still Object-Oriented. One of the most important essenses of functional programming (combinators) is yet to be brought into Java. 2. Jaskell brings with it higher order function, function currying, pattern match and monadic combinator support. 3. Monadic combinator is ideal for designing Domain Specific Language. It is relatively easy to tailor Jaskell runtime to make domain specific syntax look like simple atomic statements. See Neptune for a real example. 4. Jaskell is nothing but a Java library that passes Java objects in and out of the interpreter.
c2005 Most new ideas in software developments are really new variations on old ideas. This article describes one of these, the growing idea of a class of tools that I call Language Workbenches - examples of which include Intentional Software, JetBrains's Meta Programming System, and Microsoft's Software Factories. These tools take an old style of development - which I call language oriented programming and use IDE tooling in a bid to make language oriented programming a viable approach. Although I'm not enough of a prognosticator to say whether they will succeed in their ambition, I do think that these tools are some of the most interesting things on the horizon of software development. Interesting enough to write this essay to try to explain, at least in outline, how they work and the main issues around their future usefulness.
You might have read (about) the book Domain-Specific Languages written by Martin Fowler. As the name suggests it is about these little useful programming languages you can built very easily with Xtext.
Carrot is not the first XSLT-inspired project to provide a shorter syntax than XSLT itself. Syntax shorthands have included Paul Tchistopolskii's XSLScript, Sam Wilmott's RXSLT, and another project called XSLTXT. Although none of these projects provided direct inspiration for Carrot, they all address one of the same desires that Carrot addresses: being able to program in XSLT more concisely
Im Gespräch mit Tim Pritlove gibt Clemens Schrimpe einen Einblick in die Geschichte der Netzversorgung, die heutige Technik und die Gründe, warum die DSL-Anschlüsse häufig nicht das liefern, was sie könnten und was in der Zukunft für neue Probleme hinsichtlich der Dienstgüte und Netzneutralität zu erwarten ist.
In der Stadtbibliothek gibt es für surfende Leseratten eine erfreuliche Neuigkeit: Dank Mobilfunk gelangen die Bücherfreunde jetzt wesentlich schneller ins Internet. Doch der Kampf um den DSL-Anschluss über die Kupferleitung geht weiter.
Ur/Web is a DSL for programming web applications backed by SQL db. It is statically-typed and purely functional. Ur is the base language, and the web-specific features of Ur/Web (mostly) come only in the form of special rules for parsing and optimization. The Ur core looks a lot like Standard ML, with a few Haskell-isms added, and kinder, gentler versions added of many features from dependently-typed languages like the logic behind Coq. The type system is much more expressive than in ML and Haskell, such that well-typed web applications cannot "go wrong," not just in handling single HTTP requests, but across their entire lifetimes of interacting with HTTP clients. Beyond that, Ur is unusual is using ideas from dependent typing to enable very effective metaprogramming, or programming with explicit analysis of type structure. Many common web application components can be built by Ur/Web functions that operate on types
Papyrus is aiming at providing an integrated and user-consumable environment for editing any kind of EMF model and particularly supporting UML and related modeling languages such as SysML and MARTE. Papyrus provides diagram editors for EMF-based modeling languages amongst them UML 2 and SysML and the glue required for integrating these editors (GMF-based or not) with other MBD and MDSD tools.
Papyrus also offers a very advanced support of UML profiles that enables users to define editors for DSLs based on the UML 2 standard. The main feature of Papyrus regarding this latter point is a set of very powerful customization mechanisms which can be leveraged to create user-defined Papyrus perspectives and give it the same look and feel as a "pure" DSL editor.
Probably the most important thing to notice about this style is that the intent is to do something along the lines of an internal DomainSpecificLanguage. Indeed this is why we chose the term 'fluent' to describe it, in many ways the two terms are synonyms. The API is primarily designed to be readable and to flow. The price of this fluency is more effort, both in thinking and in the API construction itself. The simple API of constructor, setter, and addition methods is much easier to write. Coming up with a nice fluent API requires a good bit of thought. Indeed one of the problems of this little example is that I just knocked it up in a Calgary coffee shop over breakfast. Good fluent APIs take a while to build. If you want a much more thought out example of a fluent API take a look at JMock. JMock, like any mocking library, needs to create complex specifications of behavior. There have been many mocking libraries built over the last few years, JMock's contains a very nice fluent API
In our professional software development, we have focused on finding ways to help developers work more effectively. Despite the range of programming languages available today, we are still limited by them. It makes sense to extend the existing languages to create more domain-oriented ones, which allow writing programs on a higher level and in a manner that is more natural to each domain. With an instrument that allows creating language constructs as simple as creating classes or methods is in a conventional language, you can significantly change the way you develop software. This new style of programming, when you create specialized languages, use them to develop software, and extend them when and how required, is called Language Oriented Programming (LOP). MPS Story Meta Programming System started in 2003 as a research project. In 2004, its underlying concepts were described in the Language Oriented Programming article.
demonstrates that sprintf and sscanf can indeed use exactly the same formatting specification, which is a first-class value. We demonstrate typed sprintf and typed sscanf sharing the same formatting specification. Our solution is surprisingly trivial: it defines a simple embedded domain-specific language of formatting patterns. The functions sprintf and sscanf are two interpreters of the language, to build or parse a string according to the given pattern. Our solution relies only on GADTs. We demonstrate that lambda-abstractions at the type level are expressible already in the Hindley-Milner type system; GADT with the included polymorphic recursion help us use the abstractions.
C. Humer, C. Wimmer, C. Wirth, A. Wöß, and T. Würthinger. Proceedings of the 13th International Conference on Generative Programming: Concepts and Experiences, page 123--132. ACM, (2014)
S. Gulwani, and M. Marron. Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, page 803--814. New York, NY, USA, ACM, (2014)
K. Miksa, M. Kasztelnik, P. Sabina, and T. Walter. Models in Software Engineering, volume 6002 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, (2010)
H. Mühe, A. Angerer, A. Hoffmann, and W. Reif. 1st International Workshop on Domain-Specific Languages and models for ROBotic systems (DSLRob’10), 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2010), (2010)
D. Nunes, and D. Schwabe. WWW '06: Proceedings of the 15th international conference on World Wide Web, page 889--890. New York, NY, USA, ACM Press, (2006)
A. Abouzahra, J. Bézivin, M. Fabro, and F. Jouault. Proceedings of the Best Practices for Model Driven Software Development at OOPSLA'05, San Diego, California, USA, , (2005)