diff options
| -rw-r--r-- | README.md | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -6,14 +6,24 @@ 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. +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. Simple is strongly typed, object-oriented, with first- +class *functions* not *closures*. Object references are pointers, and null +pointer exceptions are disallowed by the typing system. Arrays will probably +be range-checked at some point, making Simple a fully safe language. Simple +has a minimal syntax that can be parsed with a recursive descent parser. + 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. +strength systems - but for this demonstration the backend is both difficult and +less important. This repo will eventually target X86 and at least one more +machine with ahead-of-time compilation - but with an eye to JIT compilation. + +This repo also is not intended to be a complete language in any sense, and so +the backend starts with levering Java: the Evaluator (first appears in Chapter +10) directly slowly interprets the SoN IR. Code-gen first appears in Chapter +19. -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 |
