Old Projects Page

If you are developing an exciting piece of software with Scala, tell us a bit about it.

Note: Unless noted otherwise, do not expect these projects are in release-worthy or supported state.

The Scala 2 compiler

  • It uses Scala mixins aggressively to structure the system: shared data is “mixed-in” the various classes that require access to it.
  • The main data structure of a compiler (the syntax tree) is often difficult to access. Case classes and pattern matching made traversing the tree intuitive and straightforward.
  • Higher-order functions proved extremely useful to iterate over the many complex lists that are found everywhere in the compiler.
  • Scalac 2 is roughly 44’000 lines of code. The older and lesser compiler (Scalac 1) was 73’000 lines of Java. A large part of the improvement is certainly due to using Scala instead of Java.

Aladdin

  • Aladdin is the Scala bugtracking system, used by both LAMP staff (10 people) and netwide Scala community.
  • It was originally built with Java and Struts and saw gradual replacement of Java Code with Scala code
  • XML literals were quite useful in lessen the dependence on Struts. In turn, Aladdin was quite useful for debugging XML literals.

Actors for Scala

  • Implements actor abstractions as a domain specific language (DSL) in Scala.
  • High performance through event-based computation. Actors are much more lightweight than VM threads.
  • Relies heavily on lightweight closures, partial functions and pattern matching of Scala.
  • Provides very pleasing syntax (close to Erlang) even though it is implemented entirely as a library.
  • Supports arbitrary blocking operations without inversion of control.
  • Lightweight pickler combinators available for mobile JVMs (such as KVM) without reflection support (besides standard Java serialization).
  • Distributed operation over TCP and JXTA.
  • Available on the Scala Bazaar in package scalaactors.
  • See project home page.

DDP Program Analysis

  • DDP is a new kind of program analysis that allows trading speed for precision at a fine-grained level; each information goal of an analysis run can be pursued with a different level of vigor.
  • See the project home page.

LeaveIT: Holiday Requests

  • An in-house intranet application that allows 5000 employees in the company to do their holiday requests, and have them approved; eliminating 40.000 paper requests a year.
  • domain layer is written in Java
  • the webpages are simple jsp
  • the workflow logic is done in Scala
  • originally written in Scala 1.3, now ported to 2.1.5
  • the functional aspects of Scala made this a joy to build

Scala Bazaars (sbaz)

  • A package-distribution system for managing software components developed by independent work groups.
  • The approach is based on package universes.
  • See the home page.
 
projects/old-projects-page.txt · Last modified: 2010/02/11 09:10
 
Recent changes RSS feed Valid XHTML 1.0 Driven by DokuWiki