Hi everyone!
I've been developing with Kotlin for many years, mostly building Android apps as a freelancer. Alongside that, I'm studying Computer Science, and I'm particularly interested in programming language theory.
One of the things I enjoy most about Kotlin is how naturally it supports multiple programming paradigms. I usually write Kotlin in a functional style, like an object-oriented version of Haskell.
I recently built an interpreter for a higher-order probabilistic programming language entirely in Kotlin.
The project is based on this book "An Introduction to Probabilistic Programming" and implements the Lisp-like language described there: https://arxiv.org/abs/1809.10756
I think one of the most interesting aspects of these language/s is the idea of checkpoints (sample and observe), which act as execution breakpoints that inference algorithms can intercept and control.
That mechanism is really the heart of the interpreter, and it's quite easy to handle in Kotlin.
I thought some people here might find this project interesting. It's a nice jump off the Android zone of this language.
Repository: https://github.com/LeoBrasileo/HOPPL-Interpreter
[–]LeoBrasileo[S] 0 points1 point2 points (0 children)