| 619 |      1 | 
 | 
|  |      2 | Curated list of awesome resources on Compilers, Interpreters and Runtimes
 | 
|  |      3 | http://aalhour.com/awesome-compilers
 | 
|  |      4 | https://github.com/aalhour/awesome-compilers
 | 
|  |      5 | 
 | 
| 744 |      6 | 
 | 
|  |      7 | ----------------
 | 
|  |      8 | Video about Language design
 | 
|  |      9 | 
 | 
|  |     10 | https://www.reddit.com/r/programming/comments/ians9l/computerphile_from_algol_60_to_pascal_video/
 | 
|  |     11 | 
 | 
| 619 |     12 | ----------------
 | 
|  |     13 | 
 | 
| 599 |     14 | Thinking Forth (Book to read)
 | 
|  |     15 | =================
 | 
|  |     16 | 
 | 
| 620 |     17 | Nice compiler overview talk (examples)
 | 
|  |     18 | http://venge.net/graydon/talks/CompilerTalk-2019.pdf
 | 
|  |     19 | 
 | 
| 618 |     20 | =================
 | 
|  |     21 | opinionated functional programming language compiling to the JVM 
 | 
|  |     22 | https://flix.github.io/#/research/
 | 
|  |     23 | https://flix.github.io/#/principles/
 | 
| 599 |     24 | 
 | 
| 618 |     25 | 
 | 
|  |     26 | =================
 | 
|  |     27 | General tail call elimination on the JVM
 | 
|  |     28 | 
 | 
|  |     29 | http://cs.au.dk/~magnusm/papers/cc18/paper.pdf
 | 
|  |     30 | 
 | 
|  |     31 | =================
 | 
|  |     32 | incremental approach to compiler  construction
 | 
|  |     33 | http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf
 | 
|  |     34 | 
 | 
|  |     35 | =================
 | 
| 550 |     36 | Compiler courses
 | 
|  |     37 | http://www.cse.chalmers.se/edu/year/2017/course/TDA283/lectures/
 | 
|  |     38 | http://www.cs.columbia.edu/~sedwards/classes/2017/4115-fall/index.html
 | 
|  |     39 | http://www.cs.dartmouth.edu/~mckeeman/cs48/index.html
 | 
| 553 |     40 | http://www.cl.cam.ac.uk/teaching/1718/CompConstr/materials.html
 | 
| 555 |     41 | 
 | 
|  |     42 | 
 | 
|  |     43 | http://spivey.oriel.ox.ac.uk/corner/Welcome_to_Spivey%27s_Corner
 | 
|  |     44 | http://spivey.oriel.ox.ac.uk/corner/Compilers_(The_Farewell_Tour)
 | 
|  |     45 | http://spivey.oriel.ox.ac.uk/wiki2/files/compilers/book.pdf
 | 
|  |     46 | http://spivey.oriel.ox.ac.uk/corner/Programming_Languages
 | 
|  |     47 | 
 | 
| 556 |     48 | http://www.cs.cornell.edu/courses/cs3110/2015fa/index.php#Assignments
 | 
|  |     49 | Magnus
 | 
|  |     50 | http://www.cse.chalmers.se/edu/course/TDA283/
 | 
|  |     51 | Pfenning
 | 
|  |     52 | https://www.cs.cmu.edu/~fp/courses/15411-f14/
 | 
|  |     53 | https://www.cs.cmu.edu/~fp/courses/15411-f13/lectures/
 | 
|  |     54 | https://www.cs.cmu.edu/~fp/courses/15411-f14/lectures/
 | 
| 550 |     55 | ===============================
 | 
| 570 |     56 | Compiler book links
 | 
|  |     57 | https://www.reddit.com/r/ProgrammingLanguages/comments/9k2hfd/introduction_to_compilers_and_language_design/
 | 
|  |     58 | 
 | 
|  |     59 | http://www.craftinginterpreters.com
 | 
| 621 |     60 | podcast by author of above
 | 
|  |     61 |   https://corecursive.com/032-bob-nystrom-on-building-an-interpreter/#
 | 
|  |     62 | 
 | 
| 570 |     63 | 
 | 
|  |     64 | Book about SSA
 | 
|  |     65 | http://ssabook.gforge.inria.fr/latest/book-full.pdf
 | 
|  |     66 | 
 | 
|  |     67 | http://cs.lmu.edu/~ray/notes/ir/
 | 
|  |     68 | ===============================
 | 
| 556 |     69 | Selfhosting Lisp compiler for Lua
 | 
|  |     70 | 
 | 
|  |     71 | https://github.com/sctb/lumen
 | 
|  |     72 | ============================
 | 
| 595 |     73 | Basic as a DSL in Scala
 | 
|  |     74 | https://github.com/fogus/baysick/blob/master/src/main/scala/fogus/baysick/Baysick.scala
 | 
| 556 |     75 | 
 | 
| 597 |     76 | 
 | 
|  |     77 | ============================
 | 
|  |     78 | Arihmetic with regexes
 | 
|  |     79 | 
 | 
|  |     80 | http://www.drregex.com/2018/11/how-to-match-b-c-where-abc-beast-reborn.html
 | 
| 595 |     81 | ============================
 | 
|  |     82 | Static analysis lecture notes
 | 
|  |     83 | https://cs.au.dk/~amoeller/spa/spa.pdf
 | 
|  |     84 | 
 | 
|  |     85 | ============================
 | 
| 550 |     86 | 
 | 
|  |     87 | Pictures from the Starting Forth book
 | 
| 546 |     88 | 
 | 
|  |     89 | https://www.forth.com/starting-forth/2-stack-manipulation-operators-arithmetic/
 | 
|  |     90 | 
 | 
|  |     91 | --------------------------------
 | 
| 550 |     92 | Java Byte Code for SCALA
 | 
|  |     93 | https://www.toptal.com/scala/scala-bytecode-and-the-jvm
 | 
| 546 |     94 | 
 | 
| 550 |     95 | ------------------
 | 
| 546 |     96 | Yeti - ML for the JVM
 | 
|  |     97 | https://mth.github.io/yeti/
 | 
|  |     98 | http://dot.planet.ee/yeti/intro.html
 | 
|  |     99 | 
 | 
| 550 |    100 | ------------------
 | 
|  |    101 | Ocaml for LLVM
 | 
|  |    102 | https://github.com/artagnon/rhine-ml 
 | 
|  |    103 | 
 | 
|  |    104 | ---------------
 | 
|  |    105 | Type inference 
 | 
|  |    106 | http://www.calebh.io/Type-Inference-by-Solving-Constraints/
 | 
|  |    107 | 
 | 
|  |    108 | 
 | 
| 546 |    109 | 
 | 
|  |    110 | JVM languages
 | 
|  |    111 | https://en.wikipedia.org/wiki/List_of_JVM_languages
 | 
|  |    112 | https://www.codeproject.com/Articles/50377/Create-Your-Own-Programming-Language
 | 
|  |    113 | 
 | 
|  |    114 | 
 | 
|  |    115 | Scheme
 | 
|  |    116 | https://wespiser.com/writings/wyas/home.html
 | 
|  |    117 | http://peter.michaux.ca/index#Scheme
 | 
|  |    118 | 
 | 
|  |    119 | 
 | 
|  |    120 | 
 | 
| 476 |    121 | assmebly (calculator RPN)
 | 
|  |    122 | 
 | 
|  |    123 | https://dere.github.io/2017-02-12/beginners-assembly-part1/
 | 
|  |    124 | 
 | 
|  |    125 | 
 | 
| 477 |    126 | webassembly
 | 
|  |    127 | https://sourceware.org/ml/binutils/2017-03/msg00044.html
 | 
|  |    128 | https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/
 | 
| 495 |    129 | https://webassembly.github.io/spec/
 | 
| 477 |    130 | 
 | 
|  |    131 | webassembly explorer
 | 
|  |    132 | https://mbebenita.github.io/WasmExplorer/
 | 
|  |    133 | 
 | 
| 495 |    134 | ARM
 | 
|  |    135 | https://azeria-labs.com/writing-arm-assembly-part-1/
 | 
| 477 |    136 | 
 | 
| 495 |    137 | JVM
 | 
|  |    138 | https://www.toptal.com/scala/scala-bytecode-and-the-jvm
 | 
|  |    139 | 
 | 
|  |    140 | Growing a compiler
 | 
|  |    141 | http://www.cs.dartmouth.edu/~mckeeman/cs48/mxcom/gem/html/GrowingCompiler.html
 | 
| 477 |    142 | 
 | 
|  |    143 | free books
 | 
|  |    144 | https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
 | 
| 495 |    145 | https://john.cs.olemiss.edu/~hcc/csci658/notes/Free_Prog_Lang_Textbooks.html
 | 
|  |    146 | 
 | 
|  |    147 | MIPS
 | 
|  |    148 | http://courses.missouristate.edu/kenvollmar/mars/
 | 
|  |    149 | 
 | 
|  |    150 | PEG
 | 
|  |    151 | 
 | 
|  |    152 | https://github.com/taocpp/PEGTL
 | 
|  |    153 | 
 | 
|  |    154 | 
 | 
|  |    155 | Parser
 | 
|  |    156 | https://www.reddit.com/r/programming/comments/615hoz/how_to_write_a_recursive_descent_parser/
 | 
|  |    157 | https://www.reddit.com/r/ProgrammingLanguages/comments/60gmgc/writing_a_recursive_descent_expression_parser/
 | 
|  |    158 | http://www.craftinginterpreters.com/parsing-expressions.html
 | 
|  |    159 | 
 | 
|  |    160 | 
 | 
|  |    161 | small languages
 | 
|  |    162 | https://github.com/Michael2109/cobalt
 | 
|  |    163 | http://www.red-lang.org/p/about.html
 | 
|  |    164 | http://craftinginterpreters.com/contents.html
 | 
|  |    165 | https://michaelhaywoodblog.wordpress.com
 | 
|  |    166 | https://ruslanspivak.com/lsbasi-part1/
 | 
|  |    167 | http://selfie.cs.uni-salzburg.at
 | 
| 550 |    168 | https://academy.realm.io/posts/tryswift-samuel-giddins-building-tiny-compiler-swift-ios/
 | 
|  |    169 | https://legacy.gitbook.com/book/luxlang/the-lux-programming-language/details
 | 
|  |    170 | https://github.com/rhysd/gocaml
 | 
|  |    171 | https://github.com/aalhour/awesome-compilers#educational-and-toy-projects
 | 
|  |    172 | https://rsms.me/hue-intro
 | 
| 495 |    173 | 
 | 
|  |    174 | 
 | 
|  |    175 | automata
 | 
|  |    176 | https://www7.in.tum.de/um/courses/auto/ws1314/script/autonotes.pdf
 | 
|  |    177 | 
 | 
|  |    178 | Reges helpers
 | 
|  |    179 | https://regex101.com
 | 
|  |    180 | http://www.regular-expressions.info/tutorial.html
 | 
|  |    181 | 
 | 
|  |    182 | 
 | 
|  |    183 | Regex performance benchmark
 | 
|  |    184 | https://rust-leipzig.github.io/regex/2017/03/28/comparison-of-regex-engines/
 | 
|  |    185 | https://github.com/k-takata/Onigmo
 | 
|  |    186 | 
 | 
|  |    187 | Sulzmann
 | 
|  |    188 | https://github.com/pippijn/dreml/
 | 
|  |    189 | 
 | 
|  |    190 | 
 | 
|  |    191 | Scala parser
 | 
|  |    192 | http://enear.github.io/2016/03/31/parser-combinators/
 | 
|  |    193 | 
 | 
|  |    194 | 
 | 
|  |    195 | ANTLR megatutorial
 | 
|  |    196 | https://tomassetti.me/antlr-mega-tutorial/
 | 
|  |    197 | 
 | 
|  |    198 | From regex to LLVM
 | 
|  |    199 | https://www.youtube.com/watch?v=Ukqb6nMjFyk
 | 
|  |    200 | 
 | 
|  |    201 | 
 | 
|  |    202 | 
 | 
|  |    203 | 
 | 
|  |    204 | Static code analysis
 | 
| 550 |    205 | https://medium.com/@Coder_HarryLee/videos-about-static-code-analysis-7654b40f9a3b
 | 
|  |    206 | 
 | 
|  |    207 | 
 | 
|  |    208 | Brainfuck compiler
 | 
|  |    209 | https://github.com/PurpleMyst/bf_compiler
 | 
|  |    210 | https://www.reddit.com/r/programming/comments/8371tk/a_brainfuck_to_llvm_ir_compiler_written_in_python/
 | 
|  |    211 | http://www.wilfred.me.uk/blog/2015/02/21/my-first-llvm-compiler/
 | 
|  |    212 | 
 | 
|  |    213 | ===============================
 | 
|  |    214 | A simple recursive regular expression matcher written in Scala.
 | 
|  |    215 | https://github.com/marconilanna/RegexMatcher
 | 
|  |    216 | 
 | 
|  |    217 | ===============================
 | 
|  |    218 | A neat little tool to build presentations using the Scala REPL
 | 
|  |    219 | https://github.com/marconilanna/REPLesent
 | 
|  |    220 | 
 | 
|  |    221 | 
 | 
|  |    222 | ======================
 | 
|  |    223 | Minimal Static Single Assignment Form
 | 
|  |    224 | Max Wagner and Denis Lohner
 | 
|  |    225 | 
 | 
|  |    226 | This formalization is an extension to "Verified Construction of Static Single 
 | 
|  |    227 | Assignment Form". In their work, the authors have shown that Braun et al.'s 
 | 
|  |    228 | static single assignment (SSA) construction algorithm produces minimal SSA form 
 | 
|  |    229 | for input programs with a reducible control flow graph (CFG). However Braun et 
 | 
|  |    230 | al. also proposed an extension to their algorithm that they claim produces 
 | 
|  |    231 | minimal SSA form even for irreducible CFGs.
 | 
|  |    232 | In this formalization we support that claim by giving a mechanized proof.
 | 
|  |    233 | 
 | 
|  |    234 | As the extension of Braun et al.'s algorithm aims for removing so-called 
 | 
|  |    235 | redundant strongly connected components of phi functions, we show that this 
 | 
|  |    236 | suffices to guarantee minimality according to Cytron et al..
 | 
|  |    237 | 
 | 
|  |    238 | https://www.isa-afp.org/entries/Minimal_SSA.shtml
 | 
|  |    239 | 
 | 
|  |    240 | 
 | 
| 553 |    241 | =========================
 | 
|  |    242 | How Clang compiles a function
 | 
|  |    243 | https://blog.regehr.org/archives/1605 |