Title: CS 655: Programming Languages
1CS 655 Programming Languages
Lecture 2 Operational Semantics
Then you should say what you mean, the March
Hare went on. I do, Alice hastily replied at
least at least I mean what I say thats the
same thing, you know. Not the same thing a
bit! said the Hatter. Why, you might as well
say that I see what I eat is the same thing as
I eat what I see!" Lewis Carrol, Alice in
Wonderland When I use a word, Humpty Dumpty
said, in a rather scornful tone, it means just
what I choose it to mean neither more nor
less. Lewis Carroll, Through the Looking Glass
- David Evans
- Office 236A, 982-2218
- evans_at_cs.virginia.edu
- http//www.cs.virginia.edu/evans
University of Virginia Computer Science
2Menu
- Survey Summary
- Position Papers Results
- Intro to Formal Semantics
- Operational Semantics
3Students Experience
- C - 92.5 years, C - 78, BASIC 64,
- Pascal 45, Java - 26.5, assemblies 26,
FORTRAN 22, LISP 17, Perl 14.5 - Ada, ADAMS, Common LISP, Delphi, Elf, Forth,
Haskell, HP Calculator, Hypertalk, JavaScript
(large system for DOD!), ksh, LOGO, ML, nawk,
ObjectPal, Python, Prolog, REBOL, Relay Ladder
Logic, Sather, Scheme, Smalltalk, SQL, Tcl/Tk
4Position Paper 1
- No ?, 5 ?2 ( 1.4)
- Our not favorite languages
- BASIC (1) C (8 - 1)
- C (3) FORTRAN (2)
- Java (8 - 2) Perl (2 - 2)
- Good papers had to get at underlying issues, not
just symptoms - Some misconceptions about GC
5Project Teams
- You have until noon Monday to submit team
requests - Use the discussion board if you are looking for
teammates - (link off cs655 page)
6Formal Semantics
7What does a program mean?
- Compile and run
- Implementation dependencies
- Not useful for reasoning
- Informal Semantics
- Natural language description of PL
- Formal Semantics
- Description in terms of notation with formally
understood meaning
8Why not informal semantics?
- Two types have compatible types if their types
are the same footnote Two types need not be
identical to be compatible.. - ANSI C Standard, 3.1.2.6
9Formal Semantics Approaches
- Operational
- Map to execution of a virtual machine
- Easier to understand, harder to reason about
- Depends on informal understanding of machine
- Denotational
- Map parts to mathematical meanings, rules for
composing meanings of pieces - Harder to understand, easier to reason about
- Depends on informal understanding of mathematics
- Lots of others Algebraic, Translator, etc.
10A Toy Language BARK
(Beginners All-Purpose Register Kode)
- Program Instruction Program is a sequence
of instructions - Instructions are numbered from 0.
- Instruction
- STORE Loc Literal Loc gets the value of
Literal - ADD Loc1 Loc2 Loc1 gets the value of Loc1
Loc2 - MUL Loc1 Loc2 Loc1 gets the value of Loc1
Loc2 - HALT Stop program execution, answer in R0
- ERROR Stop program execution, error
- GOTO Loc Jump to instruction corresponding
to - value in Loc.
- IF Loc1 THEN Loc1 If value in Loc1 is
non-zero, - jump to instruction corresponding
- to value in Loc2.
- Loc R-?0-90-9
- Literal -?0-90-9
11A BARK Program
- 0 STORE R0 1
- 1 STORE R1 10
- 3 STORE R2 1
- 4 STORE R3 6
- 5 STORE R4 8
- 6 IF R1 THEN R4
- 7 HALT
- 8 MUL R0 R1
- 9 ADD R1 R2
- 10 GOTO R3
12Operational Semantics Game
Abstract Machine
Real World
Program
Initial Configuration
Input Function
Intermediate Configuration
Transition Rules
Intermediate Configuration
Answer
Final Configuration
Output Function
13Structured Operational Semantics
- SOS for a language is five-tuple
- C Set of configurations for an abstract machine
- ? Transition relation (subset of C x C)
- I Program ? C (input function)
- F Set of final configurations
- O F ? Answer (output function)
14Abstract Machine Register Virtual Machine (RVM)
- Configuration defined by
- Array of Instructions
- Program counter
- Values in registers
- (any integer)
- C Instructions x PC x RegisterFile
.
.
Instruction-1
Register-1
Instruction0
Register0
Instruction1
PC
Register1
Instruction2
Register2
.
.
15Input Function I Program ? C
- C Instructions x PC x RegisterFile where
- For a Program with n instructions numbered from 0
to n - 1Instructionsm Programm for m gt
0 m lt n - Instructionsm ERROR otherwise
- PC 0
- RegisterFilen 0 for all integers n
16Output Function
Final Configurations
F Instructions x PC x RegisterFile where
InstructionsPC HALT
- OF ? Answer
- Answer value in RegisterFile0
17Operational Semantics Game
Abstract Machine
Real World
Program
Initial Configuration
Input Function
Intermediate Configuration
Transition Rules
Intermediate Configuration
Answer
Final Configuration
Output Function
18Form of Transition Rules
c ? c
Where c is a member of C .
19STORE Loc Literal
- InstructionsPC STORE Loc Literal
-
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
PC 1 RegisterFilen RegisterFilen if n
? Loc RegisterFilen value of Literal if n
? Loc
20ADD Loc1 Loc2
- InstructionsPC ADD Loc1 Loc2
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
PC 1 RegisterFilen RegisterFilen if n
? Loc RegisterFilen RegisterFileLoc2 if
n ? Loc1
21GOTO Loc
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
value in RegisterFileLoc
22IF Loc1 THEN Loc2
- InstructionsPC IF Loc1 THEN Loc2
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
value in RegisterFileLoc2 if Loc1 is
non-zero PC PC 1 otherwise
23Whats it good for?
- Understanding programs
- Write a compiler or interpreter (?)
- Prove properties about programs and languages
24Variation BARK-forward
- Same as BARK except
- GOTO Loc Jump forward Loc instructions. Loc
must - be positive.
- IF Loc1 THEN Loc2 If value in Loc1 is
non-zero, jump forward - value in Loc2. instructions. Loc2 must
be positive.
25GOTO Loc
BARK
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
value in RegisterFileLoc
InstructionsPC GOTO Loc,value in Loc gt 0
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
PC value in RegisterFileLoc
26Proving Termination
- Idea Prove by Induction
- Define a function
- Energy C ? positive integer
- Show Energy of all Initial Configurations is
finite - Show there are no transitions from a
configuration with Energy 0 - If C ? C is a valid transition step, Energy of
C must be less than Energy of C
27Energy Function
- Energy C ? positive integer
- C lt Instructions x PC x RegisterFile gt
- Energy h PC where
- h is an integer such that
- Instructionsk error for all k gt h
-
-
28Initial Configurations
- For all Initial Configurations C , Energy is
finite. Consider Input Function
C Instructions x PC x RegisterFile where For a
Program with n instructions numbered from 0 to n
- 1Instructionsm Programm for m gt 0
m lt n Instructionsm ERROR otherwise PC
0 RegisterFilen 0 for all integers n
29Initial Configuration Energy
- Energy (C ) n
- where n is number of program instructions
- PC 0
- Instructionm ERROR for m gt n
-
30Energy 0 ? Terminated
- Energy h PC where
- h is an integer such that
- Instructionsk error for all k gt h
- so, Energy 0 ?
- h PC and
- InstructionsPC ERROR
- No transitions for configuration where
InstructionsPC ERROR
31STORE reduces Energy
InstructionsPC STORE Loc Literal
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
PC 1 RegisterFilen RegisterFilen if n
? Loc RegisterFilen value of Literal if n
? Loc
Energy (ltInstructions x PC x RegisterFilegt) h
PC Energy (ltInstructions x PC x RegisterFilegt)
h (PC 1) h depends only on Instructions,
doesnt change Therefore Energy lt Energy
32GOTO reduces Energy
InstructionsPC GOTO Loc,value in Loc gt 0
lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
PC value in RegisterFileLoc
Energy(ltInstructions x PC x RegisterFilegt) h -
PC Energy(ltInstructions x PC x RegisterFilegt)
h (PC RegisterFileLoc) but antecedent
says RegisterFileLoc gt 0, so PC
RegisterFileLoc gt PC and Energy lt Energy.
33To complete proof
- Show the same for every transition rule.
- Then
- Start with finite energy,
- Every transition reduces energy,
- Energy must eventually reach 0.
- And energy 0 means we terminated.
- Minor flaw? could skip 0
- (e.g., Energy 1)
34Charge
- Problem Set 1
- Develop Operational Semantics for simplified
PostFix using RVM - Prove termination property
- Final project team requests by Monday
- Next time
- Projects
- Discuss Wenger paper come to class prepared to
discuss how well his milestones work today