-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathscribbles.txt
205 lines (140 loc) · 5.41 KB
/
scribbles.txt
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
B629 Topics in Programming Languages
Indiana University
Spring 2018
Denotational semantics via domains, graphs, and types.
Description
-----------
In this course we shall study the denotational semantics of
programming languages, including the classic lattic-theoretic models
as well as elementary models based on functions-as-graphs and
intersection types. The course assignments will include readings from
selected chapters and papers from the literature, presentations,
written homework, and some programming.
Readings
-----------
Denotational semantics: a methodology for language development,
David Schmidt, 1986. (pdf available online)
Ch. 4 Binary arithmetic and a calculator
Ch. 5 Imperative Languages
Ch. 6 domain theory (for loops and recursive functions)
Ch. 7 lambda calculus
Ch. 9 continuations
Ch. 11 inverse limit construction
The denotational semantics of programming languages,
Tennent, CACM 1976.
LOOP language: natural numbers, loops, input/output, continuations
AEXP
GEDANKEN
?? Denotational Semantics. P. Mosses, 1989.
?? Semantics domains. Gunter and Scott, 1989.
?? Semantics of Programming Languages: Structures and Techniques
Gunter, 1992.
?? Denotational Semantics: The Scott-Strachey Approach to PL Theory.
Joseph Stoy, 1977.
?? A Theory of Programming Language Semantics, Milne and Strachey.
?? Domains and Lambda Calculi, Amadio and Curien, 1998.
Outline of a Mathematical Theory of Computation, Dana Scott 1970
D∞
Data Types as Lattices, Dana Scott 1976
Pω
?? Notes on a lattice-theoretical approach to the theory of computation
John Reynolds, 1972.
The Lambda Calculus: its Syntax and Semantics. Barendregt 1984.
Def. of λ-model?
?? What is a Model of the Lambda Calculus?
Albert Meyer, Inf. and Control, 1982.
?? The category-theoretic solution of recursive domain equations
Smyth and Plotkin, Siam Journal on Computing, 1982.
Set-theoretical and other elementary models of the λ-calculus,
Plotkin 1993.
Algebras and combinators, Engeler, 1981.
Functional characterization of some semantic equalities
inside λ-calculus, Coppo, Dezani-Ciancaglini, Salle 1979.
Functional Characters of Solvable Terms
Coppo, Dezani-Ciancaglini, Venneri, Math. Logic Quart. 1981.
A filter lambda model and the completeness of type assignment,
Barendregt, Coppo, Dezani-Ciancaglini, 1983.
(BCD)
?? Extended Type Structures and Filter Lambda Models,
Coppo, Dezani-Ciancaglini, Honsell, Longo, 1984.
Intersection Types and Lambda Models
Alessi, Barbanera, Dezani-Ciancaglini, TCS 2006.
Recursive Domain Equations of Filter Models,
Alessi, Severi, SOFSEM 2008.
Revisiting Elementary Denotational Semantics,
Siek, draft 2017.
Lambda Calculus with Types, Barendregt, Dekkers, Statman, 2013.
Notions of computation and monads, Moggi, 1991.
?? An Abstract View of Programming Languages, Moggi, 1989.
(Monads, Category Theory)
Something about PCF and full abstraction
??A fully abstract semantics for concurrent graph reduction.
Alan Jeffrey 1993.
Full abstraction in the lazy lambda calculus,
Abramsky and Ong, Inf. and Comp., 1993.
Observable sequentiality and full abstraction,
Cartwright and Felleisen, POPL 1992.
Towards Compatible and Interderivable Semantic Specifications for the
Scheme Programming Language, Part I: Denotational Semantics, Natural
Semantics, and Abstract Machines
Olivier Danvy, 2009.
Languages to consider
---------------------
Binary numerals and arithmetic (Schmidt)
Regular expressions
IMP (or While)
λ-calculus (Full, CBN, Lazy, CBV)
Scheme
PCF
SPCF
loops
input/output
recursive functions
errors
exceptions
continuations
recursive types
Notes
-----
domain theory in logical form
ω-algebraic complete lattices
types are compact elements of Plotkin's λ-structures
Stone duality
Topology via Logic
* The Lambda Calculus: its Syntax and Semantics. Barendregt 1984.
Chapter 5
retract
cartesian closed category?
λ-algebra: satisfy equations of the λ-calculus,
form an equational class axiomatized by kxy=x, sxyz=xz(yz),
and five combinatory axioms of Curry
λ-model: satisfy equations of the λ-calculus and also
weak extensionality: ∀x(M=N) ⇒ λx.M = λx.N
5.4 Models in Cartesian Closed Categories
"we will describe the models D_A introduced by Engeler [1981]
as a simplification of the graph model Pω introduced in §18.1."
Let A be an arbitrary set.
B = A + P_f(B) × B
D_A = P(B)
For x,y ∈ D_A, f ∈ [D_A → D_A]
x ⋅ y = { b | ∃β. β ⊆ y and (β,b) ∈ x }
λG x. f(x) = { (β,b) | β ∈ P_f(B) and b ∈ f(β) }
5.4.6 Theorem D_A is a reflexive cpo by definining
F(x)(y) = x ⋅ y
G(f) = λG x. f(x).
Therefore D_A is a λ-model.
See exercises 5.77, 18.5.29, 18.4.31 for more information about D_A.
Chapter 18
e(n) = {k_0,...,k_m-1} such that n = sum 2^{k_i}
[x]ρ = ρ(x)
[M N]ρ = {m | ∃n. e(n) ⊆ [N]ρ and (n,m) ∈ [M]ρ }
[λx.M]ρ = { (n,m) | m ∈ [M]ρ(x:=e(n)) }
So yes, Pω is just an encoding of D_A into natural numbers!
* Koymans [1982] history of lambda models
topology for P(N)
Def. A basis (basic set) is the upward closed set of set(n), for a given n.
That is, { S | set(n) ⊆ S }
Def. An open subset is a union of basic sets.
The finite sets, set(n), are dense in that every S ∈ P(N)
is the "limit" (lub) of its finite subsets
S = { set(n) | set(n) ⊆ S }