(Internship) Improving the Modularity and Robustness of the Althread Language

During my first-year master’s internship with Professor Quentin Bramas, I added a module system to Althread, an educational language for modeling and verifying distributed systems.

After comparing module designs in Promela, TLA+, Python, JavaScript, and Go, I implemented namespace-based imports with local files, remote dependencies, circular-import detection, and visibility rules for private functions and programs.

Table comparing Promela, TLA+, Python, Go and Althread import system designs.
Key aspects of Promela, TLA+, Python, Go and Althread import system designs.

I also completed support for cross-function and nested calls, implicit returns, and control-flow checks that require non-void functions to return on every path. In the web IDE, I added a virtual file system and package manager so imports and remote dependencies could run in WebAssembly.