C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 C LAUS B RABRAND © 2005-2006, University of Aarhus [ ] [

Slides:



Advertisements
Similar presentations
Process Algebra Book: Chapter 8. The Main Issue Q: When are two models equivalent? A: When they satisfy different properties. Q: Does this mean that the.
Advertisements

- Vasvi Kakkad.  Formal -  Tool for mathematical analysis of language  Method for precisely designing language  Well formed model for describing and.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Programming Paradigms for Concurrency Lecture 11 Part III – Message Passing Concurrency TexPoint fonts used in EMF. Read the TexPoint manual before you.
Semantics Q S EMANTICS (Q1,’07) Week 1 Jacob Andersen PhD student
1 Lecture 3 The CSP approach to the specification and analysis of Security protocols Communicating Sequential Processes [Hoare 78] Mathematical framework.
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous.
C LAUS B RABRAND © C ONCURRENCY (Q3,’07) F EB 05, 2007 C ONCURRENCY Claus Brabrand [ ]
C LAUS B RABRAND © C ONCURRENCY (Q3,’06) J AN 19, 2006 C ONCURRENCY Claus Brabrand [ ]
Comp 205: Comparative Programming Languages Semantics of Imperative Programming Languages denotational semantics operational semantics logical semantics.
A Semantic Characterization of Unbounded-Nondeterministic Abstract State Machines Andreas Glausch and Wolfgang Reisig 1.
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
C LAUS B RABRAND S EMANTICS (Q1,’05) S EP 8, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
1 Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications.
1 Semantics Q S EMANTICS (Q1,’07) Week 5 Jacob Andersen PhD student
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
C LAUS B RABRAND S EMANTICS (Q1,’05) S EP 8, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
C LAUS B RABRAND S EMANTICS (Q1,’06) O CT 06, 2006 C LAUS B RABRAND © , University of Aarhus [ ] [
1 Formal Models for Distributed Negotiations Concurrent Languages Translation Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela.
C LAUS B RABRAND C ONCURRENCY (Q3,’06) M AR 13, 2006 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
C LAUS B RABRAND © S EMANTICS (Q1,’06) A UG 31, 2006 C LAUS B RABRAND © 2005–2006, University of Aarhus [ ] [
C LAUS B RABRAND S EMANTICS (Q1,’05) S EP 29, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
C LAUS B RABRAND S EMANTICS (Q1,’05) O CT 06, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 14, 2006 C LAUS B RABRAND © , University of Aarhus [ ] [
1 Semantics Q S EMANTICS (Q1,’07) Week 4 Jacob Andersen PhD student
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
C LAUS B RABRAND © S EMANTICS (Q1,’05) S EP 1, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
What is Concurrent Programming? Maram Bani Younes.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
Advanced Topics in SE Spring Process Algebra Hossein Hojjat Formal Methods Lab University of Tehran.
1 CSCI 6900: Design, Implementation, and Verification of Concurrent Software Eileen Kraemer August 16 th, 2010 The University of Georgia.
Reactive systems – general
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Operational Semantics And Process Algebra Mads Dam Reading: Peled 8.3, 8.4, 8.6 – rest of ch. 8.
CS5204 – Operating Systems 1  -Calculus Reasoning about concurrency and communication (Part 1).
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Internet Security CSCE 813 Communicating Sequential Processes.
UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine1 CSE 503 – Software Engineering Lecture 7: Process calculi and refinement Rob DeLine 19 Apr.
11/19/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof.Anna Labella.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Semantics In Text: Chapter 3.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
CS 5204 Spring 99 1 A Simple Agent A CCS agent is described both by a structural diagram and one or more algebraic equations. The diagram is for readability.
1 / 48 Formal a Language Theory and Describing Semantics Principles of Programming Languages 4.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications Chapter.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Process Algebra (2IF45) Basic Process Algebra Dr. Suzana Andova.
Agenda  Quick Review  Finish Introduction  Java Threads.
1 Theoretical Foundations of Concurrency A formal study of concurrency enables: understanding the essential nature of concurrency reasoning about the behavior.
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
Describing Syntax and Semantics
Representation, Syntax, Paradigms, Types
Representation, Syntax, Paradigms, Types
Problem Solving Skill Area 305.1
Representation, Syntax, Paradigms, Types
Representation, Syntax, Paradigms, Types
Presentation transcript:

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 C LAUS B RABRAND © , University of Aarhus [ ] [ ] S EMANTICS (Q1,’06) W EEK 5: ”CONCURRENCY AND COMMUNICATION”

C LAUS B RABRAND [ 2 ] S EMANTICS (Q1,’06) S EP 28, 2006 Next time: 10:15 Erik Meijer C# [Meeting Room] 11:15 Guy Steele Java [Big Auditorium] 12:15 – 13:50 (!) Semantics lecture

C LAUS B RABRAND [ 3 ] S EMANTICS (Q1,’06) S EP 28, 2006 Outline Introduction to Part 2 Concurrency vs. Sequentiality CCS: "Calculus of Communicating Systems" By-example (one construction at a time) Syntax of CCS 7 linguistic constructions(!) Semantics of CCS 1 page(!) A Tale of two Coca-Cola Machines

C LAUS B RABRAND [ 4 ] S EMANTICS (Q1,’06) S EP 28, 2006 Course Structure Introduction [background]: Prerequisitional Math // 1 week Part I [describe/explain/analyze]: Structural Operational Semantics // 3 weeks Part II [compare/reason]: Concurrency and Communication (CCS) // 1 week Part III [compare/prove/apply]: Equivalence and Verification // 1 week To be decided...

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 Program world Model world Concrete Abstract P M abstraction concretization

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 C ONCURRENCY VS. S EQUENTIALITY

C LAUS B RABRAND [ 7 ] S EMANTICS (Q1,’06) S EP 28, 2006 Concurrency vs. Sequentiality Sequential programming: Describe computation as a “reduction” of expressions to values Inherently deterministic Termination often desirable Resulting value is of primary interest and focus Concurrent programming: Describe execution as “process evolution” Inherently non-deterministic Non-termination often desirable (e.g. Op.Sys., Control sys, Cell-phone, …) Describe possible executions (aka. execution traces) Describe possible interactions during execution Describe interaction with an environment Resulting “value” is not (necessarily) interesting

C LAUS B RABRAND [ 8 ] S EMANTICS (Q1,’06) S EP 28, 2006 Concurrency is much Harder Harder than sequential programming: Huge number of possible executions Inherently non-deterministic Parallelism conceptually harder Consequences: Programs are harder to write! Programs are harder to debug! Errors are not always reproducible New kinds of errors possible: Deadlock, starvation, priority inversion, interference, …

C LAUS B RABRAND [ 9 ] S EMANTICS (Q1,’06) S EP 28, 2006 Concurrency Problems Therac-25 Radiation Therapy ’85-’87 Massive overdoses (6 deaths / amputations)! Mars Pathfinder July ’97 Periodic resets (on mars)! Windows 95/98 w/ Device Drivers late ’90es Dysfunction (“blue screen of death”)!

C LAUS B RABRAND [ 10 ] S EMANTICS (Q1,’06) S EP 28, 2006 Concurrency Problems (cont’d) Mobile Phones ’00-… Freeze and odd behaviors (really annoying)! Cruise Control System Model ’86 [Grady Booch] Accellerated after car ignition (car crashes)! … 

C LAUS B RABRAND [ 11 ] S EMANTICS (Q1,’06) S EP 28, 2006 …and what about? Air Plane Control System Dysfunction (plane crash)! Nuclear Powerplant Control System Core melt-down (“China-syndrome”)! Smart-Board Control System Dysfunction (annoying for 'dSem' lectures)! :) ?!?!

C LAUS B RABRAND [ 12 ] S EMANTICS (Q1,’06) S EP 28, 2006 Problem: System Development? In the presence of all these errors: deadlock, starvation, priority inversion, interference, anti-cooperation, un-intended execution traces, un-fairness, … How to…: 1. …design a system that “works” ? 2. …verify that the system is “safe” ? 3. …verify that the system “meets its specification” ? …and: What does “works”, “safe”, and “to meet a specification” mean ?!?

C LAUS B RABRAND [ 13 ] S EMANTICS (Q1,’06) S EP 28, 2006 Glasses of Abstraction… It’s Amazing… See behind concrete details; perceive only what is relevant and at the appropriate level of abstraction)! Only $12,95 “See only the relevant!” “ The Glasses of Abstraction ”

C LAUS B RABRAND [ 14 ] S EMANTICS (Q1,’06) S EP 28, 2006 Solution: Modelling “Models come to the rescue”: Create models (~ architecture, bridge construction, …) Note: “Errors are much cheaper to commit in models than in implementations”

C LAUS B RABRAND [ 15 ] S EMANTICS (Q1,’06) S EP 28, 2006 Dictionary: “ model ” In this course (we use): 3+4 : as in “Model-based design” (designing a model of a concurrent system) 12 : as in “Model-checking” (checking implementation against declarative (logic) specification) Main Entry: 1 mod·el Pronunciation: 'mä-d & l Function: noun Etymology: Middle French modelle, from Old Italian modello, from (assumed) Vulgar Latin modellus, from Latin modulus small measure, from modus 1 obsolete : a set of plans for a building 2 dialect British : COPY, IMAGE 3 : structural design 4 : a usually miniature representation of something; also : a pattern of something to be made 5 : an example for imitation or emulation 6 : a person or thing that serves as a pattern for an artist; especially : one who poses for an artist 7 : ARCHETYPE 8 : an organism whose appearance a mimic imitates 9 : one who is employed to display clothes or other merchandise : MANNEQUIN 10 a : a type or design of clothing / b : a type or design of product (as a car) 11 : a description or analogy used to help visualize something (as an atom) that cannot be directly observed 12 : a system of postulates, data, and inferences presented as a mathematical description of an entity or state of affairs 13 : VERSION Webster’s(“ model ”):

C LAUS B RABRAND [ 16 ] S EMANTICS (Q1,’06) S EP 28, 2006 Modelling: Level of Abstraction Consider a client/server system: Extremely abstract (high level of abstraction): Appropriate (level of abstraction) for … : Extremely concrete (low level of abstraction): Universe = event.Universe def NAND_Gate =... Transistor =... Accumulator = Client =... def Server = request.process.reply.Server Client = calc.request.wait.reply.Client Database =... higher level of abstraction def

C LAUS B RABRAND [ 17 ] S EMANTICS (Q1,’06) S EP 28, 2006 Solution: Modelling “Models come to the rescue”: Create models (~ architecture, bridge construction, …) Formal modelling (e.g., CCS) permits: (Offline) Reasoning  understanding (Runtime) Testing  confidence (C-time) Property Verification  safety (C-time) Specification Verification  correctness Note: “Errors are much cheaper to commit in models than in implementations” “Never send a human to do a machine’s job” -- A.Smith (’99) auto- mate

C LAUS B RABRAND [ 18 ] S EMANTICS (Q1,’06) S EP 28, 2006 Methodology: Model-based Design Design abstract model Decompose model Reason/Test/Verify model individual parts and whole Recompose insights make model safe Impl. concrete program concretize REAL PROBLEM SAFE MODEL SAFE PROGRAM abstract ? ? ? ? MODEL test reason verify

C LAUS B RABRAND [ 19 ] S EMANTICS (Q1,’06) S EP 28, 2006 CCS: Why a Calculus (pl. Calculi) Compositional:  || Break things into (several) smaller things Algebraic: , , … Intuitive ideal (also eases automated verification) Syntactic: and … Provide basis for programming languages P | QPQ big P + Q Q + P P | Q Q | P P  P’ P | Q  P’ | Q Q  Q’ P | Q  P | Q’ [ PAR 1 ] [ PAR 2 ]

C LAUS B RABRAND [ 20 ] S EMANTICS (Q1,’06) S EP 28, 2006 Parallel- vs. Concurrent Programming Strategy: Optimal strategy for a particular goal Use available resources efficiently Safety: Conceptually independent players Control interaction and “rules” The Football Match Analogy: “An analogy that one can make is with football*; - the coach of the team is a parallel programmer while - the referee is a concurrent programmer” -- [P.Panangaden, ’96] The Referee (~ the concurrent programmer): -- Make sure what is happening is a soccer match The Trainer (~ the parallel programmer): -- Make sure my agents are performing “optimally” */ interpret appropriately on either side of the Atlantic

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 C ALCULUS OF C OMMUNICATING S YSTEMS CCS: Calculus of Communicating Systems [ Robin Milner, ’89 ]

C LAUS B RABRAND [ 22 ] S EMANTICS (Q1,’06) S EP 28, 2006 Concurrency and Communication Concurrency: Parallel processes (construction ‘ P|Q ’) Abstract away (physical) processors Abstract away diff. in real- vs pseudo-parallelism Communication: Process synchronization (aka. hand-shaking) Abstract away communication protocol Abstract away actual values passed

C LAUS B RABRAND [ 23 ] S EMANTICS (Q1,’06) S EP 28, 2006 Example: a process modelling a CS student: Interface: Process name: CS Input action(s):{ coke } Output action(s):{ coin, exercise } Behavior of the process described by a CCS program Process Interface exercise coin coke

C LAUS B RABRAND [ 24 ] S EMANTICS (Q1,’06) S EP 28, 2006 The Inactive Process: “ 0 ” The inactive process: (aka. “the zero process” or “the nil process”) Performs no action whatsoever! Note that it offers: the prototypical behavior of a deadlocked process (that cannot proceed any further in its execution) Example: 0 0

C LAUS B RABRAND [ 25 ] S EMANTICS (Q1,’06) S EP 28, 2006 Action Prefixing: “ .P ” Action Prefixing: Can perform action, , after which it behaves like process, P Example(s): Match: Complex match .P strike.0 take.strike.0

C LAUS B RABRAND [ 26 ] S EMANTICS (Q1,’06) S EP 28, 2006 Named Process: “ K ” Named Process: Behaves just like the (statically named) process, K Example(s): K Match = strike.0 CokeDisp1 = coin.coke.0 def

C LAUS B RABRAND [ 27 ] S EMANTICS (Q1,’06) S EP 28, 2006 Recursive Processes Recursive Processes (though naming) Example: Expanding the definition we get: Clock = tick.Clock def Clock = tick.Clock = tick.tick.Clock = tick.tick.tick. ….tick.Clock … …

C LAUS B RABRAND [ 28 ] S EMANTICS (Q1,’06) S EP 28, 2006 Non-deterministic Choice: “ P+Q ” Non-deterministic choice: Non-deterministic choice between processes P and Q Initially has the capabilities of both P and Q ; but performing an action from P, say, will pre-empt further execution of Q. Example: P+Q Disp = coin.(coke.Disp + sprite.Disp) def coke sprite or

C LAUS B RABRAND [ 29 ] S EMANTICS (Q1,’06) S EP 28, 2006 Parallel Composition: “ P|Q ” Parallel Composition: Any independent interleavings of processes P and Q Also: may communicate (hand-shake): process P using input action, a; process Q corresponding output action, a (or vice versa) Example: Student: Coke Machine: P|Q Stud = read.coin.coke.Stud def CokeM = coin.coke.CokeM def CokeM | Stud

C LAUS B RABRAND [ 30 ] S EMANTICS (Q1,’06) S EP 28, 2006 Parallel Composition (cont’d) Stud | CokeM (Stud | CokeM) | Stud (Stud | CokeM) | CokeM StudCokeM [ > ] read coke coin coke

C LAUS B RABRAND [ 31 ] S EMANTICS (Q1,’06) S EP 28, 2006 Restriction: “ P\a ” Restriction (private name): Behaves just like P, except cannot make a or a actions (except within P ) Reminiscent of local variables (in private scope) Example: P\a (Stud | CokeM) \ coin \ coke ((Stud | CokeM) \ coin \ coke) | Stud

C LAUS B RABRAND [ 32 ] S EMANTICS (Q1,’06) S EP 28, 2006 Action Relabelling: “ P[f] ” Action Relabelling: Behaves like P, except that actions are renamed according to action renaming function, f Permits parameterized reuse of processes Examples: P[f] VendingMachine = coin.item.VendingMachine CokeMachine = VendingMachine[coke/item] MarsMachine = VendingMachine[mars/item] def Note: relabel inputs to inputs (and corresponding outputs to outputs) def

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 S YNTAX FOR CCS

C LAUS B RABRAND [ 34 ] S EMANTICS (Q1,’06) S EP 28, 2006 Input, output (and internal) action Actions: Set of Channel Names (input) Set of Channel Co-Names (output) Special silent (invisible/internal) action tau Note: inputs and outputs are complementary: Communication: hand-shake on a and a only (no values) Metavariables: a  A  a = a a  L = A  A   Act = L  {  }

C LAUS B RABRAND [ 35 ] S EMANTICS (Q1,’06) S EP 28, 2006 CCS Syntax CCS Syntax: “0”// inaction “ .P ”// action prefix “ P+P ”// non-deterministic choice “ P|P ”// parallel composition “ P\a ”// restriction (private name) “ P[f] ”// action relabelling “ K ”// process variable P ::= 0 | .P | P+P | P|P | P\a | P[f] | K X = P, Y = Q, … def  a: f(a) = f(a)  f(  ) =  f:Act  Act … where Note: restrictions on f

C LAUS B RABRAND [ 36 ] S EMANTICS (Q1,’06) S EP 28, 2006 Alternative Syntax Alternative Syntax (that we will use): Abbreviate inaction termination: P for P.0 // obvious from context Parameterized sum:  i  I P i for P 0 + P 1 + … + P n Inactive process (as empty sum):  i  Ø P i for 0 Restriction (by set): P \ L for P \ a 1 \ … \ a n L={a 1,…,a n }

C LAUS B RABRAND [ 37 ] S EMANTICS (Q1,’06) S EP 28, 2006 Algebraic Operator Precedence 1. Restriction and relabelling “ P\L ” “ P[f] ” 2. Action prefixing “ .P ” 3. Parallel composition “ P|Q ” 4. Summation “ P+Q ” Q: How is “ R+a.P|b.Q\L ” then to be read ? A: “ R+((a.P)|(b.(Q\L))) ” ! tightest

C LAUS B RABRAND S EMANTICS (Q1,’06) S EP 28, 2006 SOS FOR CCS

C LAUS B RABRAND [ 39 ] S EMANTICS (Q1,’06) S EP 28, 2006 SOS for CCS Structural Operational Semantics: Q: why  (tau) in communication “ P|Q ” (instead of propagating a or a ) ?  ~ “the unobservable hand-shake” [ RES ] [ REN ] [ COM 1 ] [ COM 2 ] [ COM 3 ] [ ACT ] [ SUM ][ DEF ]

C LAUS B RABRAND [ 40 ] S EMANTICS (Q1,’06) S EP 28, 2006 Transition Diagram Transition Diagram: A visualization of a Labelled Transition System: Configurations annotated with processes (e.g. ) Transitions annotated with actions (e.g. ) a.0 | a.0 0 | a.0a.0 | 0 0 | 0 a a a a  a.0 | 0 a

C LAUS B RABRAND [ 41 ] S EMANTICS (Q1,’06) S EP 28, 2006 Example Derivation Assume: Consider: A = a.A (b.0|(A|a.0))[c/a]  ? def (b.0 | (A | a.0)) [c/a]  (b.0 | (A | a.0))  [ REN ] (A | a.0)  [ COM 2 ] A  a.A  [ COM 1 ] [ DEF ] [ ACT ] A = a.A def c a a a a [ RES ] [ REN ] [ COM 1 ] [ COM 2 ][ COM 3 ] [ ACT ] [ SUM ][ DEF ] c (b.0 | (A | a.0)) [c/a] (b.0 | (A | a.0)) (A | a.0) A A

C LAUS B RABRAND [ 42 ] S EMANTICS (Q1,’06) S EP 28, 2006 "Three minutes paper" Please spend three minutes writing down the most important things that you have learned today (now). After 1 day After 1 week After 3 weeks After 2 weeks Immediately

C LAUS B RABRAND [ 43 ] S EMANTICS (Q1,’06) S EP 28, 2006 What we have been through today Introduction to Part 2 Concurrency vs. Sequentiality CCS: "Calculus of Communicating Systems" By-example (one construction at a time) Syntax of CCS 7 linguistic constructions(!) Semantics of CCS 1 page(!) A Tale of two Coca-Cola Machines

C LAUS B RABRAND [ 44 ] S EMANTICS (Q1,’06) S EP 28, 2006 Next time: 10:15 Erik Meijer C# [Meeting Room] 11:15 Guy Steele Java [Big Auditorium] 12:15 – 13:50 (!) Semantics lecture