sequence control n.
Skip this Video
Download Presentation
Sequence Control

Loading in 2 Seconds...

play fullscreen
1 / 36

Sequence Control - PowerPoint PPT Presentation

  • Uploaded on

Sequence Control. Chapter 6. Control structures : the basic framework within which operations and data are combined into programs. Sequence control data control. Sequence control: the control of the order of execution of the operations ( Primitive, user defined) .

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Sequence Control' - ganya

Download Now 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Control structures: the basic framework within which operations and data are combined into programs.
    • Sequence control
    • data control
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.
sequence control1
sequence control
  • Structures used in expressions (and thus within statements) such as precedence rules , parentheses.
  • Structures used between statements or groups of statements, suchas conditional , iteration.
  • Structures used between subprograms, such as subprograms calls , coroutines.
Implicit sequence control: (default) defined by the language .
  • Explicit sequence control: defined by the programmer.
6 2 sequence with arithmetic expressions
6.2. Sequence with arithmetic expressions
  • 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 ?
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)
semantics for expressions
Semantics for expressions
  • Hierarchy of operations (precedence rules) p.245
  • Associativity (left to right ,right to left)


execution time representation
Execution-Time Representation
  • Machine code sequences.
  • tree structures.
  • prefix or postfix form.
evaluation of tree representation of expressions
Evaluation of tree representation of expressions
  • Problems:
    • uniform evaluation rules
    • Side effects
    • error conditions
    • Short-circuit boolean expressions
uniform evaluation rules
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+(X==o?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
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.
side effects
Side effects
  • a*fun(x)+a
    • evaluate each term in sequence
    • evaluate a only once
    • call fun(x) before evaluating a
side effects1
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 .
error conditions
error conditions
  • Overflow, divide by zero.
  • Solutions varies from language to language and implementation to implementation.
short circuit boolean expressions
Short-circuit Boolean expressions

If ((A==0)||(B/A>c))

while ((I<=UB)&&(V[I]>c))

  • in many languages both operands are evaluated before the Boolean operation is evaluated.
  • Solution in Ada, explicitly:
    • and then , or else
6 3 sequence with non arithmetic expressions
6.3. Sequence with non-arithmetic expressions
  • Pattern matching
    • term rewriting
  • unification
  • backtracking
pattern matching
Pattern matching
  • Pattern matching by string replacement (in SNOBOL4 ):

A-> 0A0 | 1A1 | 0 | 1


A1 matches the center 1

A2 matches 0A10

A3 matches 0A20

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





ParentOf(X,Mary), ParentOf(Y,Mary), not(X=Y)

Building relations out of other relations,

GrandparentOf(X,Y):- ParentOf(X,Z), ParentOf(Z,Y).

term rewriting
Term Rewriting
  • A restricted form of pattern matching
    • string: a1a2 …an
    • rewrite rule x=>y
    • if x=ai ,a1…ai-1y…an is a term rewrite of a1a2 …an.
  • 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.
A rule:
    • GrandparentOf(X,Y) :- ParentOf(X,Z), ParentOf(Z,Y)
    • ParentOf(X,Mary) = ParentOf(John,Y)
    • ParentOf(John,Mary) unifies it.
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.
6 4 sequence control between statements
6.4. Sequence control between statements
  • Basic statements
    • assignments (p. 265)
    • subprogram calls
    • I/O statements
forms of statement level sequence control
Forms of statement-level sequence control
  • Composition
  • Alternation
  • Iteration
Explicit sequence control
    • goto
      • conditional
      • unconditional
    • break , continue (in C)
structured programming design
Structured programming design
  • Gotos advantages:
    • hardware support
    • easy to use in small programs
    • familiar to older programmers(!!)
    • general purpose
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
structured programming
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.
structured sequence control
Structured sequence control
  • Compound statements
  • conditional statements
    • if (single-branch,multi-branch), case (p.274) .
  • Iteration statements
iteration statements
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?

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}
problems in structured sequence control
Problems in structured sequence control
  • Multiple exit loops.
  • do-while-do.
  • exceptional conditions.

p. 278,279