Inspiration
Richard Roe was struck with a stroke of genius in the middle of the night, called his favorite professor, asked if this idea had any real embodiment.
To young Roe's surprise, there was not yet an implementation of this revolutionary new programming paradigm.
Here's what it does
The secret sauce is that there is a new statement. We call it, when
.
The when
statement monitors the state of the program to react to mutations.
This project is for cool programmers only! If you really want to know what it does, do what you do for every other programming language, and RTFM.
Oh wait. We didn't write one.
So, basically it's just C. With when
. Have fun!
How we built it
We used some industry-standard, best practices, cutting edge tools. These include;
- Antlr (4 to be more precise. 4.5 in case you really wanted to know more details. 4.5.1 to be exact)
- LLVM (I have no idea which version, sorry)
- C (LLVM is a pain to write, so we used C for now)
A couple of us have made non-trivial (but just barely) compilers for school before. We used this invaluable experience and our software engineering knowledge to accomplish this epic.
Challenges we ran into
Practically none.
In the beginning, we tried to use the Antlr plugin for Gradle. This was a mistake. It complained about the first line:
grammar Elang;
This is ridiculous. We cried. Mainly me (Alex Ordonez). And then, we were saved (by Kim Chen). She was smart enough to doubt the plugin. She ran it the proper way with Java and an Antlr jar she found online.
We marched on.
Next, we faced the challenge of getting Antlr to properly generate the lexer, parser, and visitor.
I don't want to go into too many details, because this is a hackathon and I don't have time for that.
Accomplishments that we're proud of
We got past the Antlr error mentioned above.
It works.
What we learned
Richard learned some Antlr I think. I liked working on this more than I liked doing the homework. Mimi learned everything. Kim learned more about writing a complicated compiler.
What's next for elang
Basically, replace C. We plan on taking over the world.
Log in or sign up for Devpost to join the conversation.