Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sequence Control Syntax and Semantics Jian Xu March 3, 2004 CS706, CAS McMaster.

Similar presentations


Presentation on theme: "Sequence Control Syntax and Semantics Jian Xu March 3, 2004 CS706, CAS McMaster."— Presentation transcript:

1 Sequence Control Syntax and Semantics Jian Xu March 3, 2004 CS706, CAS McMaster

2 2 Imperative programming: describes computation in terms of program state and statements that change the state. Almost all hardware implementation is imperative. The program state is the contents of memory, and the statements are instructions. Higher-level imperative languages use variables and more complex statements. Support assignment, looping, conditional branching, and unconditional branching. FORTRAN, COBOL, Pascal, Ada

3 3 Unconditional branch FORTRAN –GOTO 21 –ASSIGN 21 to K; GOTO K –GOTO (n 1, n 2, …, n p ), I COBOL –GOTO L 1, L 2, …, L n DEPENDING ON, I. Pascal –GOTO statement labels Ada –GOTO statement –exit & exit LOOP-LABEL

4 4 Syntax - Conditional branch FORTRAN –IF expr n neg, n zero, n pos. –IF expr statement. –IF expr THEN statements ELSE IF expr THEN statements … ELSE statements END IF COBOL –IF expr statements ELSE statements Pascal –if expr then statement. Ada –if expr then statements elsif expr then statements … else statements end if;

5 5 Semantics – conditional branch Operational Denotational Axiomatic

6 6 Semantics – conditional branch Operational Denotational Axiomatic

7 7 Syntax - case Pascal case expr of const: statement; … const: statement end Ada case expr is when choice => statement; … when others => statement end

8 8 Semantics - case Operational Denotational Axiomatic

9 9 Semantics - case Operational Denotational Axiomatic

10 10 Syntax - loops FORTRAN Do label index = init-val, final-val, incr-val COBOL PERFORM L1 THRU Ln k TIMES PERFORM L1 THRU Ln UNTIL. Parcal for index := init-val to final-val do statement while expr do statement repeat statement until expr Ada loop statements end loop; for index in range loop statement end loop; while expr loop statement end loop;

11 11 Semantics – while loop Operational Denotational Axiomatic

12 12 Syntax - subprogram FORTRAN FUNCTION fun-nam (formal-par-lst) COBOL PERFORM L1 THRU Ln. Parcal function fun-name (var-lst:type): result-type; procedure proc-name (var-lst:type; var var-lst:type); Ada function fun-name (var-lst: in type): result-type is procedure proc-name (var-lst: in type; var-lst: out type; var-lst: in out type is

13 13 Semantics - subprogram Only 4 kinds of statement, namely assignment, sequential, conditional, and procedure call. All procedures are declared globally before use, formally, Procedure call do not allow argument passing mechanism. Recursive calls as well as mutual recursive calls are allowed.

14 14 Semantics -subprogram Operational Denotational Axiomatic

15 15 Concepts recall cpo is a partially ordered set satisfying (1) each chain has a least upper bound, (2) it has a bottom element. A function F: C 1 → C 2 is monotonic if,  x, y in C 1, if x  y, then F(x)  F(y). A function F: C 1 → C 2 is continuous if, for each chain x = x 1,x 2, … in C 1, F(  x) =  F(x i ). is a cpo, where StateTrans is the set all state transformations f: State → State. f 1  f 2 iff  σ f 1 (σ)  f 2 (σ)  and f 1 (σ)=f 2 (σ) If we understand function as set of mappings, then f 1  f 2 iff f 1 is a subset of f 2. The bottom is the totally undefined function or empty set. Thus, for a any chain f = f 1,f 2, …,  f is simply the union  f.

16 16 Semantics - subprogram First we need to show F 1, …, F n are continuous with respect to f 1, …, f n. This can be done by structure induction on statement S. Then we can define the least fix points as follows by generalized Tarski’s Theorem. We can prove the equivalence of these semantics by induction on the approximation steps k.

17 17 Remark - continuity If function f is continuous, we can approximate the function value of a least upper bound of a chain by the function values of all components of the chain. Say, π=  (3,3.1,3.14, …), f(π)=  (f(3),f(3.1),f(3.14), …). In λ calculus, we each expression denotes a function which can apply to any other. This imply that we need a so call reflexive domain, in the sense that the domain is isomorphic to its function space. The domain of continuous functions turns out to be a choice.


Download ppt "Sequence Control Syntax and Semantics Jian Xu March 3, 2004 CS706, CAS McMaster."

Similar presentations


Ads by Google