Inspiration

We have a strong interest in programming language design, compiler design, and compiler optimizations. We wanted to create a programming language that can challenge modern languages like C/C++, Rust, Zig, Go.

What it does

Takes as input a string in the language which then gets parsed only to then to errors out right before the beginning of code gen not by design btw.

How we built it

Flex + Bison + LLVM

Challenges we ran into

The main challenge was getting the front end of the compiler to work with the back end of the compiler. The two parts work independently of each other but its hard to showcase the project when thats the case. As both parts need to be connected.

Accomplishments that we're proud of

We all got more familiar with Flex, Bison, LLVM. All of these tools are huge projects with a lot of complex parts that can be non intuitive.

What we learned

How to use Flex + Bison + LLVM.

What's next for The Armadillo Programming Language

Removing flex, removing bison, and writing our own lexer and parser with Ocml. Then passing that to a back end like LLVM.

References

Although we did not finish we would have not gotten as far as we did without the following references. Thank you for the authors mentioned below. Finally although not explicit mentioned Dr.Dalio the professor for CSE-4305 (Compilers class) assignments also served as a good reference.

https://llvm.org/doxygen/index.html

https://llvm.org/docs/tutorial/

https://github.com/lsegal/my_toy_compiler/tree/master

https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.html#chapter-3-introduction

Built With

  • bison
  • flex
  • llvm
Share this project:

Updates