Students computer science or software engineering can take up projects and participate in the SubScript project. This is a great opportunity to learn Scala and also programming with Process Algebra.
Below three student project descriptions. Each may would be good for 150 up to 750 working hours, whatever is desired.
There is still plenty to do on the current implementation. You may work on:
- unit tests
- bug fixing
- fill gaps in feature implementations
- provide full grammar support
- improve debugger
The project would involve some of the following tasks:
- develop use cases, both for client-side and server-side applications
- define a strategy to send over SubScript in HTML pagesand have it translated
Akka is the Scala actor implementation, very useful for distributed functions. Typically an actor operates a state machine, which is programmed using state variables. This is relatively inconvenient to program and read. SubScript may provide a better alternative for programming actor internals. This project would involve:
- develop typical actors in two versions: just Scala and SubScript
- compare these versions in terms of clearness and conciseness
- measure the performance of these versions
- make a tutorial
Project 4: Mimic Rascal
Rascal language is a domain specific language for source code analysis and manipulation a.k.a. meta-programming. It has high level support for creating parsers that extract information from input texts, e.g. specification of keywords, lexical syntax, concrete syntax, and abstract syntax.
SubScript-Scala may be powerful enough to do very similar things, using an internal DSL. The result would then be quite powerful; the support for concrete syntax and abstract syntax could be handy for serialization and deserialization of application data.
- design a DSL on SubScript-Scala that would supports typical Rascal constructs
- implement the DSL