Sequence Control - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Sequence Control

Description:

Structures used between statements or groups of statements, such as conditional , iteration. ... that a wrong rule or fact is used, then an alternative (if any) ... – PowerPoint PPT presentation

Number of Views:1129
Avg rating:3.0/5.0
Slides: 37
Provided by: marjans
Category:
Tags: control | fact | sequence

less

Transcript and Presenter's Notes

Title: Sequence Control


1
Sequence Control
  • Chapter 6

2
  • Control structures the basic framework within
    which operations and data are combined into
    programs.
  • Sequence control
  • data control

3
  • Sequence control the control of the order of
    execution of the operations (Primitive, user
    defined).
  • Data control the control of the transmission of
    data among the subprograms of a program.

4
sequence control
  • Structures used in expressions (and thus within
    statements) such as precedence rules ,
    parentheses.
  • Structures used between statements or groups of
    statements, such as conditional , iteration.
  • Structures used between subprograms, such as
    subprograms calls , coroutines.

5
  • Implicit sequence control (default) defined by
    the language .
  • Explicit sequence control defined by the
    programmer.

6
6.2. Sequence with arithmetic expressions
  • R(-BSQRT(B2-4AC))/(2A)
  • 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
  • Tree-structure representation (p.240, fig. 6.1.)
  • syntax for expression
  • prefix notation no parentheses
  • postfix notation no parentheses
  • infix notation
  • semantics for expressions
  • evaluation of expressions (p.243)

8
Semantics for expressions
  • Hierarchy of operations (precedence rules) p.245
  • Associativity (left to right ,right to left)
  • p.245,246

9
Execution-Time Representation
  • Machine code sequences.
  • tree structures.
  • prefix or postfix form.

10
Evaluation of tree representation of expressions
  • Problems
  • uniform evaluation rules
  • Side effects
  • error conditions
  • Short-circuit boolean expressions

11
uniform evaluation rules
  • Eager evaluation rule first evaluate the
    operands (order is not important). P.250
  • lazy evaluation rule never evaluate the
    operands first.
  • Fig. 6.4. Z(Xo?YY/X)

12
  • Z(X0?YY/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
  • 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
Side effects
  • afun(x)a
  • evaluate each term in sequence
  • evaluate a only once
  • call fun(x) before evaluating a

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
error conditions
  • Overflow, divide by zero.
  • Solutions varies from language to language and
    implementation to implementation.

17
Short-circuit Boolean expressions
  • If ((A0)(B/Agtc))
  • while ((IltUB)(VIgtc))
  • in many languages both operands are evaluated
    before the Boolean operation is evaluated.
  • Solution in Ada, explicitly
  • and then , or else

18
6.3. Sequence with non-arithmetic expressions
  • Pattern matching
  • term rewriting
  • unification
  • backtracking

19
Pattern matching
  • Pattern matching by string replacement (in
    SNOBOL4 )
  • A-gt 0A0 1A1 0 1
  • 00100
  • A1 matches the center 1
  • A2 matches 0A10
  • A3 matches 0A20

20
  • In Prolog, a relation as a set of n-tuples,
  • specify known instances of these relations
    (called facts),
  • other instances can be derived.

21
  • ParentOf(John,Mary).
  • ParentOf(Susan,Mary).
  • ParentOf(Bill,John).
  • ParentOf(Ann,John).
  • ParentOf(X,Mary)
  • ParentOf(X,Mary), ParentOf(Y,Mary), not(XY)

22
  • Building relations out of other relations,
  • GrandparentOf(X,Y)- ParentOf(X,Z),
    ParentOf(Z,Y).

23
Term Rewriting
  • A restricted form of pattern matching
  • string a1a2 an
  • rewrite rule xgty
  • if xai , a1ai-1yan is a term rewrite of a1a2
    an.

24
Unification
  • Prolog uses unification, or the substitution of
    variables in relations, to pattern match.
  • Determine if the query has a valid substitution
    consistent with the rules and facts in the
    database.

25
  • A rule
  • GrandparentOf(X,Y) - ParentOf(X,Z),
    ParentOf(Z,Y)
  • ParentOf(X,Mary) ParentOf(John,Y)
  • ParentOf(John,Mary) unifies it.

26
  • 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
6.4. Sequence control between statements
  • Basic statements
  • assignments (p. 265)
  • subprogram calls
  • I/O statements

28
Forms of statement-level sequence control
  • Composition
  • Alternation
  • Iteration

29
  • Explicit sequence control
  • goto
  • conditional
  • unconditional
  • break , continue (in C)

30
Structured programming design
  • Gotos advantages
  • hardware support
  • easy to use in small programs
  • familiar to older programmers(!!)
  • general purpose

31
  • 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
Structured Programming
  • hierarchical program design using only THE three
    structures.
  • Hierarchical Implementation like design.
  • No spaghetti code, textual sequence of statements
    like execution sequence.
  • groups of statements serve single purpose.

33
Structured sequence control
  • Compound statements
  • conditional statements
  • if (single-branch,multi-branch), case (p.274) .
  • Iteration statements

34
Iteration statements
  • Head and a body (p.276,277)
  • Simple repetition
  • repetition while condition holds
  • repetition while incrementing counter
  • infinite repetition
  • When is the termination test made?
  • When are the variables used in the statement
    ahead evaluated?

35
  • In C
  • simple counter from 1 to 1o
  • for(I1Ilt10I)body
  • infinite loop
  • for()body
  • counter with exit condition
  • for(I1Ilt100NotEntfileI)body

36
Problems in structured sequence control
  • Multiple exit loops.
  • do-while-do.
  • exceptional conditions.
  • p. 278,279
Write a Comment
User Comments (0)
About PowerShow.com