Skip to content

Commit 2f1a48b

Browse files
Added a learning resources page, and some links to the main page
1 parent 0862c71 commit 2f1a48b

15 files changed

+346
-66
lines changed

_sources/index.rst.txt

+21-5
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,19 @@ The language will be statically typed to start with because this allows us to in
2828
optimization pipeline. Dyamically typed languages have their own interesting engineering problems.
2929
We will eventually look at gradual typing and dynamic typing.
3030

31+
Implementation and Discussions
32+
==============================
33+
34+
* The `EeZee programming language implementation <https://github.com/CompilerProgramming/ez-lang>`_ will serve as the playground for exploring various compilation
35+
techniques.
36+
* This site is `maintained in github <https://github.com/CompilerProgramming/compilerprogramming.github.io/tree/dev>`_ too, and is generated using Sphinx.
37+
* We have a `Discussion Forum <https://github.com/orgs/CompilerProgramming/discussions>`_.
38+
3139
Preliminaries
3240
=============
3341

3442
.. toctree::
35-
:maxdepth: 2
43+
:maxdepth: 1
3644
:caption: Preliminaries
3745

3846
prelim-impl-lang
@@ -41,7 +49,7 @@ Basic Front-End techniques
4149
==========================
4250

4351
.. toctree::
44-
:maxdepth: 2
52+
:maxdepth: 1
4553
:caption: Parsing Techniques
4654

4755
lexical-analysis
@@ -61,9 +69,9 @@ Basic Optimization techniques
6169
=============================
6270

6371
* Dominators and Control Flow Graph
72+
* Static Single Assignment
6473
* Data Flow Analysis, Type Lattices, Abstract Interpretation
6574
* Peephole Optimizations
66-
* Static Single Assignment
6775
* Sea of Nodes Representation
6876
* Code generation and Register Allocation
6977

@@ -84,9 +92,14 @@ Advanced Front-end techniques
8492
* Generics
8593

8694

87-
Some Useful Projects
88-
====================
95+
Some Useful Learning Resources
96+
==============================
8997

98+
.. toctree::
99+
:maxdepth: 2
100+
:caption: Learning Resources
101+
102+
learning-resources
90103

91104
Book Reviews
92105
============
@@ -97,4 +110,7 @@ Book Reviews
97110

98111
compiler-books
99112

113+
Compiler Jobs
114+
=============
100115

116+
* A listing of `compiler, language and runtime teams <https://github.com/mgaudet/CompilerJobs>`_ for people looking for compiler jobs.

_sources/learning-resources.rst.txt

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
==================
2+
Learning Resources
3+
==================
4+
5+
Courses
6+
=======
7+
8+
CS 6120: Advanced Compilers: The Self-Guided Online Course
9+
----------------------------------------------------------
10+
11+
* `CS 6120 <https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided/>`_
12+
* `BRIL <https://capra.cs.cornell.edu/bril/>`_
13+
* `github repo <https://github.com/sampsyo/bril>`_
14+
15+
CS 618: Program Analysis
16+
------------------------
17+
* `CS 618 Video Lectures <https://www.youtube.com/@cs618programanalysis4/videos>`_
18+
* `An Introduction to Program Analysis <https://www.cse.iitb.ac.in/~uday/fp-2019-pune/>`_
19+
20+
Static Program Analysis
21+
-----------------------
22+
* `Static Program Analysis <https://cs.au.dk/~amoeller/spa/>`_
23+
* `TIP <https://github.com/cs-au-dk/TIP/>`_
24+
* `Static Program Analysis Part 1 - PLISS 2019 <https://youtu.be/Lr4cMmaJHrg>`_
25+
* `Static Program Analysis Part 2 - PLISS 2019 <https://youtu.be/6QQSIIvH-F0>`_
26+
27+
Papers And implementations
28+
==========================
29+
30+
Sea of Nodes
31+
------------
32+
* `From Quads to Graphs: An Intermediate Representation's Journey <http://softlib.rice.edu/pub/CRPC-TRs/reports/CRPC-TR93366-S.pdf>`_
33+
* `Combining Analyses, Combining Optimizations <https://dl.acm.org/doi/pdf/10.1145/201059.201061>`_
34+
* `A Simple Graph-Based Intermediate Representation <https://www.oracle.com/technetwork/java/javase/tech/c2-ir95-150110.pdf>`_
35+
* `Global Code Motion Global Value Numbering <https://courses.cs.washington.edu/courses/cse501/06wi/reading/click-pldi95.pdf>`_
36+
* `Simple Sea of Nodes Implementation <https://github.com/SeaOfNodes>`_
37+
38+
JikesRVM
39+
--------
40+
* `Dynamic Optimization through the use of Automatic Runtime Specialization <https://suif.stanford.edu/~jwhaley/papers/mastersthesis.pdf>`_
41+
* `Implementation in JikesRVM <https://github.com/JikesRVM/JikesRVM/tree/master/rvm/src/org/jikesrvm/compilers/opt/bc2ir>`_
42+
43+
Others
44+
======
45+
46+
* `Automatic Program Optimization, by Ron Cytron <https://pages.cs.wisc.edu/~fischer/cs701.f14/tutorial.pdf>`_

abstract-syntax-tree.html

+11-10
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
<link rel="index" title="Index" href="genindex.html" />
1717
<link rel="search" title="Search" href="search.html" />
1818
<link rel="next" title="Type Systems" href="type-systems.html" />
19-
<link rel="prev" title="Parsing" href="parsing.html" />
19+
<link rel="prev" title="Syntax Analysis" href="syntax-analysis.html" />
2020
</head><body>
2121
<div class="header-wrapper" role="banner">
2222
<div class="header">
2323
<div class="headertitle"><a
2424
href="index.html">Compiler Programming</a></div>
2525
<div class="rel" role="navigation" aria-label="related navigation">
26-
<a href="parsing.html" title="Parsing"
26+
<a href="syntax-analysis.html" title="Syntax Analysis"
2727
accesskey="P">previous</a> |
2828
<a href="type-systems.html" title="Type Systems"
2929
accesskey="N">next</a> |
@@ -65,16 +65,17 @@ <h3>Table of Contents</h3>
6565
<ul>
6666
<li class="toctree-l1"><a class="reference internal" href="prelim-impl-lang.html">Implementation Language</a></li>
6767
</ul>
68-
<p class="caption" role="heading"><span class="caption-text">Basic Front-end Techniques</span></p>
68+
<p class="caption" role="heading"><span class="caption-text">Parsing Techniques</span></p>
6969
<ul class="current">
7070
<li class="toctree-l1"><a class="reference internal" href="lexical-analysis.html">Lexical Analysis</a></li>
71-
<li class="toctree-l1"><a class="reference internal" href="lexical-analysis.html#example-implementation-in-ez-language">Example Implementation in EZ Language</a></li>
72-
<li class="toctree-l1"><a class="reference internal" href="parsing.html">Parsing</a></li>
73-
<li class="toctree-l1 current"><a class="current reference internal" href="#">Abstract Syntax Tree</a><ul>
74-
<li class="toctree-l2"><a class="reference internal" href="#example-implementation">Example Implementation</a></li>
75-
</ul>
76-
</li>
71+
<li class="toctree-l1"><a class="reference internal" href="syntax-analysis.html">Syntax Analysis</a></li>
72+
<li class="toctree-l1 current"><a class="current reference internal" href="#">Abstract Syntax Tree</a></li>
7773
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a></li>
74+
<li class="toctree-l1"><a class="reference internal" href="semantic-analysis.html">Semantic Analysis</a></li>
75+
</ul>
76+
<p class="caption" role="heading"><span class="caption-text">Learning Resources</span></p>
77+
<ul>
78+
<li class="toctree-l1"><a class="reference internal" href="learning-resources.html">Learning Resources</a></li>
7879
</ul>
7980
<p class="caption" role="heading"><span class="caption-text">Reviews</span></p>
8081
<ul>
@@ -98,7 +99,7 @@ <h3 style="margin-top: 1.5em;">Search</h3>
9899
<div class="footer">
99100
<div class="left">
100101
<div role="navigation" aria-label="related navigaton">
101-
<a href="parsing.html" title="Parsing"
102+
<a href="syntax-analysis.html" title="Syntax Analysis"
102103
>previous</a> |
103104
<a href="type-systems.html" title="Type Systems"
104105
>next</a> |

compiler-books.html

+7-3
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
<script src="_static/doctools.js"></script>
1616
<link rel="index" title="Index" href="genindex.html" />
1717
<link rel="search" title="Search" href="search.html" />
18-
<link rel="prev" title="Semantic Analysis" href="semantic-analysis.html" />
18+
<link rel="prev" title="Learning Resources" href="learning-resources.html" />
1919
</head><body>
2020
<div class="header-wrapper" role="banner">
2121
<div class="header">
2222
<div class="headertitle"><a
2323
href="index.html">Compiler Programming</a></div>
2424
<div class="rel" role="navigation" aria-label="related navigation">
25-
<a href="semantic-analysis.html" title="Semantic Analysis"
25+
<a href="learning-resources.html" title="Learning Resources"
2626
accesskey="P">previous</a> |
2727
<a href="genindex.html" title="General Index"
2828
accesskey="I">index</a>
@@ -142,6 +142,10 @@ <h3>Table of Contents</h3>
142142
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a></li>
143143
<li class="toctree-l1"><a class="reference internal" href="semantic-analysis.html">Semantic Analysis</a></li>
144144
</ul>
145+
<p class="caption" role="heading"><span class="caption-text">Learning Resources</span></p>
146+
<ul>
147+
<li class="toctree-l1"><a class="reference internal" href="learning-resources.html">Learning Resources</a></li>
148+
</ul>
145149
<p class="caption" role="heading"><span class="caption-text">Reviews</span></p>
146150
<ul class="current">
147151
<li class="toctree-l1 current"><a class="current reference internal" href="#">Compiler Books</a><ul>
@@ -175,7 +179,7 @@ <h3 style="margin-top: 1.5em;">Search</h3>
175179
<div class="footer">
176180
<div class="left">
177181
<div role="navigation" aria-label="related navigaton">
178-
<a href="semantic-analysis.html" title="Semantic Analysis"
182+
<a href="learning-resources.html" title="Learning Resources"
179183
>previous</a> |
180184
<a href="genindex.html" title="General Index"
181185
>index</a>

genindex.html

+4
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ <h3>Table of Contents</h3>
6262
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a></li>
6363
<li class="toctree-l1"><a class="reference internal" href="semantic-analysis.html">Semantic Analysis</a></li>
6464
</ul>
65+
<p class="caption" role="heading"><span class="caption-text">Learning Resources</span></p>
66+
<ul>
67+
<li class="toctree-l1"><a class="reference internal" href="learning-resources.html">Learning Resources</a></li>
68+
</ul>
6569
<p class="caption" role="heading"><span class="caption-text">Reviews</span></p>
6670
<ul>
6771
<li class="toctree-l1"><a class="reference internal" href="compiler-books.html">Compiler Books</a></li>

index.html

+37-20
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ <h1>Welcome to Compiler Programming!<a class="headerlink" href="#welcome-to-comp
6060
<p>The language will be statically typed to start with because this allows us to investigate the traditional compiler
6161
optimization pipeline. Dyamically typed languages have their own interesting engineering problems.
6262
We will eventually look at gradual typing and dynamic typing.</p>
63+
<section id="implementation-and-discussions">
64+
<h2>Implementation and Discussions<a class="headerlink" href="#implementation-and-discussions" title="Permalink to this headline"></a></h2>
65+
<ul class="simple">
66+
<li><p>The <a class="reference external" href="https://github.com/CompilerProgramming/ez-lang">EeZee programming language implementation</a> will serve as the playground for exploring various compilation
67+
techniques.</p></li>
68+
<li><p>This site is <a class="reference external" href="https://github.com/CompilerProgramming/compilerprogramming.github.io/tree/dev">maintained in github</a> too, and is generated using Sphinx.</p></li>
69+
<li><p>We have a <a class="reference external" href="https://github.com/orgs/CompilerProgramming/discussions">Discussion Forum</a>.</p></li>
70+
</ul>
71+
</section>
6372
<section id="preliminaries">
6473
<h2>Preliminaries<a class="headerlink" href="#preliminaries" title="Permalink to this headline"></a></h2>
6574
<div class="toctree-wrapper compound">
@@ -74,23 +83,10 @@ <h2>Basic Front-End techniques<a class="headerlink" href="#basic-front-end-techn
7483
<div class="toctree-wrapper compound">
7584
<p class="caption" role="heading"><span class="caption-text">Parsing Techniques</span></p>
7685
<ul>
77-
<li class="toctree-l1"><a class="reference internal" href="lexical-analysis.html">Lexical Analysis</a><ul>
78-
<li class="toctree-l2"><a class="reference internal" href="lexical-analysis.html#considerations">Considerations</a></li>
79-
<li class="toctree-l2"><a class="reference internal" href="lexical-analysis.html#example-hand-coded-implementation">Example Hand-Coded Implementation</a></li>
80-
</ul>
81-
</li>
82-
<li class="toctree-l1"><a class="reference internal" href="syntax-analysis.html">Syntax Analysis</a><ul>
83-
<li class="toctree-l2"><a class="reference internal" href="syntax-analysis.html#example-implementation">Example Implementation</a></li>
84-
</ul>
85-
</li>
86-
<li class="toctree-l1"><a class="reference internal" href="abstract-syntax-tree.html">Abstract Syntax Tree</a><ul>
87-
<li class="toctree-l2"><a class="reference internal" href="abstract-syntax-tree.html#example-implementation">Example Implementation</a></li>
88-
</ul>
89-
</li>
90-
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a><ul>
91-
<li class="toctree-l2"><a class="reference internal" href="type-systems.html#example-implementation">Example Implementation</a></li>
92-
</ul>
93-
</li>
86+
<li class="toctree-l1"><a class="reference internal" href="lexical-analysis.html">Lexical Analysis</a></li>
87+
<li class="toctree-l1"><a class="reference internal" href="syntax-analysis.html">Syntax Analysis</a></li>
88+
<li class="toctree-l1"><a class="reference internal" href="abstract-syntax-tree.html">Abstract Syntax Tree</a></li>
89+
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a></li>
9490
<li class="toctree-l1"><a class="reference internal" href="semantic-analysis.html">Semantic Analysis</a></li>
9591
</ul>
9692
</div>
@@ -107,9 +103,9 @@ <h2>Basic Back-end techniques<a class="headerlink" href="#basic-back-end-techniq
107103
<h2>Basic Optimization techniques<a class="headerlink" href="#basic-optimization-techniques" title="Permalink to this headline"></a></h2>
108104
<ul class="simple">
109105
<li><p>Dominators and Control Flow Graph</p></li>
106+
<li><p>Static Single Assignment</p></li>
110107
<li><p>Data Flow Analysis, Type Lattices, Abstract Interpretation</p></li>
111108
<li><p>Peephole Optimizations</p></li>
112-
<li><p>Static Single Assignment</p></li>
113109
<li><p>Sea of Nodes Representation</p></li>
114110
<li><p>Code generation and Register Allocation</p></li>
115111
</ul>
@@ -132,8 +128,19 @@ <h2>Advanced Front-end techniques<a class="headerlink" href="#advanced-front-end
132128
<li><p>Generics</p></li>
133129
</ul>
134130
</section>
135-
<section id="some-useful-projects">
136-
<h2>Some Useful Projects<a class="headerlink" href="#some-useful-projects" title="Permalink to this headline"></a></h2>
131+
<section id="some-useful-learning-resources">
132+
<h2>Some Useful Learning Resources<a class="headerlink" href="#some-useful-learning-resources" title="Permalink to this headline"></a></h2>
133+
<div class="toctree-wrapper compound">
134+
<p class="caption" role="heading"><span class="caption-text">Learning Resources</span></p>
135+
<ul>
136+
<li class="toctree-l1"><a class="reference internal" href="learning-resources.html">Learning Resources</a><ul>
137+
<li class="toctree-l2"><a class="reference internal" href="learning-resources.html#courses">Courses</a></li>
138+
<li class="toctree-l2"><a class="reference internal" href="learning-resources.html#papers-and-implementations">Papers And implementations</a></li>
139+
<li class="toctree-l2"><a class="reference internal" href="learning-resources.html#others">Others</a></li>
140+
</ul>
141+
</li>
142+
</ul>
143+
</div>
137144
</section>
138145
<section id="book-reviews">
139146
<h2>Book Reviews<a class="headerlink" href="#book-reviews" title="Permalink to this headline"></a></h2>
@@ -155,6 +162,12 @@ <h2>Book Reviews<a class="headerlink" href="#book-reviews" title="Permalink to t
155162
</ul>
156163
</div>
157164
</section>
165+
<section id="compiler-jobs">
166+
<h2>Compiler Jobs<a class="headerlink" href="#compiler-jobs" title="Permalink to this headline"></a></h2>
167+
<ul class="simple">
168+
<li><p>A listing of <a class="reference external" href="https://github.com/mgaudet/CompilerJobs">compiler, language and runtime teams</a> for people looking for compiler jobs.</p></li>
169+
</ul>
170+
</section>
158171
</section>
159172

160173

@@ -178,6 +191,10 @@ <h3>Table of Contents</h3>
178191
<li class="toctree-l1"><a class="reference internal" href="type-systems.html">Type Systems</a></li>
179192
<li class="toctree-l1"><a class="reference internal" href="semantic-analysis.html">Semantic Analysis</a></li>
180193
</ul>
194+
<p class="caption" role="heading"><span class="caption-text">Learning Resources</span></p>
195+
<ul>
196+
<li class="toctree-l1"><a class="reference internal" href="learning-resources.html">Learning Resources</a></li>
197+
</ul>
181198
<p class="caption" role="heading"><span class="caption-text">Reviews</span></p>
182199
<ul>
183200
<li class="toctree-l1"><a class="reference internal" href="compiler-books.html">Compiler Books</a></li>

0 commit comments

Comments
 (0)