550
|
1 |
Compiler courses
|
|
2 |
http://www.cse.chalmers.se/edu/year/2017/course/TDA283/lectures/
|
|
3 |
http://www.cs.columbia.edu/~sedwards/classes/2017/4115-fall/index.html
|
|
4 |
http://www.cs.dartmouth.edu/~mckeeman/cs48/index.html
|
553
|
5 |
http://www.cl.cam.ac.uk/teaching/1718/CompConstr/materials.html
|
556
|
6 |
http://www.cs.cornell.edu/courses/cs3110/2015fa/index.php#Assignments
|
|
7 |
Magnus
|
|
8 |
http://www.cse.chalmers.se/edu/course/TDA283/
|
|
9 |
Pfenning
|
|
10 |
https://www.cs.cmu.edu/~fp/courses/15411-f14/
|
|
11 |
https://www.cs.cmu.edu/~fp/courses/15411-f13/lectures/
|
|
12 |
https://www.cs.cmu.edu/~fp/courses/15411-f14/lectures/
|
550
|
13 |
===============================
|
556
|
14 |
Selfhosting Lisp compiler for Lua
|
|
15 |
|
|
16 |
https://github.com/sctb/lumen
|
|
17 |
============================
|
|
18 |
|
550
|
19 |
|
|
20 |
Pictures from the Starting Forth book
|
546
|
21 |
|
|
22 |
https://www.forth.com/starting-forth/2-stack-manipulation-operators-arithmetic/
|
|
23 |
|
|
24 |
--------------------------------
|
550
|
25 |
Java Byte Code for SCALA
|
|
26 |
https://www.toptal.com/scala/scala-bytecode-and-the-jvm
|
546
|
27 |
|
550
|
28 |
------------------
|
546
|
29 |
Yeti - ML for the JVM
|
|
30 |
https://mth.github.io/yeti/
|
|
31 |
http://dot.planet.ee/yeti/intro.html
|
|
32 |
|
550
|
33 |
------------------
|
|
34 |
Ocaml for LLVM
|
|
35 |
https://github.com/artagnon/rhine-ml
|
|
36 |
|
|
37 |
---------------
|
|
38 |
Type inference
|
|
39 |
http://www.calebh.io/Type-Inference-by-Solving-Constraints/
|
|
40 |
|
|
41 |
|
546
|
42 |
|
|
43 |
JVM languages
|
|
44 |
https://en.wikipedia.org/wiki/List_of_JVM_languages
|
|
45 |
https://www.codeproject.com/Articles/50377/Create-Your-Own-Programming-Language
|
|
46 |
|
|
47 |
|
|
48 |
Scheme
|
|
49 |
https://wespiser.com/writings/wyas/home.html
|
|
50 |
http://peter.michaux.ca/index#Scheme
|
|
51 |
|
|
52 |
|
|
53 |
|
476
|
54 |
assmebly (calculator RPN)
|
|
55 |
|
|
56 |
https://dere.github.io/2017-02-12/beginners-assembly-part1/
|
|
57 |
|
|
58 |
|
477
|
59 |
webassembly
|
|
60 |
https://sourceware.org/ml/binutils/2017-03/msg00044.html
|
|
61 |
https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/
|
495
|
62 |
https://webassembly.github.io/spec/
|
477
|
63 |
|
|
64 |
webassembly explorer
|
|
65 |
https://mbebenita.github.io/WasmExplorer/
|
|
66 |
|
495
|
67 |
ARM
|
|
68 |
https://azeria-labs.com/writing-arm-assembly-part-1/
|
477
|
69 |
|
495
|
70 |
JVM
|
|
71 |
https://www.toptal.com/scala/scala-bytecode-and-the-jvm
|
|
72 |
|
|
73 |
Growing a compiler
|
|
74 |
http://www.cs.dartmouth.edu/~mckeeman/cs48/mxcom/gem/html/GrowingCompiler.html
|
477
|
75 |
|
|
76 |
free books
|
|
77 |
https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
|
495
|
78 |
https://john.cs.olemiss.edu/~hcc/csci658/notes/Free_Prog_Lang_Textbooks.html
|
|
79 |
|
|
80 |
MIPS
|
|
81 |
http://courses.missouristate.edu/kenvollmar/mars/
|
|
82 |
|
|
83 |
PEG
|
|
84 |
|
|
85 |
https://github.com/taocpp/PEGTL
|
|
86 |
|
|
87 |
|
|
88 |
Parser
|
|
89 |
https://www.reddit.com/r/programming/comments/615hoz/how_to_write_a_recursive_descent_parser/
|
|
90 |
https://www.reddit.com/r/ProgrammingLanguages/comments/60gmgc/writing_a_recursive_descent_expression_parser/
|
|
91 |
http://www.craftinginterpreters.com/parsing-expressions.html
|
|
92 |
|
|
93 |
|
|
94 |
small languages
|
|
95 |
https://github.com/Michael2109/cobalt
|
|
96 |
http://www.red-lang.org/p/about.html
|
|
97 |
http://craftinginterpreters.com/contents.html
|
|
98 |
https://michaelhaywoodblog.wordpress.com
|
|
99 |
https://ruslanspivak.com/lsbasi-part1/
|
|
100 |
http://selfie.cs.uni-salzburg.at
|
550
|
101 |
https://academy.realm.io/posts/tryswift-samuel-giddins-building-tiny-compiler-swift-ios/
|
|
102 |
https://legacy.gitbook.com/book/luxlang/the-lux-programming-language/details
|
|
103 |
https://github.com/rhysd/gocaml
|
|
104 |
https://github.com/aalhour/awesome-compilers#educational-and-toy-projects
|
|
105 |
https://rsms.me/hue-intro
|
495
|
106 |
|
|
107 |
|
|
108 |
automata
|
|
109 |
https://www7.in.tum.de/um/courses/auto/ws1314/script/autonotes.pdf
|
|
110 |
|
|
111 |
Reges helpers
|
|
112 |
https://regex101.com
|
|
113 |
http://www.regular-expressions.info/tutorial.html
|
|
114 |
|
|
115 |
|
|
116 |
Regex performance benchmark
|
|
117 |
https://rust-leipzig.github.io/regex/2017/03/28/comparison-of-regex-engines/
|
|
118 |
https://github.com/k-takata/Onigmo
|
|
119 |
|
|
120 |
Sulzmann
|
|
121 |
https://github.com/pippijn/dreml/
|
|
122 |
|
|
123 |
|
|
124 |
Scala parser
|
|
125 |
http://enear.github.io/2016/03/31/parser-combinators/
|
|
126 |
|
|
127 |
|
|
128 |
ANTLR megatutorial
|
|
129 |
https://tomassetti.me/antlr-mega-tutorial/
|
|
130 |
|
|
131 |
From regex to LLVM
|
|
132 |
https://www.youtube.com/watch?v=Ukqb6nMjFyk
|
|
133 |
|
|
134 |
|
|
135 |
|
|
136 |
|
|
137 |
Static code analysis
|
550
|
138 |
https://medium.com/@Coder_HarryLee/videos-about-static-code-analysis-7654b40f9a3b
|
|
139 |
|
|
140 |
|
|
141 |
Brainfuck compiler
|
|
142 |
https://github.com/PurpleMyst/bf_compiler
|
|
143 |
https://www.reddit.com/r/programming/comments/8371tk/a_brainfuck_to_llvm_ir_compiler_written_in_python/
|
|
144 |
http://www.wilfred.me.uk/blog/2015/02/21/my-first-llvm-compiler/
|
|
145 |
|
|
146 |
===============================
|
|
147 |
A simple recursive regular expression matcher written in Scala.
|
|
148 |
https://github.com/marconilanna/RegexMatcher
|
|
149 |
|
|
150 |
===============================
|
|
151 |
A neat little tool to build presentations using the Scala REPL
|
|
152 |
https://github.com/marconilanna/REPLesent
|
|
153 |
|
|
154 |
|
|
155 |
======================
|
|
156 |
Minimal Static Single Assignment Form
|
|
157 |
Max Wagner and Denis Lohner
|
|
158 |
|
|
159 |
This formalization is an extension to "Verified Construction of Static Single
|
|
160 |
Assignment Form". In their work, the authors have shown that Braun et al.'s
|
|
161 |
static single assignment (SSA) construction algorithm produces minimal SSA form
|
|
162 |
for input programs with a reducible control flow graph (CFG). However Braun et
|
|
163 |
al. also proposed an extension to their algorithm that they claim produces
|
|
164 |
minimal SSA form even for irreducible CFGs.
|
|
165 |
In this formalization we support that claim by giving a mechanized proof.
|
|
166 |
|
|
167 |
As the extension of Braun et al.'s algorithm aims for removing so-called
|
|
168 |
redundant strongly connected components of phi functions, we show that this
|
|
169 |
suffices to guarantee minimality according to Cytron et al..
|
|
170 |
|
|
171 |
https://www.isa-afp.org/entries/Minimal_SSA.shtml
|
|
172 |
|
|
173 |
|
553
|
174 |
=========================
|
|
175 |
How Clang compiles a function
|
|
176 |
https://blog.regehr.org/archives/1605 |