Serving the Quantitative Finance Community

 
User avatar
TraderJoe
Posts: 1
Joined: February 1st, 2005, 11:21 pm

Bring back Domain-Specific Languages

May 1st, 2008, 12:53 pm

QuoteOriginally posted by: CuchulainnQuoteOriginally posted by: TraderJoeTake your pick .This one was built by ex-colleagues of mine (Cambridge/Rotterdam). It was built for GIS applications and is a dynamic OO languages with run-time 'mixins'. The language was very flexible and knocking up GIS applications was very easy.Smalworld then became part of GE.MagikI would consider it a DSL. QuoteObjects are implemented in Magik using exemplars. Exemplars have similarities to classes in other programming languages such as Java, but with important differences. Magik supports multiple inheritance, and mixins (which implement functionality with no data). New instances are made by cloning an existing instance (which will typically be the exemplar but does not have to be).99 bottles of beer in 1189 languages!PS - Sorry for the threadjack.
 
User avatar
exneratunrisk
Posts: 0
Joined: April 20th, 2004, 12:25 pm

Bring back Domain-Specific Languages

May 6th, 2008, 9:52 am

Daniel,I find this is one of the essential issues in programming.Would you describe the path of a robot in C++ (in an off-line robot programming system)?You might probably argue for a task-oriented robot programming language, but implement inverse kinematics and dynamics in C++.IMO, many programmers do not distinguish between the literal part of programming and its operational semantics.We do literal programming in Mathematica (domain specific) but implement critical algorithms in C++, services in Java, user interaction in html,..),all tied together by clever link technologies.It is the AND-effect?
Last edited by exneratunrisk on May 5th, 2008, 10:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 22933
Joined: July 16th, 2004, 7:38 am

Bring back Domain-Specific Languages

May 6th, 2008, 6:49 pm

QuoteOriginally posted by: exneratunriskDaniel,I find this is one of the essential issues in programming.Would you describe the path of a robot in C++ (in an off-line robot programming system)?You might probably argue for a task-oriented robot programming language, but implement inverse kinematics and dynamics in C++.IMO, many programmers do not distinguish between the literal part of programming and its operational semantics.We do literal programming in Mathematica (domain specific) but implement critical algorithms in C++, services in Java, user interaction in html,..),all tied together by clever link technologies.It is the AND-effect?Exner,Ich arbeite gerne mit fachmenschen, sprache und 'umgebung' macht nichts aus edit: it would be good to have a library of modules that we could just use over and over again.
Last edited by Cuchulainn on May 5th, 2008, 10:00 pm, edited 1 time in total.
 
User avatar
exneratunrisk
Posts: 0
Joined: April 20th, 2004, 12:25 pm

Bring back Domain-Specific Languages

May 7th, 2008, 7:59 am

QuoteOriginally posted by: CuchulainnQuoteOriginally posted by: exneratunriskDaniel,I find this is one of the essential issues in programming.Would you describe the path of a robot in C++ (in an off-line robot programming system)?You might probably argue for a task-oriented robot programming language, but implement inverse kinematics and dynamics in C++.IMO, many programmers do not distinguish between the literal part of programming and its operational semantics.We do literal programming in Mathematica (domain specific) but implement critical algorithms in C++, services in Java, user interaction in html,..),all tied together by clever link technologies.It is the AND-effect?Exner,Ich arbeite gerne mit fachmenschen, sprache und 'umgebung' macht nichts aus edit: it would be good to have a library of modules that we could just use over and over again.Wouldn't we expect from a DSL that it does automatic model/algorithm/data selection, instead of providing a variety of modules?In which domains do we have consensus on models, algorithms, data for calibration,.... ? So, we have constructs like Valuate[MyOption, MyContractFeature, MyCashFlowSchedule, MyModel, MyMarketData, MyInput, MyOutput] instead of Valuate[MyOption]Designers of DSL need to be aware that they need to act as kind of "Supersolvers" or provide a language architecture (a uniform task description language / domain)which allows for model, algorithm,..plug ins?
 
User avatar
Cuchulainn
Topic Author
Posts: 22933
Joined: July 16th, 2004, 7:38 am

Bring back Domain-Specific Languages

May 7th, 2008, 8:38 am

QuoteWouldn't we expect from a DSL that it does automatic model/algorithm/data selection, instead of providing a variety of modules?It is not necessary imo. In certain well-defined utopian fields code generation might be possible. It might exist somewhere, I just have not seen it yet, and to be honest it is a bridge too far.We can standardise an M10 nut, but software is more difficult.QuoteIn which domains do we have consensus on models, algorithms, data for calibration,.... ? Some algorithms in Fortran, E.g. NAG libraries.MCAD is somewhat standardised.
Last edited by Cuchulainn on May 6th, 2008, 10:00 pm, edited 1 time in total.
 
User avatar
rmax
Posts: 374
Joined: December 8th, 2005, 9:31 am

Bring back Domain-Specific Languages

May 7th, 2008, 2:02 pm

I think the things that are standardised are a priori truths - no-one in their right mind would start thinking about implementing a function that calculates sine from an input unless they really had to. It is the a posteri functions where the abstract world puts rubber to the road and start modelling real things where there is a mushrooming of opnion / implementations etc.
 
User avatar
Traden4Alpha
Posts: 3300
Joined: September 20th, 2002, 8:30 pm

Bring back Domain-Specific Languages

May 7th, 2008, 2:31 pm

QuoteOriginally posted by: rmaxI think the things that are standardised are a priori truths - no-one in their right mind would start thinking about implementing a function that calculates sine from an input unless they really had to. It is the a posteri functions where the abstract world puts rubber to the road and start modelling real things where there is a mushrooming of opnion / implementations etc.I do agree, but see the situation as more nuanced than a priori vs. a posteri. The real question is the trade-off between development of a new implementation versus reuse of an old one. For well-known (a priori) functions, the decision is strongly biased toward reuse. But even with extremely well implemented code, some situations will always call for a fresh implementation. For example, someone might implement their own sine function code for a special purpose or situation such as high speed with low accuracy or special hardware. There's no shame in re-inventing a wheel if: 1) re-invention is faster than adaptation 2) re-invention yields run-time performance or a performance envelope that was not available with existing code. The issue of DSLs clouds the re-invent vs. reuse decision. On the one hand, a good DSL lets one create new code, in the DSL's domain, that is superior to code created by a more generic language. A good DSL reduces developer labor, enables sophistication, and reduces domain-related bugs. On the other hand, a DSL often leads to greater amounts of re-invention because the DSL may lack the broad library of modules that are available in more popular languages.