Student Projects


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.

Project 1: Enhance current implementation of SubScript-Scala

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

Project 2: Investigate SubScript on top of JavaScript

SubScript might as well extend other languages next to Scala. An interesting starter would be JavaScript. The good thing is that since 2013 Scala translates into JavaScript. Therefore a single code base of the SubScript VM, which is written in Scala, may also work for JavaScript.

The project would involve some of the following tasks:

  • develop use cases, both for client-side and server-side applications
  • create a translator for SubScript into JavaScript
  • extend an existing JavaScript interpreter to understand SubScript
  • define a strategy to send over SubScript in HTML pagesand have it translated
  • provide a translator for the SubScript VM source code into JavaScript
  • JavaScript does not support explicit multithreading; develop an alternative

10 thoughts on “Student Projects

  1. If you support something like the constructs of Rascal, KFramework, Metaborg, etc. you do not need this to depend on Scala. You can define the subset of Scala features you need though it.

  2. Perhaps you can expand 4 to include all rewriting / reduction / matching logic systems to the extend you can define subscript using subscript. Another property at a later stage would be Homoiconicity.

    Ideally make sure everything is formally verifiable.

  3. sirinath  I am thinking of removing this 4th project idea. I am not sure any more how useful it will be. There is, a sister project for Rascal. On top of that a lot of products are being developed, among which and Mimicing Rascal or Spoofax will be quite some work, whereas the added value maybe marginal since SugarScala may offer much of that functionality. I am not sure.

    BTW I expect that the SubScript compiler will move from a Scalac derivative to a SugarScala application, really soon after SugarScala gets an official release.

  4. Add algo skeletons and an alternative to Akka which may be more formally defined. Akka also can be supported. But most of what you support should have a formal Algebra / Calculus behind it. I am not sure how close to formal Akka is for a process calculus. Perhaps you might need a layer on top to make it fit.

  5. Just saw this But nevertheless having a alternative is also good. Ideally they should be drop in replacements.

    Also have a look at this

  6. sirinath AKKA has great properties: adressable, loosely coupled actors with FIFO message queues. IMO ACP cannot improve that. But I think ACP/SubScript is very good for programming the internal behaviour of single actors

  7. sirinath I think a lot is possible in this direction, and it could be very useful. But I will have no time for this. So others should do this.

Leave a Reply