At the same time Crafting Interpreters came up next on my reading list, I was also learning Kotlin. To knock two birds with one stone, this repo is an implementation of the lox
compiler written in Kotlin.
The Java complier is called jlox
and the one written in C is called clox
. Naturally, the Kotlin version would be called klox
To learn and become familiar with Kotlin by using a reference written in Java
Kotlin has nice features (compared to Java):
- Null-safety by default, unlike Java where NPEs abound
- Kotlin is more
fun
ctional: functions are first-class (rather than just public static methods) when
statements are more expressive/flexible than switch/case/breakval
is better thanfinal
on every line making my eyes bleed- Properties over getters/setters
- String templates
- TODO() is literally built into Kotlin
- Simple
in
keyword for collections and ranges with
saves repetition (like withwriter.println
)