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.

Built With

Share this project: