-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathindex.html
221 lines (221 loc) · 16.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<!DOCTYPE html>
<!-- Academia (pandoc HTML5 template)
designer: soimort
last updated: 2016-05-07 -->
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<meta name="author" content="Mort Yao">
<meta name="dcterms.date" content="2016-08-16">
<title>Programming Language Theory (Temporary Page)</title>
<link rel="canonical" href="https://wiki.soimort.org/plt">
<style type="text/css">code { white-space: pre; }</style>
<link rel="stylesheet" href="//cdn.soimort.org/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="//cdn.soimort.org/mathsvg/latest/mathsvg.min.css">
<link rel="stylesheet" href="//cdn.soimort.org/fonts/latest/Latin-Modern-Roman.css">
<link rel="stylesheet" href="//cdn.soimort.org/fonts/latest/Latin-Modern-Mono.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="/__/css/style.css">
<link rel="stylesheet" href="/__/css/pygments.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
<script src="//cdn.soimort.org/jk/20160504/jk.min.js"></script>
<script src="//cdn.soimort.org/mathsvg/latest/mathsvg.min.js"></script>
<script src="/__/js/jk-minibar.js"></script>
<link rel="icon" href="/favicon.png">
<link rel="apple-touch-icon" href="/favicon.png">
</head>
<body>
<main><article>
<header>
<h1 class="title">Programming Language Theory (Temporary Page)</h1>
<address class="author">Mort Yao</address>
<!-- h3 class="date">2016-08-16</h3 -->
</header>
<nav id="TOC">
<ul>
<li><a href="#functional-programming"><span class="toc-section-number">1</span> Functional Programming</a></li>
<li><a href="#programming-paradigms"><span class="toc-section-number">2</span> Programming Paradigms</a></li>
<li><a href="#programming-languages"><span class="toc-section-number">3</span> Programming Languages</a></li>
<li><a href="#abstract-algebra"><span class="toc-section-number">4</span> Abstract Algebra</a></li>
<li><a href="#mathematical-logic-and-foundations-of-mathematics"><span class="toc-section-number">5</span> Mathematical Logic and Foundations of Mathematics</a></li>
<li><a href="#lambda-calculus"><span class="toc-section-number">6</span> Lambda Calculus</a></li>
<li><a href="#type-theory"><span class="toc-section-number">7</span> Type Theory</a></li>
<li><a href="#compiler-construction"><span class="toc-section-number">8</span> Compiler Construction</a></li>
</ul>
</nav>
<div id="content">
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Programming_language_theory">Programming language theory</a>]</p>
<section id="functional-programming" class="level1">
<h1><span class="header-section-number">1</span> Functional Programming</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Functional_programming">Functional programming</a>]</p>
<p>Books:</p>
<ul>
<li><em>How to Design Programs</em> (<strong>HtDP</strong>) (by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi) [<a href="http://htdp.org/">Homepage</a>] [<a href="http://htdp.org/2003-09-26/Book/">HTML</a>] [<a href="http://www.ccs.neu.edu/home/matthias/HtDP2e/">HTML</a> (2nd Ed.)]</li>
<li><em>Structure and Interpretation of Computer Programs</em> (<strong>SICP</strong>, <strong>“Wizard Book”</strong>) (by Gerald Jay Sussman, Hal Abelson, Julie Sussman) [<a href="http://mitpress.mit.edu/sicp/">Homepage</a>] [<a href="http://mitpress.mit.edu/sicp/full-text/book/book.html">HTML</a>] [<a href="https://github.com/sarabander/sicp-pdf/blob/master/sicp.pdf?raw=true">PDF</a> (Unofficial)]</li>
<li><em>Introduction to Functional Programming</em> (by Richard Bird, Philip Wadler) [<a href="http://www.nlda-tw.nl/janmartin/vakken/TFIT/Extra%20materiaal/Bird_Wadler.%20Introduction%20to%20Functional%20Programming.1ed.pdf">PDF</a>]</li>
<li><em>Pearls of Functional Algorithm Design</em> (by Richard Bird)</li>
<li><em>Purely Functional Data Structures</em> (by Chris Okasaki) [<a href="http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf">PDF</a>]
<ul>
<li>StackExchange: <em>What’s new in purely functional data structures since Okasaki?</em> [<a href="http://cstheory.stackexchange.com/questions/1539/whats-new-in-purely-functional-data-structures-since-okasaki">Link</a>]</li>
</ul></li>
</ul>
</section>
<section id="programming-paradigms" class="level1">
<h1><span class="header-section-number">2</span> Programming Paradigms</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Programming_paradigm">Programming paradigm</a>]</p>
<p>Books:</p>
<ul>
<li><em>Concepts, Techniques, and Models of Computer Programming</em> (<strong>CTM</strong>, <strong>“Oz Book”</strong>) (by Peter Van Roy, Seif Haridi) [<a href="http://www.info.ucl.ac.be/~pvr/book.html">Homepage</a>]</li>
</ul>
</section>
<section id="programming-languages" class="level1">
<h1><span class="header-section-number">3</span> Programming Languages</h1>
<p>Books:</p>
<ul>
<li><em>Essentials of Programming Languages</em> (<strong>EOPL</strong>) (by Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes) [<a href="http://www.eopl3.com/">Homepage</a>] [<a href="https://github.com/mwand/eopl3">Code</a>]</li>
<li><em>Programming Languages: Application and Interpretation</em> (<strong>PLAI</strong>) (by Shriram Krishnamurthi) [<a href="http://cs.brown.edu/~sk/Publications/Books/ProgLangs/">Homepage</a>] [<a href="http://cs.brown.edu/courses/cs173/2012/book/">HTML</a>] [<a href="http://www.cs.brown.edu/courses/cs173/2012/book/book.pdf">PDF</a>]</li>
</ul>
</section>
<section id="abstract-algebra" class="level1">
<h1><span class="header-section-number">4</span> Abstract Algebra</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Abstract_algebra">Abstract algebra</a>]</p>
<p>Online resources:</p>
<ul>
<li>Wikibooks: <em>Abstract Algebra</em> [<a href="https://en.wikibooks.org/wiki/Abstract_Algebra">HTML</a>]</li>
</ul>
<p>Books:</p>
<ul>
<li><em>A Book of Abstract Algebra</em> (by Charles C. Pinter)</li>
</ul>
<section id="category-theory" class="level2">
<h2><span class="header-section-number">4.1</span> Category Theory</h2>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Category_theory">Category theory</a>]</p>
<p>Books:</p>
<ul>
<li><em>Category Theory for Computing Science</em> (<strong>CTCS</strong>) (by Michael Barr, Charles Wells) [<a href="http://www.tac.mta.ca/tac/reprints/articles/22/tr22abs.html">Homepage</a>] [<a href="http://www.tac.mta.ca/tac/reprints/articles/22/tr22.pdf">PDF</a>]</li>
<li><em>Basic Category Theory for Computer Scientists</em> (by Benjamin C. Pierce)</li>
<li><em>Category Theory for Scientists</em> (by David Spivak) [<a href="http://math.mit.edu/~dspivak/CT4S.pdf">PDF</a>] [<a href="http://math.mit.edu/~dspivak/teaching/sp13/">Course Homepage</a> (MIT 18-S996)]</li>
<li><em>Conceptual Mathematics: A First Introduction to Categories</em> (by F. William Lawere, Stephen H. Schanuel)</li>
<li><em>Categories for the Working Mathematician</em> (by Saunders Mac Lane)</li>
</ul>
</section>
</section>
<section id="mathematical-logic-and-foundations-of-mathematics" class="level1">
<h1><span class="header-section-number">5</span> Mathematical Logic and Foundations of Mathematics</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Mathematical_logic">Mathematical logic</a>] [Wikipedia: <a href="https://en.wikipedia.org/wiki/Foundations_of_mathematics">Foundations of mathematics</a>]</p>
<p>Online resources:</p>
<ul>
<li>Wikibooks: <em>Logic for Computer Scientists</em> [<a href="https://en.wikibooks.org/wiki/Logic_for_Computer_Scientists">HTML</a>]</li>
</ul>
<p>Books:</p>
<ul>
<li><em>The Haskell Road to Logic, Maths and Programming</em> (<strong>HR</strong>) (by Kees Doets, Jan van Eijck) [<a href="http://homepages.cwi.nl/~jve/HR/">Homepage</a>]</li>
<li><em>Introduction to Logic and to the Methodology of Deductive Sciences</em> (by Alfred Tarski)</li>
<li><em>Mathematical Logic</em> (by Stephen Cole Kleene)</li>
<li><em>Introduction to Metamathematics</em> (by Stephen Cole Kleene)</li>
<li><em>The Foundations of Mathematics</em> (by Kenneth Kunen)</li>
</ul>
</section>
<section id="lambda-calculus" class="level1">
<h1><span class="header-section-number">6</span> Lambda Calculus</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Lambda_calculus">Lambda calculus</a>]</p>
<p>Books:</p>
<ul>
<li><em>An Introduction to Functional Programming Through Lambda Calculus</em> (by Greg Michaelson) [<a href="http://www.cs.rochester.edu/~brown/173/readings/LCBook.pdf">PDF</a>]</li>
<li><em>An Introduction to Lambda Calculi for Computer Scientists</em> (by Chris Hankin)</li>
<li><em>Introduction to Lambda Calculus</em> (by Henk Barendregt, Erik Barendsen) [<a href="http://www.cse.chalmers.se/research/group/logic/TypesSS05/Extra/geuvers.pdf">PDF</a>]</li>
<li><em>The Lambda Calculus, Its Syntax and Semantics</em> (by Henk Barendregt)</li>
<li><em>Lambda Calculus with Types</em> (by Henk Barendregt, Wil Dekkers, Richard Statman)</li>
</ul>
</section>
<section id="type-theory" class="level1">
<h1><span class="header-section-number">7</span> Type Theory</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Type_theory">Type theory</a>]</p>
<p>Online resources:</p>
<ul>
<li><em>Software Foundations</em> (<strong>SF</strong>) (by Benjamin C. Pierce, etc.) [<a href="http://www.cis.upenn.edu/~bcpierce/sf/">HTML</a>]</li>
</ul>
<p>Books:</p>
<ul>
<li><em>Types and Programming Languages</em> (<strong>TAPL</strong>) (by Benjamin C. Pierce) [<a href="http://www.cis.upenn.edu/~bcpierce/tapl/">Homepage</a>]</li>
<li><em>Advanced Topics in Types and Programming Languages</em> (<strong>ATTAPL</strong>) (by Benjamin C. Pierce) [<a href="http://www.cis.upenn.edu/~bcpierce/attapl/">Homepage</a>]</li>
<li><em>Practical Foundations for Programming Languages</em> (<strong>PFPL</strong>) (by Robert Harper) [<a href="http://www.cs.cmu.edu/~rwh/plbook/book.pdf">PDF</a> (Online Preview)] [<a href="http://www.cs.cmu.edu/~rwh/plbook/2nded.pdf">PDF</a> (Working Draft)] [<a href="http://www.cs.cmu.edu/~rwh/courses/typesys/">Course Homepage</a> (CMU 15-814)] [<a href="http://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%2207756bb0-b872-4a4a-95b1-b77ad206dab3%22">Course Videos</a> (CMU 15-819)]</li>
<li><p><em>Type Theory and Functional Programming</em> (<strong>TTFP</strong>) (by Simon Thompson) [<a href="http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/">Homepage</a>] [<a href="http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf">PDF</a>]</p></li>
<li><em>Proofs and Types</em> (<strong>ProT</strong>) (by Jean-Yves Girard, Yves Lafont, Paul Taylor) [<a href="http://www.paultaylor.eu/stable/Proofs+Types.html">Homepage</a>] [<a href="http://www.paultaylor.eu/stable/prot.pdf">PDF</a>]</li>
<li><em>Implementing Mathematics with The Nuprl Proof Development System</em> (<strong>“NuPRL Book”</strong>) (by Robert L. Constable, etc.) [<a href="http://www.nuprl.org/book/">Homepage</a>] [<a href="http://www.cs.cornell.edu/info/projects/nuprl/book/doc.html">HTML</a>] [<a href="ftp://ftp.cs.cornell.edu/pub/nuprl/doc/book.ps.gz">PS</a>]</li>
<li><em>Interactive Theorem Proving and Program Development: Coq’Art: The Calculus of Inductive Constructions</em> (<strong>Coq’Art</strong>) (by Yves Bertot, Pierre Castéran) [<a href="http://www.labri.fr/perso/casteran/CoqArt/index.html">Homepage</a>]</li>
<li><em>Certified Programming with Dependent Types</em> (<strong>CPDT</strong>) (by Adam Chlipala) [<a href="http://adam.chlipala.net/cpdt/">Homepage</a>]</li>
<li><p><em>Homotopy Type Theory</em> (<strong>HoTT</strong>) (by Univalent Foundations of Mathematics) [<a href="http://homotopytypetheory.org/book/">Homepage</a>] [<a href="https://github.com/HoTT/book">GitHub</a>]</p></li>
</ul>
</section>
<section id="compiler-construction" class="level1">
<h1><span class="header-section-number">8</span> Compiler Construction</h1>
<p>[Wikipedia: <a href="https://en.wikipedia.org/wiki/Compiler_construction">Compiler construction</a>]</p>
<p>Books:</p>
<ul>
<li><em>Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages</em> (by Terence Parr)</li>
<li><em>Lisp in Small Pieces</em> (<strong>L.i.S.P</strong>) (by Christian Queinnec) [<a href="http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html">Homepage</a>]</li>
<li><em>The Implementation of Functional Programming Languages</em> (by Simon Peyton Jones) [<a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/">Homepage</a>] [<a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/slpj-book-1987.tar.gz">PDF</a>]</li>
<li><em>Implementing Functional Languages: A Tutorial</em> (by Simon Peyton Jones, David Lester) [<a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/">Homepage</a>] [<a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/student.pdf.gz">PDF</a>]</li>
<li><em>Programming Language Pragmatics</em> (by Michael L. Scott) [<a href="http://www.cs.rochester.edu/~scott/pragmatics/">Homepage</a>]</li>
<li><em>Compilers: Principles, Techniques, and Tools</em> (<strong>“Dragon Book”</strong>) (by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman) [<a href="http://dragonbook.stanford.edu/">Homepage</a>]</li>
<li><em>Engineering a Compiler</em> (by Keith Cooper, Linda Torczon)</li>
<li><em>Modern Compiler Implementation in ML</em> (<strong>MCIiML</strong>, <strong>“Tiger Book”</strong>) (by Andrew W. Appel) [<a href="http://www.cs.princeton.edu/~appel/modern/ml/">Homepage</a>]</li>
<li><em>Compiling with Continuations</em> (<strong>CwC</strong>) (by Andrew W. Appel)</li>
<li><em>Program Logics for Certified Compilers</em> (<strong>PLCC</strong>) (by Andrew W. Appel)</li>
</ul>
<hr />
<p><strong>Complementary Lists</strong></p>
<ul>
<li><a href="https://github.com/steshaw/plt-study" class="uri">https://github.com/steshaw/plt-study</a> - A path to programming language theory enlightenment (by Steven Shaw)</li>
<li><a href="http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml" class="uri">http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml</a> - Great works in programming languages (by Benjamin C. Pierce)</li>
<li><a href="http://www.cs.cmu.edu/~crary/819-f09/" class="uri">http://www.cs.cmu.edu/~crary/819-f09/</a> - Classic papers in programming languages and logic (by Karl Crary)</li>
<li><a href="http://alexott.net/en/fp/books/" class="uri">http://alexott.net/en/fp/books/</a> - Functional programming books overview (by Alex Ott)</li>
<li><a href="http://www.cs.uu.nl/wiki/Techno/ProgrammingLanguageTheoryTextsOnline" class="uri">http://www.cs.uu.nl/wiki/Techno/ProgrammingLanguageTheoryTextsOnline</a> - Programming language theory texts online (by Frank Atanassow)</li>
</ul>
</section>
</div>
<footer>
<!-- TO BE MODIFIED BY NEED -->
<a title="Keyboard shortcut: q"
href="..">
<i class="fa fa-angle-double-left" aria-hidden="true"></i>
<code>Parent</code>
</a> |
<a class="raw" accesskey="r"
title="Keyboard shortcut: R"
href="https://wiki.soimort.org/plt/src.md">
<i class="fa fa-code" aria-hidden="true"></i>
<code>Raw</code>
</a> |
<a class="history" accesskey="h"
title="Keyboard shortcut: H"
href="https://github.com/soimort/wiki/commits/gh-pages/plt/src.md">
<i class="fa fa-history" aria-hidden="true"></i>
<code>History</code>
</a> |
<a class="edit" accesskey="e"
title="Keyboard shortcut: E"
href="https://github.com/soimort/wiki/edit/gh-pages/plt/src.md">
<i class="fa fa-code-fork" aria-hidden="true"></i>
<code>Edit</code>
</a> |
<a title="Keyboard shortcut: p"
href="javascript:window.print();">
<i class="fa fa-print" aria-hidden="true"></i>
<code>Print</code>
</a> |
<a title="Keyboard shortcut: ."
href="https://wiki.soimort.org/plt">
<i class="fa fa-anchor" aria-hidden="true"></i>
<code>Permalink</code>
</a> |
Last updated: <span id="update-time">2016-08-16</span>
</footer>
</article></main>
</body>
</html>