Saturday, June 27, 2009

Rascal: Preparing for take-off

Five month ago I have prepared you for the arrival of our new kid on the block: Rascal. In the meantime we have not done a lot of blogging but we did do a lot of programming and documentation and Rascal is now reaching a first alpha version. If you want to have a glimpse at how the language looks like, have a look at the 100 page user manual: http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.pdf or if you prefer the html version: http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.html From this you can see that we have made major progress.

This is our elevator pitch about the main benefits offered by Rascal:

  • Sophisticated built-in data types provide standard solutions for many meta-programming problems.

  • Safety is achieved by finding most errors even before the program is executed and by making common errors like missing initializations or wrong pointers impossible.

  • Pattern matching is used to analyze even the most complex datastructures.

  • Syntax definitions make it possible to define new and existing languages and to write tools for them.

  • Visiting makes it easy to traverse datastructures and to extract information from them or to synthesize results.

  • Functions as values permit programming styles with high re-use.

  • Generic types allow writing functions that are applicable for many different types.

  • Local type inference makes local variable declarations redundant.

  • Familiar syntax in a what-you-see is-what-you-get style is used even for sophisticated concepts and this makes the language easy to learn and easy to use.

  • Eclipse integration makes Rascal programming a breeze. All familiar tools are at your fingertips.

Interested? Read the manual.

If you are really courageous try the alpha version that you can find at:

http://www.meta-environment.org/Meta-Environment/Rascal

We will first present Rascal at the GTTSE summer school in Braja and we will keep you posted on the initial reactions there.