CS 655: Programming Languages - PowerPoint PPT Presentation

About This Presentation
Title:

CS 655: Programming Languages

Description:

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 ... – PowerPoint PPT presentation

Number of Views:17
Avg rating:3.0/5.0
Slides: 35
Provided by: David77
Category:

less

Transcript and Presenter's Notes

Title: CS 655: Programming Languages


1
CS 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
2
Menu
  • Survey Summary
  • Position Papers Results
  • Intro to Formal Semantics
  • Operational Semantics

3
Students 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

4
Position 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

5
Project Teams
  • You have until noon Monday to submit team
    requests
  • Use the discussion board if you are looking for
    teammates
  • (link off cs655 page)

6
Formal Semantics
7
What 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

8
Why 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

9
Formal 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.

10
A 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

11
A 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

12
Operational Semantics Game
Abstract Machine
Real World
Program
Initial Configuration
Input Function
Intermediate Configuration
Transition Rules
Intermediate Configuration
Answer
Final Configuration
Output Function
13
Structured 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)

14
Abstract 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
.
.
15
Input 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

16
Output Function
Final Configurations
F Instructions x PC x RegisterFile where
InstructionsPC HALT
  • OF ? Answer
  • Answer value in RegisterFile0

17
Operational Semantics Game
Abstract Machine
Real World
Program
Initial Configuration
Input Function
Intermediate Configuration
Transition Rules
Intermediate Configuration
Answer
Final Configuration
Output Function
18
Form of Transition Rules
  • Antecedents

c ? c
Where c is a member of C .
19
STORE 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
20
ADD 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
21
GOTO Loc
  • InstructionsPC GOTO Loc

lt Instructions x PC x RegisterFile gt ? lt
Instructions x PC x RegisterFile gt where PC
value in RegisterFileLoc
22
IF 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
23
Whats it good for?
  • Understanding programs
  • Write a compiler or interpreter (?)
  • Prove properties about programs and languages

24
Variation 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.

25
GOTO Loc
BARK
  • InstructionsPC GOTO Loc

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
26
Proving 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

27
Energy 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

28
Initial 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
29
Initial Configuration Energy
  • Energy (C ) n
  • where n is number of program instructions
  • PC 0
  • Instructionm ERROR for m gt n

30
Energy 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

31
STORE 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
32
GOTO 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.
33
To 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)

34
Charge
  • 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
Write a Comment
User Comments (0)
About PowerShow.com