Skip to content
TiarkRompf edited this page Oct 6, 2011 · 25 revisions

This is an experimental branch of the Scala compiler and standard library that contains a few additions to provide even better support for embedded DSLs (we call that language virtualization).

The key features are as follows:

  1. overloadable control structures (while-loops, if-then-else, pattern matching), variables, object creation,... Scala has always translated for-comprehensions into method calls, so that the programmer can change the meaning of a for-comprehension by implementing these methods in a certain way. We generalize this to all control flow operators, as well as to the representation of mutable variables and object creation (for now limited to row-like datatypes, but providing precise types for field-selection)

  2. extension methods: define new infix-methods on existing types (pimp-my-library with less boilerplate)

  3. transparent proxies: re-route all method calls on these proxy objects to a forwarder method

Proceed to Reference