diff options
| author | Cliff Click <cliffc@acm.org> | 2024-11-15 09:16:33 -0800 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-11-23 09:03:20 -0800 |
| commit | 9c384ff44d32857b81723c82aeea0bcbd8aab30c (patch) | |
| tree | e054ca8295c9c3489b6cf47071fef2a698904a8b | |
| parent | 20e598812cfe3bf2241e4c856e017acb29f13192 (diff) | |
| download | Simple-9c384ff44d32857b81723c82aeea0bcbd8aab30c.tar.gz Simple-9c384ff44d32857b81723c82aeea0bcbd8aab30c.zip | |
More README
| -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 |
