usethesource / rascal

The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)
http://www.rascal-mpl.org
Other
395 stars 78 forks source link

Question: Lambda Cube, Pattern Calculus, Process Calculus and Targets #438

Closed sirinath closed 10 years ago

sirinath commented 10 years ago

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

jurgenvinju commented 10 years ago

Hi Sirinath

Thanks. To answer you question I need to know on what level you need support for these things. On the one hand, since Rascal is a general meta programming framework, in principle it deals with any languages and targets any back-end. For different languages, the existence and quality of supporting libraries differs (for Java/JVM it is great, for PHP good, for other languages rudimentary or non-existing). On the other hand, Rascal itself runs on the JVM only currently.

So, what you means by supporting pattern & process calculus and different type systems of lambda calculus? It can all be made in Rascal, but there is not an off-the-shelf library for these languages.

Cheers!

sirinath commented 10 years ago

This is mainly for a hobbyist activity. Possibility to use if for a Dataflow language in a project I am doing. So I am looking to make the process schematics type safe. Still no idea how to do this.

Also what I have been thinking is how dependent types can be used in a DSL like Idres and how to model Processors as Types with 1st class pattern matching.

The language should be simple like: http://www.shenlanguage.org/, http://en.wikipedia.org/wiki/Qi_(programming_language) or Scheme with layers build on top of each other and also better syntaxt similar to some one comming from C

sirinath commented 10 years ago

Also I want to be use that I can stick to whatever I choose in case I want to implement some feature down the line. Since I am reading background material I still don't know all what I want but want to make sure I choose the best.

jurgenvinju commented 10 years ago

Sounds like an interesting project. Have a look at the recipes to see how things go in Rascal: http://tutor.rascal-mpl.org/Recipes/Recipes.html

sirinath commented 10 years ago

Is it possible to add the following example langues from different paradigms or the challenging parts eventually to cover and stress test the framework: 1) Haskell, ML, OCaml, F#, Scala, Pure 2) C++, Ada, D, 3) Lisp, Scheme, Racket, Clojure, Qi, Shen 4) Idris, Agda, Coq, Isabelle, Placid 5) Python, Ruby, Perl, Smalltalk 6) Dylan, Rust, Nimrod, Mozart, 7) Prolog, Mercury, Twelf 8) Objective C, Eiffel 9) Bondi (Based on Pattern Calculus) 10) Fortress (break from traditional langues design) 11) Esterel, Lustre, CAL Actor Language, VHDL, Verilog 12) Modelica 13) Limbo, Go 14) Forth 15) A+, Q, K, R 16) Forth, Rebol

Of course this would be a slow process but it will let Rascal evolve to accommodate many types of languages and paradigm. Perhaps this can be a GSoC project as in the approach the K Framework is doing.

sirinath commented 10 years ago

Also perhaps you can consider adding support for visual DSLs and ability to handle special visual rendering some point in time like in http://eclipse.org/sirius/

swatbot commented 10 years ago

Hi. We have already powerful visual rendering in the making. See the Figure library. Otherwise we share your ambition for supporting as many languages as possible :-) but they come only one at a time... Indeed financial support for this would certainly help.

— Jurgen J. Vinju CWI SWAT INRIA Lille UvA master software engineering http://jurgen.vinju.org

On Fri, Dec 13, 2013 at 6:51 PM, Suminda Dharmasena notifications@github.com wrote:

Also perhaps you can consider adding support for visual DSLs and ability to handle special visual rendering some point in time like in http://eclipse.org/sirius/

Reply to this email directly or view it on GitHub: https://github.com/cwi-swat/rascal/issues/438#issuecomment-30528926