Benchmarking the Nomen Programming Language
Nomen is a new, dynamically typed OO programming language, which is transpiled to Java source code. The Nomen compiler employs a new compilation scheme leveraging Java 8's interfaces with default methods, and recursive type parameters. As a result, the generated code is supposedly efficient, without sacrificing separate compilation.
The goal of this project is to thoroughly assess the performance of Nomen. There are many dynamically typed languages targeting the JVM nowadays, for instance JRuby, Python, and Clojure, to name a few. Recently, Stefan Marr has started an effort to compare the performance of dynamic OO languages using a standard set of benchmarks (see below).
This research consists of two main components:
- First, develop an alternative compilation scheme based on "one-interface-per-method-signature" (the "naive" way of compiling dynamically typed languages) and compare its performance to the original Nomen scheme.
- Second, implement Marr's benchmarks in Nomen, measure the performance, and understand the results. This will provide insight to the "absolute" performance of Nomen's compilation scheme.
- Stefan Marr, Are we fast yet?
- Van der Storm, Nomen: A Dynamically Typed OO Programming Language, Transpiled to Java, NOOL'16 (code).
Contact: Tijs van der Storm