This bachelor's degree concerns the specification of a new programming language. This language, called Sard, is a backwards-incompatible new version of the existing language Scala. Sard, like Scala, is a high-level object-functional language. Unlike Scala, it is not very closely tied to the JVM or Java, eliminating some constraints on the language's design. Since this necessitates breaking backwards compatibility with Scala, the opportunity to disregard it is used to x some of the author's irritations with the language. This degree mostly focuses on deciding on the exact changes to Scala, and on the overall design, rather than on implementing a compiler for the language. A reason for this is that the bachelor's degree provides insuficient time to properly implement´and debug a compiler. Another is the desirability of pushing changes to the language as early into the design process as possible. Preferably, almost all changes to the language should occur before any compiler code has been written.
The design eventually produced gets rid of some known issues stemming from the JVM, like null pointers, non-reified generics and single inheritance. Several features of Scala, like self-type annotations and in x syntax for methods are scrapped. Others, like pattern matching, are generalized. Some changes to the syntax are also made, particularly in the areas of closures, pattern matching and object construction.
As of yet, this language has no implementation, and in future work, this must be rectified. Sard also requires calling compatibility with another programming language, but this remains to be specified. Nevertheless, Sard constitutes a promising refinement of an already great programming language, and it is hoped that Sard will x the few remaining issues with Scala's design.