Download presentation
Presentation is loading. Please wait.
Published byCornelius Marshall Modified over 9 years ago
1
Sequence Control Chapter 6
2
2 l Control structures: the basic framework within which operations and data are combined into programs. Sequence control data control
3
3 l Sequence control: the control of the order of execution of the operations ( Primitive, user defined). l Data control: the control of the transmission of data among the subprograms of a program.
4
4 sequence control l Structures used in expressions (and thus within statements) such as precedence rules, parentheses. l Structures used between statements or groups of statements, such as conditional, iteration. l Structures used between subprograms, such as subprograms calls, coroutines.
5
5 l Implicit sequence control: (default) defined by the language. l Explicit sequence control: defined by the programmer.
6
6 6.2. Sequence with arithmetic expressions l R=(-B+SQRT(B**2-4*A*C))/(2*A) 15 separate operations can the two references to the value of B and A be combined? what order to evaluate the expression to minimize the temporary storage ?
7
7 l Tree-structure representation (p.240, fig. 6.1.) l syntax for expression prefix notation no parentheses postfix notation no parentheses infix notation l semantics for expressions evaluation of expressions (p.243)
8
8 Semantics for expressions l Hierarchy of operations (precedence rules) p.245 l Associativity (left to right,right to left) p.245,246
9
9 Execution-Time Representation l Machine code sequences. l tree structures. l prefix or postfix form.
10
10 Evaluation of tree representation of expressions l Problems: uniform evaluation rules Side effects error conditions Short-circuit boolean expressions
11
11 uniform evaluation rules l Eager evaluation rule: first evaluate the operands (order is not important). P.250 l lazy evaluation rule: never evaluate the operands first. Fig. 6.4. Z+(X==o?Y:Y/X)
12
12 l Z+(X=0?Y:Y/X) pass the operands (or at least the last two operands) to the conditional operation unevaluated an let the operation determine the order of evaluation. Passing parameters by value or by name
13
13 l No simple evaluation rule In LISP: functions are split into two categories, receives evaluated operands receives unevaluated operands In SNOBOL4: programmer-defined operations: receives evaluated operands, language-defined operations: receives unevaluated operands.
14
14 Side effects l a*fun(x)+a evaluate each term in sequence evaluate a only once call fun(x) before evaluating a
15
15 Side effects solutions: side effects should be outlawed in expressions, language definition clears the order of evaluation, cause optimization impossible, ignore the question, decided by implementer.
16
16 error conditions l Overflow, divide by zero. l Solutions varies from language to language and implementation to implementation.
17
17 Short-circuit Boolean expressions If ((A==0)||(B/A>c)) while ((I c)) l in many languages both operands are evaluated before the Boolean operation is evaluated. l Solution in Ada, explicitly: and then, or else
18
18 6.3. Sequence with non- arithmetic expressions l Pattern matching term rewriting l unification l backtracking
19
19 Pattern matching l Pattern matching by string replacement (in SNOBOL4 ): A-> 0A0 | 1A1 | 0 | 1 00100 A 1 matches the center 1 A 2 matches 0A 1 0 A 3 matches 0A 2 0
20
20 l In Prolog, a relation as a set of n-tuples, l specify known instances of these relations (called facts), l other instances can be derived.
21
21 ParentOf(John,Mary). ParentOf(Susan,Mary). ParentOf(Bill,John). ParentOf(Ann,John). ParentOf(X,Mary) ParentOf(X,Mary), ParentOf(Y,Mary), not(X=Y)
22
22 l Building relations out of other relations, GrandparentOf(X,Y):- ParentOf(X,Z), ParentOf(Z,Y).
23
23 Term Rewriting l A restricted form of pattern matching string: a 1 a 2 …a n rewrite rule x=>y if x=a i, a 1 …a i-1 y…a n is a term rewrite of a 1 a 2 …a n.
24
24 Unification l Prolog uses unification, or the substitution of variables in relations, to pattern match. l Determine if the query has a valid substitution consistent with the rules and facts in the database.
25
25 l A rule: GrandparentOf(X,Y) :- ParentOf(X,Z), ParentOf(Z,Y) ParentOf(X,Mary) = ParentOf(John,Y) ParentOf(John,Mary) unifies it.
26
26 l In Prolog : Queries are unified with rules or with facts in the database until true results. If false results, it means that a wrong rule or fact is used, then an alternative (if any) must be tried.
27
27 6.4. Sequence control between statements l Basic statements assignments (p. 265) subprogram calls I/O statements
28
28 Forms of statement- level sequence control l Composition l Alternation l Iteration
29
29 l Explicit sequence control goto conditional unconditional break, continue (in C)
30
30 Structured programming design l Gotos advantages: hardware support easy to use in small programs familiar to older programmers(!!) general purpose
31
31 l Gotos disadvantages: lack of hierarchical program structure there is no one-in, one-out control structure spaghetti code (program text, execution order) groups of statements serve multiple purposes
32
32 Structured Programming l hierarchical program design using only THE three structures. l Hierarchical Implementation like design. l No spaghetti code, textual sequence of statements like execution sequence. l groups of statements serve single purpose.
33
33 Structured sequence control l Compound statements l conditional statements if (single-branch,multi-branch), case (p.274). l Iteration statements
34
34 Iteration statements Head and a body (p.276,277) l Simple repetition l repetition while condition holds l repetition while incrementing counter l infinite repetition When is the termination test made? When are the variables used in the statement ahead evaluated?
35
35 l In C simple counter from 1 to 1o for(I=1;I<=10;I++){body} infinite loop for(;;){body} counter with exit condition for(I=1;I<=100&&NotEntfile;I++){body}
36
36 Problems in structured sequence control l Multiple exit loops. l do-while-do. l exceptional conditions. p. 278,279
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.