Making a Compiler: Difference between revisions

Jump to navigation Jump to search
Add a list of resources
[unchecked revision][unchecked revision]
No edit summary
(Add a list of resources)
Line 78:
 
 
Soon, I'll go over how to actually write each of those. [editor's note: "soon" doesn't seem to be that soon after all]
 
==See Also==
 
===External Links===
 
* [https://craftinginterpreters.com/ Crafting Interpreters] - has a very good and approachable description of lexing, parsing, and ASTs. Also covers compiling to bytecode, with techniques that can be adapted to emit unoptimized machine code.
* [https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided/ CS 6120: Advanced Compilers: The Self-Guided Online Course] - an introduction to various code optimization techniques
* [https://cfallin.org/blog/2023/01/20/cranelift-isle/ Cranelift's Instruction Selector DSL, ISLE: Term-Rewriting Made Practical] - an example of how instruction selection can be accomplished
* [https://cfallin.org/blog/2022/06/09/cranelift-regalloc2/ Cranelift, Part 4: A New Register Allocator] - an example of a non-trivial register allocation technique
* [https://github.com/bytecodealliance/rfcs/blob/main/accepted/cranelift-egraph.md Cranelift: Using E-Graphs for Verified, Cooperating Middle-End Optimizations] - describes an interesting technique for solving the phase-ordering problem
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu