The Rise of Labor Unions in the Late 1800s Chapter 6 Section 4 © Shawn McCusker.
GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9....
Transcript of GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9....
![Page 1: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/1.jpg)
Game Semantics of Imperative Languages usingRegular Expressions
Guy McCusker
Game Semantics of Imperative Languages using Regular Expressions – p.1/33
![Page 2: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/2.jpg)
Making games tractable?
The game semantics universe has proved itself to be veryflexible: it provides accurate models for a wide variety ofprogramming languages.But how useful are these models? Can they be used toreason about programs? Do they tell us anything we didn’talready know?This talk describes some work which attempts to provide ausable reasoning technique for the games model ofIdealized Algol, developed in conjunction with DanGhica [1].
Game Semantics of Imperative Languages using Regular Expressions – p.2/33
![Page 3: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/3.jpg)
Idealized Algol
Idealized Algol (IA) is Reynolds’s theoretical distillation ofAlgol 60 [9, 3]. IA can be seen as:
• a basic functional language extended with state• x := 3• !x• new x in . . .
• alternatively, a basic imperative language extendedwith• block structure (new)• higher-order procedures (λ-calculus).
Either way, it is very expressive, elegant and powerful.
Game Semantics of Imperative Languages using Regular Expressions – p.3/33
![Page 4: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/4.jpg)
Capturing programming intuition
Programmers in Algol-like languages have many intuitionsabout the behaviour of programs.
• The use of local variables is invisible from outside ablock: privacy, modularity, representationindependence.
• State changes are irreversible: there is no “snapback”construct
snapback(P )
which runs P and then undoes all its state-changes.
A good semantics should capture and formalize theseintuitions, and the program optimizations which they justify.
Game Semantics of Imperative Languages using Regular Expressions – p.4/33
![Page 5: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/5.jpg)
Some program equivalences
Garbage collection If x does not occur free in P then
new x in P ∼= P.
No snapback
new x in P (x := 1); if !x = 1 then Ω else skip ∼= P (Ω)
Representation Independence
new x : bool in x := true; P (!x, x := ¬!x)∼= new x : int in x := 1; P (!x > 0, x := −!x)
Game Semantics of Imperative Languages using Regular Expressions – p.5/33
![Page 6: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/6.jpg)
Some program equivalences
Garbage collection If x does not occur free in P then
new x in P ∼= P.
No snapback
new x in P (x := 1); if !x = 1 then Ω else skip ∼= P (Ω)
Representation Independence
new x : bool in x := true; P (!x, x := ¬!x)∼= new x : int in x := 1; P (!x > 0, x := −!x)
Game Semantics of Imperative Languages using Regular Expressions – p.5/33
![Page 7: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/7.jpg)
Some program equivalences
Garbage collection If x does not occur free in P then
new x in P ∼= P.
No snapback
new x in P (x := 1); if !x = 1 then Ω else skip ∼= P (Ω)
Representation Independence
new x : bool in x := true; P (!x, x := ¬!x)∼= new x : int in x := 1; P (!x > 0, x := −!x)
Game Semantics of Imperative Languages using Regular Expressions – p.5/33
![Page 8: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/8.jpg)
Semantic approaches
• Classical Milne-Strachey “marked store” models.These can fail to validate garbage collection [2].
• Functor-category models handle locality well.Parametricity constraints can be added to handlerepresentation independence. Snapback remainsproblematic [6, 5].
• Reddy’s “object spaces” handle snapback too. Fullabstraction up to order 2 via the Yonedaembedding [8, 4].
• Operationally-based reasoning [7] .• Game semantics: full abstraction.
Game Semantics of Imperative Languages using Regular Expressions – p.6/33
![Page 9: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/9.jpg)
Semantic approaches
• Classical Milne-Strachey “marked store” models.These can fail to validate garbage collection [2].
• Functor-category models handle locality well.Parametricity constraints can be added to handlerepresentation independence. Snapback remainsproblematic [6, 5].
• Reddy’s “object spaces” handle snapback too. Fullabstraction up to order 2 via the Yonedaembedding [8, 4].
• Operationally-based reasoning [7] .• Game semantics: full abstraction.
Game Semantics of Imperative Languages using Regular Expressions – p.6/33
![Page 10: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/10.jpg)
Semantic approaches
• Classical Milne-Strachey “marked store” models.These can fail to validate garbage collection [2].
• Functor-category models handle locality well.Parametricity constraints can be added to handlerepresentation independence. Snapback remainsproblematic [6, 5].
• Reddy’s “object spaces” handle snapback too. Fullabstraction up to order 2 via the Yonedaembedding [8, 4].
• Operationally-based reasoning [7] .• Game semantics: full abstraction.
Game Semantics of Imperative Languages using Regular Expressions – p.6/33
![Page 11: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/11.jpg)
Semantic approaches
• Classical Milne-Strachey “marked store” models.These can fail to validate garbage collection [2].
• Functor-category models handle locality well.Parametricity constraints can be added to handlerepresentation independence. Snapback remainsproblematic [6, 5].
• Reddy’s “object spaces” handle snapback too. Fullabstraction up to order 2 via the Yonedaembedding [8, 4].
• Operationally-based reasoning [7] .
• Game semantics: full abstraction.
Game Semantics of Imperative Languages using Regular Expressions – p.6/33
![Page 12: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/12.jpg)
Semantic approaches
• Classical Milne-Strachey “marked store” models.These can fail to validate garbage collection [2].
• Functor-category models handle locality well.Parametricity constraints can be added to handlerepresentation independence. Snapback remainsproblematic [6, 5].
• Reddy’s “object spaces” handle snapback too. Fullabstraction up to order 2 via the Yonedaembedding [8, 4].
• Operationally-based reasoning [7] .• Game semantics: full abstraction.
Game Semantics of Imperative Languages using Regular Expressions – p.6/33
![Page 13: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/13.jpg)
Syntax of IA
The language we will consider is a simply-typed λ-calculuswith the following base types.
• Expression types N, B, with the usual constants andoperations, including dereferencing of storagevariables !x.
• The type comm of commands. Commands includeassignment x := M , sequential composition C1; C2,skip, and local blocks new x in M .
• The type var of storage variables. Such variables areallocated using new and manipulated via assignmentand dereferencing.
Game Semantics of Imperative Languages using Regular Expressions – p.7/33
![Page 14: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/14.jpg)
Semantics of base types
The expression types are interpreted as usual. For thenatural numbers:
q
0 1 2 . . .
Commands are interpreted with a similar game:
run
done
Game Semantics of Imperative Languages using Regular Expressions – p.8/33
![Page 15: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/15.jpg)
Semantics of var
Variables have two kinds of initial move, for reading and forwriting:
ok
write(0) write(1) write(2) . . . read
0 1 2 . . .
Game Semantics of Imperative Languages using Regular Expressions – p.9/33
![Page 16: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/16.jpg)
Some examples
x : var, y : var ` x :=!y + 1 : comm
run
read
n
write(n + 1)
ok
done
Game Semantics of Imperative Languages using Regular Expressions – p.10/33
![Page 17: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/17.jpg)
Some examples
c : comm, x : var ` x := 3; c; x :=!x + 1 : comm
run
write(3)
ok
run
done
read
n
(n need not be 3)
write(n + 1)
ok
done
Game Semantics of Imperative Languages using Regular Expressions – p.11/33
![Page 18: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/18.jpg)
Some examples
c : comm, x : var ` x := 3; c; x :=!x + 1 : comm
run
write(3)
ok
run
done
read
n (n need not be 3)
write(n + 1)
ok
done
Game Semantics of Imperative Languages using Regular Expressions – p.11/33
![Page 19: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/19.jpg)
Bad variable behaviour
In the previous example, O must be allowed to respond toread with any value, since the command c may later bebound to something like x := 19.If we wrap the command in a new x in . . ., this changes:the command c cannot now access x, and nor cananything else.The variable x is now a good variable.
Game Semantics of Imperative Languages using Regular Expressions – p.12/33
![Page 20: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/20.jpg)
Variable allocation
The command new x in P is just like P , except that:• x is bound to a storage cell, so P ’s interactions with x
have the expected causal relationship between valueswritten and values read.
• The outside world can no longer see x.
Game Semantics of Imperative Languages using Regular Expressions – p.13/33
![Page 21: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/21.jpg)
Semantics of allocation
In game semantics, variable allocation is handled bycomposition with this strategy:
(var ⇒ comm) ⇒ comm
run
run
s
done
done
where s is any sequence of reads and writes for which thevalues read match the last values written at all times.
Game Semantics of Imperative Languages using Regular Expressions – p.14/33
![Page 22: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/22.jpg)
Allocation in action
comm =⇒ (var ⇒ comm) =⇒ comm
run
run
write(3)
ok
run
done
read
3
write(4)
ok
done
done
Game Semantics of Imperative Languages using Regular Expressions – p.15/33
![Page 23: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/23.jpg)
Allocation in action
This composition achieves two things:• good variable behaviour is enforced.• the interactions in the var type are hidden.
Game Semantics of Imperative Languages using Regular Expressions – p.16/33
![Page 24: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/24.jpg)
A restricted IA
We will now see how to reason about this games modelusing regular expressions, for a restricted language.
We consider only terms of the form
x1 : Θ1, . . . , xn : Θn ` M : B
where B is a base type and the Θi are first-order types.We do not handle general recursion, but we do includewhile-loops.We assume a finite set of data-values.For convenience, we assume all terms are β-normal, sothere are no λ-abstractions, and the only application termswe consider are those of the form
xM1 . . . Mn.
Game Semantics of Imperative Languages using Regular Expressions – p.17/33
![Page 25: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/25.jpg)
A restricted IA
We will now see how to reason about this games modelusing regular expressions, for a restricted language.We consider only terms of the form
x1 : Θ1, . . . , xn : Θn ` M : B
where B is a base type and the Θi are first-order types.
We do not handle general recursion, but we do includewhile-loops.We assume a finite set of data-values.For convenience, we assume all terms are β-normal, sothere are no λ-abstractions, and the only application termswe consider are those of the form
xM1 . . . Mn.
Game Semantics of Imperative Languages using Regular Expressions – p.17/33
![Page 26: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/26.jpg)
A restricted IA
We will now see how to reason about this games modelusing regular expressions, for a restricted language.We consider only terms of the form
x1 : Θ1, . . . , xn : Θn ` M : B
where B is a base type and the Θi are first-order types.We do not handle general recursion, but we do includewhile-loops.
We assume a finite set of data-values.For convenience, we assume all terms are β-normal, sothere are no λ-abstractions, and the only application termswe consider are those of the form
xM1 . . . Mn.
Game Semantics of Imperative Languages using Regular Expressions – p.17/33
![Page 27: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/27.jpg)
A restricted IA
We will now see how to reason about this games modelusing regular expressions, for a restricted language.We consider only terms of the form
x1 : Θ1, . . . , xn : Θn ` M : B
where B is a base type and the Θi are first-order types.We do not handle general recursion, but we do includewhile-loops.We assume a finite set of data-values.
For convenience, we assume all terms are β-normal, sothere are no λ-abstractions, and the only application termswe consider are those of the form
xM1 . . . Mn.
Game Semantics of Imperative Languages using Regular Expressions – p.17/33
![Page 28: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/28.jpg)
A restricted IA
We will now see how to reason about this games modelusing regular expressions, for a restricted language.We consider only terms of the form
x1 : Θ1, . . . , xn : Θn ` M : B
where B is a base type and the Θi are first-order types.We do not handle general recursion, but we do includewhile-loops.We assume a finite set of data-values.For convenience, we assume all terms are β-normal, sothere are no λ-abstractions, and the only application termswe consider are those of the form
xM1 . . . Mn.
Game Semantics of Imperative Languages using Regular Expressions – p.17/33
![Page 29: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/29.jpg)
RegExps++
We will give the game semantics of this subset using amildly extended syntax of regular expressions.
Constants a (singleton), ε (empty string), ⊥ (emptylanguage).
Standard operations R + S (union), R · S (concatenation), R∗
(repetition).
Intersection R ∩ S.
Hiding R \ α: delete all symbols in the set α.
Game Semantics of Imperative Languages using Regular Expressions – p.18/33
![Page 30: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/30.jpg)
Encoding of plays
We must make the disjoint union operation from gamesemantics explicit. We annotate moves as follows:
x : N, f : N ⇒ N ` f(x) : N
q
qf
q1f
qx
nx
n1f
mf
m
Game Semantics of Imperative Languages using Regular Expressions – p.19/33
![Page 31: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/31.jpg)
Denotation of terms
The strategy for a term
x1 : Θ1, . . . , xn : Θn ` M : N
consists of a set of sequences of the form
q . . . n
We will give a set of regular languages ([M ])n such that
[[M ]] =∑
n
q · ([M ])n · n
Game Semantics of Imperative Languages using Regular Expressions – p.20/33
![Page 32: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/32.jpg)
Denotation of terms
For M : comm,
[[M ]] = run · ([M ]) · done.
For M : var,
[[M ]] =∑
n
read · ([M ])read(n) · n
+∑
n
write(n) · ([M ])write(n) · ok
(Note: this notation differs from that used in the paper).
Game Semantics of Imperative Languages using Regular Expressions – p.21/33
![Page 33: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/33.jpg)
Constants
In the usual game semantics, [[n]] = q · n .We define
([n])n = ε, ([n])m = ⊥ for m 6= n.
Similarly:([skip]) = ε, ([Ω]) = ⊥.
Game Semantics of Imperative Languages using Regular Expressions – p.22/33
![Page 34: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/34.jpg)
Variables
For variables x : N, the semantics is the copycat strategy
x : N ` x : N
q
qx
nx
n
so we define([x : N])n = qx · nx.
Game Semantics of Imperative Languages using Regular Expressions – p.23/33
![Page 35: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/35.jpg)
More semantic definitions
([C; C ′]) = ([C]) · ([C ′])
([M + M ′])n =∑
m+m′=n
([M ])m · ([M ′])m′ .
([if B then C else C ′]) = ([B])true · ([C]) + ([B])false · ([C′])
([while B do C]) = (([B])true · ([C]))∗ · ([B])false
([V := M ]) =∑
n
([M ])n · ([V ])write(n)
([!V ])n = ([V ])read(n)
Game Semantics of Imperative Languages using Regular Expressions – p.24/33
![Page 36: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/36.jpg)
Semantics of Application
Given x : comm ⇒ comm ⇒ comm, M1, M2 : comm, wedefine
([xM1M2]) = runx·(run1x·([M1])·done1
x+run2x·([M2])·done2
x)∗·donex.
Similarly, if x : var ⇒ N and M : var, ([xM ])k is
qx·(∑
n read1x · ([M ])read(n) · n
1x +
∑
n write(n)1x · ([M ])write(n) · ok1
x
)∗·
kx.
Game Semantics of Imperative Languages using Regular Expressions – p.25/33
![Page 37: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/37.jpg)
Semantics of allocation
Let X denote the set of symbols tagged with an x. Let Y
be the rest of the alphabet.
The regular language
G = Y ∗·(readx·0x·Y∗)∗·(
∑
n
write(n)x·okx·Y∗·(readx·nx·Y
∗)∗)∗
describes all those strings in which x has good-variablebehaviour.Now we can define
([new x in P ]) = (([P ]) ∩ G) \ X.
Game Semantics of Imperative Languages using Regular Expressions – p.26/33
![Page 38: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/38.jpg)
Semantics of allocation
Let X denote the set of symbols tagged with an x. Let Y
be the rest of the alphabet.The regular language
G = Y ∗·(readx·0x·Y∗)∗·(
∑
n
write(n)x·okx·Y∗·(readx·nx·Y
∗)∗)∗
describes all those strings in which x has good-variablebehaviour.
Now we can define
([new x in P ]) = (([P ]) ∩ G) \ X.
Game Semantics of Imperative Languages using Regular Expressions – p.26/33
![Page 39: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/39.jpg)
Semantics of allocation
Let X denote the set of symbols tagged with an x. Let Y
be the rest of the alphabet.The regular language
G = Y ∗·(readx·0x·Y∗)∗·(
∑
n
write(n)x·okx·Y∗·(readx·nx·Y
∗)∗)∗
describes all those strings in which x has good-variablebehaviour.Now we can define
([new x in P ]) = (([P ]) ∩ G) \ X.
Game Semantics of Imperative Languages using Regular Expressions – p.26/33
![Page 40: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/40.jpg)
A theorem
P ∼= Q ⇔ [[P ]] = [[Q]] ⇔ ([P ]) = ([Q]).
Game Semantics of Imperative Languages using Regular Expressions – p.27/33
![Page 41: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/41.jpg)
A simple example
([while true do C]) = (([true])true · ([C]))∗ · ([true])false
= (ε · ([C]))∗ · ⊥
= ⊥
= ([Ω]).
So while true do C ∼= Ω.
Game Semantics of Imperative Languages using Regular Expressions – p.28/33
![Page 42: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/42.jpg)
Garbage collection
([new x in M ]) = (([M ]) ∩ G) \ X
= ([M ])
since x is not free in M so no move of ([M ]) is tagged withan x.
Game Semantics of Imperative Languages using Regular Expressions – p.29/33
![Page 43: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/43.jpg)
No snapback
Let M be P (x := 1); if !x = 1 then Ω else skip.We will show that new x in M ∼= P (Ω).
([x := 1]) = write(1)x · okx
([P (x := 1)]) = runP ·
(run1P · write(1)x · okx · done1
P )∗ ·
doneP
([!x = 1])true = readx · 1x
([!x = 1])false =∑
n6=1
readx · nx
Game Semantics of Imperative Languages using Regular Expressions – p.30/33
![Page 44: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/44.jpg)
No snapback, continued
([if !x = 1 then Ω else skip]) = ([!x = 1])true · ([Ω])
+ ([!x = 1])false · ([skip])
= ([!x = 1])true · ⊥ + ([!x = 1])false · ε
= ([!x = 1])false
=∑
n6=1
readx · nx
Therefore
([M ]) =∑
n6=1
runP ·(run1P ·write(1)x ·okx ·done1
P )∗ ·doneP ·readx ·nx
Game Semantics of Imperative Languages using Regular Expressions – p.31/33
![Page 45: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/45.jpg)
No snapback, concluded
([M ]) =∑
n6=1
runP ·(run1P ·write(1)x ·okx ·done1
P )∗ ·doneP ·readx ·nx
We therefore have
([M ]) ∩ G = runP · doneP · readx · 0x
([new x in M ]) = (([M ]) ∩ G) \ X = runP · doneP .
On the other hand, ([Ω]) = ⊥ so
([P (Ω)]) = runP · (run1P · ⊥ · done1
P )∗ · doneP
= runP · doneP .
Game Semantics of Imperative Languages using Regular Expressions – p.32/33
![Page 46: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/46.jpg)
Decidability
Our theorem shows that observational equivalence for thisfragment of Idealized Algol is decidable.In principle, we could mechanize this reasoning to build amodel-checker.However, language equivalence for regular expressionswith intersection is EXPSPACE complete. . .
More research needed!
Game Semantics of Imperative Languages using Regular Expressions – p.33/33
![Page 47: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/47.jpg)
References
[1] Dan R. Ghica and Guy McCusker. Reasoning about Ide-
alized Algol using regular languages. In Proceedings,
Twenty-Seventh International Colloquium on Automata,
Languages and Programming, pages 103–115, 2000.
[2] R.E. Milne and C. Strachey. A Theory of Programming Lan-
guage Semantics. Chapman and Hall, London, 1976.
[3] Peter Naur, J. W. Backus, F. L. Bauer, J. Green, C. Katz,
J. McCarthy, A. J. Perlis, H. Rutishauer, K. Samelson,
B. Vauquois, J. H. Wegstein, A. van Wijngaarden, and
M. Woodger. Revised report on the algorithmic language
ALGOL 60. Communications of the ACM, 6(1):1–17, Jan-
uary 1963.
[4] P. W. O’Hearn and U. Reddy. Objects, interference and
the Yoneda embedding. In M. Main and S. Brookes, ed-
itors, Mathematical Foundations of Programming Seman-
tics: Proceedings of 11th International Conference, Elec-
tronic Notes in Theoretical Computer Science. Elsevier Sci-
ence Publishers B.V., 1995.
[5] P. W. O’Hearn and R. D. Tennent. Parametricity and local
variables. Journal of the ACM, 42(3):658–709, May 1995.
[6] Peter W. O’Hearn and R. D. Tennent. Semantics of local
variables. In M. P. Fourman, P. T. Johnstone, and A. M.
33-1
![Page 48: GameSemanticsofImperativeLanguagesusing RegularExpressionsgam23/papers/regexps.pdf · 2002. 9. 2. · GameSemanticsofImperativeLanguagesusing RegularExpressions Guy McCusker Game](https://reader034.fdocuments.net/reader034/viewer/2022051901/5feffded4c91f50f8848a082/html5/thumbnails/48.jpg)
Pitts, editors, Applications of Categories in Computer Sci-
ence: Proceedings of the LMS Symposium, Durham, 1991.
Cambridge University Press, 1992. LMS Lecture Notes Se-
ries, 177.
[7] A. M. Pitts. Reasoning about local variables with
operationally-based logical relations. In Proceedings,
Eleventh Annual IEEE Symposium on Logic in Computer
Science, pages 152–163. IEEE Computer Society Press,
1996.
[8] Uday S. Reddy. Global state considered unnecessary:
Object-based semantics for interference-free imperative
programs. Lisp and Symbolic Computation, 9(1), 1996.
[9] John C. Reynolds. The essence of Algol. In Proceedings
of the 1981 International Symposium on Algorithmic Lan-
guages, pages 345–372. North-Holland, 1981.
33-1