+ −
Curated list of awesome resources on Compilers, Interpreters and Runtimes+ −
http://aalhour.com/awesome-compilers+ −
https://github.com/aalhour/awesome-compilers+ −
+ −
----------------+ −
+ −
Thinking Forth (Book to read)+ −
=================+ −
+ −
Nice compiler overview talk (examples)+ −
http://venge.net/graydon/talks/CompilerTalk-2019.pdf+ −
+ −
=================+ −
opinionated functional programming language compiling to the JVM + −
https://flix.github.io/#/research/+ −
https://flix.github.io/#/principles/+ −
+ −
+ −
=================+ −
General tail call elimination on the JVM+ −
+ −
http://cs.au.dk/~magnusm/papers/cc18/paper.pdf+ −
+ −
=================+ −
incremental approach to compiler construction+ −
http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf+ −
+ −
=================+ −
Compiler courses+ −
http://www.cse.chalmers.se/edu/year/2017/course/TDA283/lectures/+ −
http://www.cs.columbia.edu/~sedwards/classes/2017/4115-fall/index.html+ −
http://www.cs.dartmouth.edu/~mckeeman/cs48/index.html+ −
http://www.cl.cam.ac.uk/teaching/1718/CompConstr/materials.html+ −
+ −
+ −
http://spivey.oriel.ox.ac.uk/corner/Welcome_to_Spivey%27s_Corner+ −
http://spivey.oriel.ox.ac.uk/corner/Compilers_(The_Farewell_Tour)+ −
http://spivey.oriel.ox.ac.uk/wiki2/files/compilers/book.pdf+ −
http://spivey.oriel.ox.ac.uk/corner/Programming_Languages+ −
+ −
http://www.cs.cornell.edu/courses/cs3110/2015fa/index.php#Assignments+ −
Magnus+ −
http://www.cse.chalmers.se/edu/course/TDA283/+ −
Pfenning+ −
https://www.cs.cmu.edu/~fp/courses/15411-f14/+ −
https://www.cs.cmu.edu/~fp/courses/15411-f13/lectures/+ −
https://www.cs.cmu.edu/~fp/courses/15411-f14/lectures/+ −
===============================+ −
Compiler book links+ −
https://www.reddit.com/r/ProgrammingLanguages/comments/9k2hfd/introduction_to_compilers_and_language_design/+ −
+ −
http://www.craftinginterpreters.com+ −
podcast by author of above+ −
https://corecursive.com/032-bob-nystrom-on-building-an-interpreter/#+ −
+ −
+ −
Book about SSA+ −
http://ssabook.gforge.inria.fr/latest/book-full.pdf+ −
+ −
http://cs.lmu.edu/~ray/notes/ir/+ −
===============================+ −
Selfhosting Lisp compiler for Lua+ −
+ −
https://github.com/sctb/lumen+ −
============================+ −
Basic as a DSL in Scala+ −
https://github.com/fogus/baysick/blob/master/src/main/scala/fogus/baysick/Baysick.scala+ −
+ −
+ −
============================+ −
Arihmetic with regexes+ −
+ −
http://www.drregex.com/2018/11/how-to-match-b-c-where-abc-beast-reborn.html+ −
============================+ −
Static analysis lecture notes+ −
https://cs.au.dk/~amoeller/spa/spa.pdf+ −
+ −
============================+ −
+ −
Pictures from the Starting Forth book+ −
+ −
https://www.forth.com/starting-forth/2-stack-manipulation-operators-arithmetic/+ −
+ −
--------------------------------+ −
Java Byte Code for SCALA+ −
https://www.toptal.com/scala/scala-bytecode-and-the-jvm+ −
+ −
------------------+ −
Yeti - ML for the JVM+ −
https://mth.github.io/yeti/+ −
http://dot.planet.ee/yeti/intro.html+ −
+ −
------------------+ −
Ocaml for LLVM+ −
https://github.com/artagnon/rhine-ml + −
+ −
---------------+ −
Type inference + −
http://www.calebh.io/Type-Inference-by-Solving-Constraints/+ −
+ −
+ −
+ −
JVM languages+ −
https://en.wikipedia.org/wiki/List_of_JVM_languages+ −
https://www.codeproject.com/Articles/50377/Create-Your-Own-Programming-Language+ −
+ −
+ −
Scheme+ −
https://wespiser.com/writings/wyas/home.html+ −
http://peter.michaux.ca/index#Scheme+ −
+ −
+ −
+ −
assmebly (calculator RPN)+ −
+ −
https://dere.github.io/2017-02-12/beginners-assembly-part1/+ −
+ −
+ −
webassembly+ −
https://sourceware.org/ml/binutils/2017-03/msg00044.html+ −
https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/+ −
https://webassembly.github.io/spec/+ −
+ −
webassembly explorer+ −
https://mbebenita.github.io/WasmExplorer/+ −
+ −
ARM+ −
https://azeria-labs.com/writing-arm-assembly-part-1/+ −
+ −
JVM+ −
https://www.toptal.com/scala/scala-bytecode-and-the-jvm+ −
+ −
Growing a compiler+ −
http://www.cs.dartmouth.edu/~mckeeman/cs48/mxcom/gem/html/GrowingCompiler.html+ −
+ −
free books+ −
https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md+ −
https://john.cs.olemiss.edu/~hcc/csci658/notes/Free_Prog_Lang_Textbooks.html+ −
+ −
MIPS+ −
http://courses.missouristate.edu/kenvollmar/mars/+ −
+ −
PEG+ −
+ −
https://github.com/taocpp/PEGTL+ −
+ −
+ −
Parser+ −
https://www.reddit.com/r/programming/comments/615hoz/how_to_write_a_recursive_descent_parser/+ −
https://www.reddit.com/r/ProgrammingLanguages/comments/60gmgc/writing_a_recursive_descent_expression_parser/+ −
http://www.craftinginterpreters.com/parsing-expressions.html+ −
+ −
+ −
small languages+ −
https://github.com/Michael2109/cobalt+ −
http://www.red-lang.org/p/about.html+ −
http://craftinginterpreters.com/contents.html+ −
https://michaelhaywoodblog.wordpress.com+ −
https://ruslanspivak.com/lsbasi-part1/+ −
http://selfie.cs.uni-salzburg.at+ −
https://academy.realm.io/posts/tryswift-samuel-giddins-building-tiny-compiler-swift-ios/+ −
https://legacy.gitbook.com/book/luxlang/the-lux-programming-language/details+ −
https://github.com/rhysd/gocaml+ −
https://github.com/aalhour/awesome-compilers#educational-and-toy-projects+ −
https://rsms.me/hue-intro+ −
+ −
+ −
automata+ −
https://www7.in.tum.de/um/courses/auto/ws1314/script/autonotes.pdf+ −
+ −
Reges helpers+ −
https://regex101.com+ −
http://www.regular-expressions.info/tutorial.html+ −
+ −
+ −
Regex performance benchmark+ −
https://rust-leipzig.github.io/regex/2017/03/28/comparison-of-regex-engines/+ −
https://github.com/k-takata/Onigmo+ −
+ −
Sulzmann+ −
https://github.com/pippijn/dreml/+ −
+ −
+ −
Scala parser+ −
http://enear.github.io/2016/03/31/parser-combinators/+ −
+ −
+ −
ANTLR megatutorial+ −
https://tomassetti.me/antlr-mega-tutorial/+ −
+ −
From regex to LLVM+ −
https://www.youtube.com/watch?v=Ukqb6nMjFyk+ −
+ −
+ −
+ −
+ −
Static code analysis+ −
https://medium.com/@Coder_HarryLee/videos-about-static-code-analysis-7654b40f9a3b+ −
+ −
+ −
Brainfuck compiler+ −
https://github.com/PurpleMyst/bf_compiler+ −
https://www.reddit.com/r/programming/comments/8371tk/a_brainfuck_to_llvm_ir_compiler_written_in_python/+ −
http://www.wilfred.me.uk/blog/2015/02/21/my-first-llvm-compiler/+ −
+ −
===============================+ −
A simple recursive regular expression matcher written in Scala.+ −
https://github.com/marconilanna/RegexMatcher+ −
+ −
===============================+ −
A neat little tool to build presentations using the Scala REPL+ −
https://github.com/marconilanna/REPLesent+ −
+ −
+ −
======================+ −
Minimal Static Single Assignment Form+ −
Max Wagner and Denis Lohner+ −
+ −
This formalization is an extension to "Verified Construction of Static Single + −
Assignment Form". In their work, the authors have shown that Braun et al.'s + −
static single assignment (SSA) construction algorithm produces minimal SSA form + −
for input programs with a reducible control flow graph (CFG). However Braun et + −
al. also proposed an extension to their algorithm that they claim produces + −
minimal SSA form even for irreducible CFGs.+ −
In this formalization we support that claim by giving a mechanized proof.+ −
+ −
As the extension of Braun et al.'s algorithm aims for removing so-called + −
redundant strongly connected components of phi functions, we show that this + −
suffices to guarantee minimality according to Cytron et al..+ −
+ −
https://www.isa-afp.org/entries/Minimal_SSA.shtml+ −
+ −
+ −
=========================+ −
How Clang compiles a function+ −
https://blog.regehr.org/archives/1605+ −