5 ms·
They are called Domain Specific Languages (DSLs). And it can be done reasonably well today. Lisps are very good for producing DSLs; when you have macros you ha
by Guthur 12y ago
They are called Domain Specific Languages (DSLs). And it can be done reasonably well today.
Lisps are very good for producing DSLs; when you have macros you have very powerful control over the syntax and can therefore produce your own language within the language.
The Common Lisp LOOP macro is a great example of power of macros; though in that case it is debatable whether it was used for good or bad.
- ludamad 12y agoSure I know about DSLs in Lisps and such, but I don't think LISP DSLs are quite on the level of SQL. If everyone creates their own DSLs I don't think it has the same impact.
- jared314 12y ago> but I don't think LISP DSLs are quite on the level of SQL I'm curious what you mean by this. Is your definition of a DSL based on the language's syntax, or on the language's paradigm? Clojure's core.logic [1] provides logic programming, as apposed to functional programming, but maintains the syntax of a LISP. [1] https://github.com/clojure/core.logic/wiki/Examples https://github.com/clojure/core.logic/wiki/Examples
- lmm 12y agoI think the reason LISP remains obscure is that syntax is important and LISP syntax is an unpleasant way to express a lot of domain languages. (I work with embedded DSLs quite a lot, but in Scala, where infix and postfix operators are easy)
- sklogic 12y agoSyntax is nothing. It's trivial to build any kind of syntax on top of Lisp, with arbitrary complex DSLs. See an example here: https://github.com/combinatorylogic/mbase https://github.com/combinatorylogic/mbase
- deerpig 12y agoCheck out Pilog which is a query language DSL for working with picolisp's built-in databases.... I'd be interested in hearing from people with more knowledge of SQL than I do to see how they compare.
- webnrrd2k 12y agoI've just started looking at Rebol, and you may find it worth while -- it has a very interesting take on DSLs. http://www.rebol.com/ http://www.rebol.com/
- Dewie 12y agoRebol is one of the few languages where I was actually impressed by the code snippets that the introduction (that I read) had - they had to do with making simple GUIs for somewhat interesting/useful applications, and small, simple code for sending email. With most languages, the introductory code snippets are mostly just for showing the syntax and whatever simple function can be done in 2 lines instead of 5. But Rebol's code examples actually looked useful from the start. I'll have to try it out some day. Alas, one of too many that I have to try out some day.