Hi everyone! Iβm thrilled to announce my latest project: AXE Lang, an expressive functional programming language hosted in Julia, designed for rapid development and educational use
This journey began in CSC 430: Programming Languages, where I explored the fascinating world of parsers and interpreters, ultimately implementing my first programming language. That class ignited a passion for understanding how languages work at their core.
Recently, I took this knowledge further, synthesizing key concepts from the course and building my own language from scratch. By hosting AXE Lang in Julia, I was able to combine Juliaβs high-performance features with the flexibility and elegance of functional programming. Here are some of my key takeaways from developing AXE.
π» The Power of Function Programming
Working with various function programming languages while designing AXE deepened my appreciation for functional paradigms. I found these languages expressive and incredibly fun to work with and urge every programming student to explore this side of programming.
β»οΈ Iterative Design
Building a language taught me that iteration was key. It took my multiple iterations in hosting languages before I landed on Julia as the best bet to host my programming language. Additionally, iterating on the syntax and grammar of my language taught me to balance expressiveness with simplicity. For example, I decided to remove the concept of named functions and opted for anonymous functions (lambdas) in my language to promote simplicity and expressiveness, reducing the syntactic overhead.
ποΈ Development Challenges
Some of the hardest parts of this project was developing the interpreter for a function application where concepts such as lexical scoping and environment management became paramount. These concerns were only heightened after the implementation of mutation in the language, which would introduce side effects to my language. You can read more the strategies while developing this language in the GitHub linked below.
βοΈ Next Steps with AXE
https://github.com/sahkar/axe-lang
If you are interested in AXE Lang, please clone this GitHub repository which provides access to AXE's source code as well as a local interactive REPL to learn AXE syntax and features.
Please reach out if you have any questions about AXE, Julia, or anything else. Enjoy!
Top comments (0)