Inspiration

Logical and functional languages such as Prolog and Haskell inspire the design of Logikon, with the intention of being elegant and simple. Logikon also borrows the SMTLib2 language to write function inner expressions which can be formally verified in compile-time, providing a higher level of security.

What it does

As a language, Logikon features matching of function parameters and elegant recursion usage. The code is not sequential, and is written as a set of logical constraints. Ideally these logical constraints are statically and formally verified against a specification given in the code in compile-time. We have build a compiler for Logikon. It compiles Logikon to YUL, the intermediate language used in Solidity, which compiles to multiple EVM bytecode versions.

How I built it

We used Rust to write the compiler from Logikon to YUL and Solidity to compile YUL to EVM bytecode.

Challenges I ran into

Writing ASTs and code generators require a lot of typing.

Accomplishments that I'm proud of

Two days isn't a lot of time to write a compiler.

What I learned

Two days isn't a lot of time to write a compiler.

What's next for Logikon

Full compiler implementation.

Built With

Share this project:

Updates