For some time I have been developing the idea of
a extension to Smalltalk, which I call Domaintalk. That extension
would have "areas" where the language natural to the problem being
solved would be used. For example, when solving a numerical
problem then mathematical notation would be used or when accessing
a relational database SQL would be used. In other words, each of
those area would correspond to the language used by "Domain
Experts", thus the name domain.The rational behind this is that
when you ask a domain expert how to solve a particular problem
they will give you the solution in their natural language and you
must then convert that into Smalltalk code. Why not just eliminate
the last step an let the compiler for the domain produce a
compiled method that can be used by the VM--a domain specific
would be required in addition to the compiler.
There are two reasons for my posting this email: (1) I want to measure the interest of this group in such a project, and (2) I want to know if there is a better place to post a much longer description of the project or should I just break the description into smaller segments and post each under a different subject? |
you have to checkout helvetia, by Lukas Renggli:
cheers, Esteban On 21 Apr 2014, at 16:17, Bob Williams <[hidden email]> wrote:
|
I second that, it was exactly what I was thinking ! On Apr 21, 2014, at 11:25 AM, Esteban Lorenzano <[hidden email]> wrote: > you have to checkout helvetia, by Lukas Renggli: > > http://scg.unibe.ch/research/helvetia > > cheers, > Esteban > > On 21 Apr 2014, at 16:17, Bob Williams <[hidden email]> wrote: > >> For some time I have been developing the idea of a extension to Smalltalk, which I call Domaintalk. That extension would have "areas" where the language natural to the problem being solved would be used. For example, when solving a numerical problem then mathematical notation would be used or when accessing a relational database SQL would be used. In other words, each of those area would correspond to the language used by "Domain Experts", thus the name domain.The rational behind this is that when you ask a domain expert how to solve a particular problem they will give you the solution in their natural language and you must then convert that into Smalltalk code. Why not just eliminate the last step an let the compiler for the domain produce a compiled method that can be used by the VM--a domain specific would be required in addition to the compiler. >> >> There are two reasons for my posting this email: (1) I want to measure the interest of this group in such a project, and (2) I want to know if there is a better place to post a much longer description of the project or should I just break the description into smaller segments and post each under a different subject? > ---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD lab - Computer Science Department (DCC) - University of Chile |
Sounds interesting, maybe you could use Pillar to outline the basic features you are aiming for and detail how you will achieve them. Then you can link it back here for discussion, this way people wont have to go back through their emails to find a description for it. I was thinking something similar for Graphics and Music which are areas that interest me, I am interested into reading other people opinions as I am not very familiar with DSLs. I was just studying CSOUND the DSL for audio synthesis and music composition and dreaming how cool it would feel to have that used from inside Pharo as an extension to it.
On Mon, Apr 21, 2014 at 6:01 PM, Johan Fabry <[hidden email]> wrote:
|
In reply to this post by Bob Williams
That's an attractive and quite largely studied topic. If Etoys [1]
appears a typical example of such extension "areas", I'd recommend
posting also to their mailing list(s), while explaining how your
idea compares to Etoys (would help generating more interest).
[1] http://en.wikipedia.org/wiki/Etoys_(programming_language) [2] http://www.squeakland.org/discuss/
|
Free forum by Nabble | Edit this page |