SeaOfNodes / Simple

A Simple showcase for the Sea-of-Nodes compiler IR
Apache License 2.0
297 stars 21 forks source link

Simple

A Simple showcase for the Sea-of-Nodes compiler IR

This repo is intended to demonstrate the Sea-of-Nodes compiler IR.

The Sea-of-Nodes is the core IR inside of HotSpot's C2 compiler and Google's V8 compiler and Sun/Oracle's Graal compiler.

Since we are show casing the SoN IR, the language being implemented is less important. We're using a very simple language similar to C or Java, but with far fewer features. The Sea-of-Nodes is used for machine code generation in these industrial strength systems - but for this demonstration the backend is both difficult and less important.

This repo also is not intended to be a complete language in any sense, and so the backend will probably start with levering C or Java.

Chapters

The following is a rough plan, subject to change.

Each chapter will be self-sufficient and complete; in the sense that each chapter will fully implement a subset of the simple language, and include everything that was created in the previous chapter. Each chapter will also include a detailed commentary on relevant aspects of the Sea Of Nodes intermediate representation.

The simple language will be a small subset of C.