Harpoon Data Language for DSLs
I have created a data language, which can be easily used to create domain-specific languages.
In short I assume that everything can be described with tagged lists, records and tuples, but I have also divised powerful syntactic sugar, which makes it possible to express such simple data in a form very similar to C-family programming languages. Individual domain-specific languages can be defined using types, which is much simpler than BNF-like approaches.
If you are interested, please visit the project's webpage:
Please sign in to leave a comment.
How it differs from XL (http://xlr.sourceforge.net/)?
A more generic note.
Any specialized syntax (C/Java/Pascal/etc) will be more convinient, then a generic syntax proposed by you, proposed in XL, used in Lisp, in Forth and so on.
Any tree-based tool is more extendable, and will render the tree much better, then your syntax, Lisp, etc.
You try to make an extendable language preserving textual representation - and this is worse then any alternative (text-based current languages or tree-based tools). I don't see the need in the syntax you've proposed, except, maybe, as a default node rendering (if the node editor is not specified) in MPS and others similar projects.
Harpoon is not a programming language. It is only a syntax, that can be used for programming as well as for many other things. Harpoon is also production ready (I know about 4 commercial software using it for configuration or communication), whereas XL is in its "pre-alpha" state.
I think there are many programmers preferring the text-based style of work. Visual environments are appealing, but they also impose more constraints on an expirienced programmer. These are just two different worlds and it is good that we have both options.
What kind of constraints? The only I can imagine - they are not able to use their faivorite editor. That's hardly the reason - any modern IDE (like IDEA, Eclipse, Visual Studio, etc) do not allow them to use their faivorite editor, by the "cost" of improving their productivity ;-)
What MPS lacks is the standardization, so that one may use different editors/IDE to program the same code, like textual languages have this standard (syntax) and allow to use different editors/IDEs. This will hardly change for MPS, util they will become open-source and there will be community around it.
Any others constraints?
I just wanted to say that generally working in an IDE is constrained to the features the IDE offers. Working with text editor and command-line tools & scripts requires more knownledge and expirience, but sets no constraints at all.
One example:
I am working in VS2005 and I have many similar projects. I have found no method of sharing some part of compiler's settings between some of the projects. If I was using my own scripts to build them, everything would be possible.
I know it is not a pragmatic approach, but talking about constraints - you are always somehow constrained in every GUI. And thus Harpoon languages is intended to be a good tool for creating your little domain-specific languges for the text-editor-based style of work. Nevertheless I think it is not a direct competitor to MPS.
(I am sorry for late answer, but it seems that I do not get email notifications properly).