This is one of the most promising project I have seen. I am looking to see if some of the features below are supported and if not what is the road map to support them.

Does Rascal support:

1) All bases of the lambda cube
1.1) Ability to support different type systems
2) Pattern calculus
3) Process calculus

with interaction between the 1, 2 and 3

Also what the targets are. Can it target:
1) JVM
2) CLI
3) LLVM

Asked by Suminda Dharmasena on 13 December 2013 at 12:54

This is not the Q&A for Rascal, but for Spoofax. To answer the question for Spoofax:

Support in what sense? It is definitely possible to define syntax definitions for the languages that you mention. Also mixing these languages should not be a problem syntactically. In Stratego one can define arbitrary (type) analyses. We are developing high-level meta-languages for definition of name binding and type analysis. I’m not exactly sure what the coverage of our meta-languages is with respect to these languages; currently we do not support type inference in the sense of Hindley-Milner.

In Spoofax one defines a compiler using term rewriting, mapping terms in the source language to terms in the target language. Alternatively one can directly translate source terms to strings using the convenient string templates of Stratego. Either way, any conceivable language can be targeted.

Answered by Eelco Visser on 13 December 2013 at 13:02