1 / 17

Sequence Control Syntax and Semantics

Sequence Control Syntax and Semantics. Jian Xu March 3, 2004 CS706, CAS McMaster. Imperative programming: describes computation in terms of program state and statements that change the state. Almost all hardware implementation is imperative.

crevan
Download Presentation

Sequence Control Syntax and Semantics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. Unconditional branch • FORTRAN • GOTO 21 • ASSIGN 21 to K; GOTO K • GOTO (n1,n2, …,np), I • COBOL • GOTO L1, L2, …, LnDEPENDING ON , I. • Pascal • GOTO statement labels • Ada • GOTO statement • exit & exit LOOP-LABEL

  4. Syntax - Conditional branch • FORTRAN • IF expr nneg, nzero, npos. • 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 • ifexprthen statements elsifexprthen statements … else statements end if;

  5. Semantics – conditional branch • Operational • Denotational • Axiomatic

  6. Semantics – conditional branch • Operational • Denotational • Axiomatic

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

  8. Semantics - case • Operational • Denotational • Axiomatic

  9. Semantics - case • Operational • Denotational • Axiomatic

  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 <condition>. • 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. Semantics – while loop • Operational • Denotational • Axiomatic

  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. 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. Semantics -subprogram • Operational • Denotational • Axiomatic

  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: C1 →C2 is monotonic if, x, y in C1, if x  y, then F(x)  F(y). • A function F: C1 →C2 is continuous if, for each chain x = x1,x2, … in C1, F(x) = F(xi). • <StateTrans, > is a cpo, where StateTrans is the set all state transformations f: State → State. • f1 f2 iff σf1 (σ) f2 (σ) and f1 (σ)=f2(σ) • If we understand function as set of mappings, then f1 f2 iff f1is a subset off2. • The bottom is the totally undefined function or empty set. • Thus, for a any chain f = f1,f2, … , f is simply the union f.

  16. Semantics - subprogram • First we need to show F1, …, Fn are continuous with respect to f1, …, fn. 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. 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.

More Related