sequence of execution of high-level statements

Slides:



Advertisements
Similar presentations
ICE1341 Programming Languages Spring 2005 Lecture #13 Lecture #13 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Advertisements

Statement-Level Control Structures
CSCI 330: Programming Language Concepts Instructor: Pranava K. Jha Control Flow-II: Execution Order.
Control Structures Any mechanism that departs from straight-line execution: –Selection: if-statements –Multiway-selection: case statements –Unbounded iteration:
Chapter 8 Statement-Level Control Structures. 1-2 Chapter 8 Topics Introduction Selection Statements Iterative Statements Unconditional Branching Guarded.
CS 355 – PROGRAMMING LANGUAGES Dr. X. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 8 Topics Introduction Selection Statements Iterative.
(8.1) COEN Control Structures  Control structure general issues  Compound statements  Selectors (conditional structures) – single – two-way –
ISBN Chapter 8 Statement-Level Control Structures.
The Flow of Control Among Statements.  Selection Statements  Iterative Statements  Unconditional Branching  Guarded Commands.
ICE1341 Programming Languages Spring 2005 Lecture #14 Lecture #14 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Chapter 8 Statement-Level Control Structure. Introduction Levels of Control Flow: 1. Within expressions 2. Among program units 3. Among program statements.
ISBN Chapter 8 Statement-Level Control Structures.
ISBN Chapter 8 Statement-Level Control Structures.
ISBN Chapter 8 Statement-Level Control Structures.
Controlling Program Flows
Chapter 8 (Control Structure) Slide 1 Control Structures Control structures are used by the programmer to incorporate the desired sequence of execution.
Statement-Level Control Structures Sections 1-4
ISBN Chapter 8 Statement-Level Control Structures.
1 Chapter 8 Statement-Level Control Structures In Chapter 7, the flow of control within expressions, which is governed by operator associativity and precedence.
ISBN Lecture 08 Statement-Level Control Structures.
ISBN Chapter 8 Statement-Level Control Structures.
COMP4730/2002/lec8/H.Melikian Statement-Level Control Structures Introduction Compound Statements Selection Statements Iterative Statements Unconditional.
Statement-Level Control Structures
1 Statement-Level Control Structures Levels of flow control Control Statements 1. Sequence 2. Selection 3. Iteration Unconditional branching Guarded commands.
Structure of Programming Language
ISBN Chapter 8 Statement-Level Control Structures Sections 1-4.
PLLab, NTHU,Cs2403 Programming Languages Expression and control structure Kun-Yuan Hsieh Programming Language Lab., NTHU.
Control Structures Programs have 4 basic control structures:
ISBN Chapter 8 Statement-Level Control Structures.
Chapter 8 Chapter 8 Control Structures. Control Structures  A control structure is a control statement and the statements whose execution it controls.
ISBN Chapter 8 Statement-Level Control Structures.
1 CS Programming Languages Class 11 September 26, 2000.
ㅎㅎ logical operator if if else switch while do while for Third step for Learning C++ Programming Repetition Control Structures.
第八章 敘述層級的控制結構 (Statement-Level Control Structures)
CSI 3120, Control, page 1 Control statements Simple statements Basic structured statements Sequence Selection Iteration The jump statement.
Chapter 8: Statement-Level Control Structures
Control Structures sequence of execution of high-level statements.
8-1 Statement-Level Control Structures Introduction Selection Statements Iterative Statements Unconditional Branching Guarded Commands Conclusions.
C HAPTER 8 Statement-Level Control Structures. CCSB314 Programming Language C HAPTER 8 T OPICS Introduction Selection Statements Iterative Statements.
April 16, ICE 1341 – Programming Languages (Lecture #14) In-Young Ko Programming Languages (ICE 1341) Lecture #14 Programming Languages (ICE 1341)
Statement Level Flow of Control Iteration Structures Copyright © by Curt Hill.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter 7 Levels of Control Flow: 1. Within expressions 2. Among program units 3. Among program statements.
Chapter 15 JavaScript: Part III The Web Warrior Guide to Web Design Technologies.
1 Iterative Statements Repeated execution of a (compound) statement by iteration or recursion –Iteration is statement level –Recursion is unit-level control.
Statement-Level Control Structures
Chapter 8 © 2002 by Addison Wesley Longman, Inc Introduction - Levels of Control Flow: 1. Within expressions 2. Among program units 3. Among program.
W E E K F I V E Statement-Level Control Structures.
LECTURE 18 Control Flow. CONTROL FLOW Sequencing: the execution of statements and evaluation of expressions is usually in the order in which they appear.
W E E K F I V E Control Flow. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Chapter 8 Topics Introduction Selection Statements Iterative Statements.
Why Repetition? Read 8 real numbers and compute their average REAL X1, X2, X3, X4, X5, X6, X7, X8 REAL SUM, AVG READ *, X1, X2, X3, X4, X5, X6, X7, X8.
Chapter 8 Statement-Level Control Structures. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 8 Topics Introduction Selection Statements.
Chapter 8 Statement-Level Control Structures. 2 Chapter 8 Topics  Introduction  Selection Statements  Iterative Statements  Unconditional Branching.
Def: A control structure is a control statement and
8.1 Introduction - Levels of Control Flow: 1. Within expressions
Dr. Vamsi Paruchuri University of Central Arkansas
Statement-Level Control Structures
Chapter 8: Control Structures
Statement-Level Control Structures
Statement-Level Control Structures
Control statements Simple statements Basic structured statements
Control Structures In Text: Chapter 8.
CSC215 Lecture Flow Control.
Control Structures Programs utilize 4 basic control structures
Statement-Level Control Structures
Chapter8: Statement-Level Control Structures April 9, 2019
Statement-Level Control Structures
Statement-Level Control Structures
CSC215 Lecture Control Flow.
Chapter 8: Statement Level Control Structures
REPETITION Why Repetition?
Presentation transcript:

sequence of execution of high-level statements Control Structures sequence of execution of high-level statements

Control is control of sequence of execution machine level – manipulate address register: (un)conditional branch high level branch to label  goto GOTO GO TO constrained branch: break high level: selection, iteration

Control by branching - FORTRAN IF(X .EQ. Y) X=X+1 IF(X .EQ. Y) GO TO 100 << ‘else’ statements >> GO TO 200 100 CONTINUE (dummy statement) << ‘then’ statements >> 200 CONTINUE << rest of program >>

Control by branching - FORTRAN IF(X-Y) 10,10,20 10 CONTINUE << statements for X<=Y GO TO 30 20 CONTINUE << statements for X>Y >> 30 CONTINUE << rest of program >>

Statement labels integers: FORTRAN, Pascal identifiers as constants: ALGOL, C variables! PL/1

The ‘goto’ debate: is branching needed? powerful: only control needed easy to abuse: readability, reliability suffer ‘goto’ unnecessary (Böhm and Jacopini, 1966) but most languages retain limited (unlabelled) branching – e.g., break

Top-down structured programming 1975 flow chart model: no goto 3 flow structures -sequence -if-then-else (selection) -do-while (iteration) boolean expr statement

Selection: either / or how many alternatives: 1 do something or nothing 2 if then else 3 IF (X-Y) 10,20,30 many switch, nested IF, COND (LISP) variations on the selection structure

Selection design decisions - 1 control of multiple statements in the control statement if (condition) then <statements> else endif compound statement / block

Selection design decisions - 1 control of multiple statements in the control statement  compound statement / block if (condition) if (condition) <statement> { <statements> else } <statement> else { <statements> }

Selection design decisions - 2 nesting selection – syntax and logic syntax – use block or control structure if (sum==0) if (count==0) then result = 0; endif; else result = 1; convention/rule

Selection design decisions - 2 nesting selection – syntax and logic syntax – use block or control structure convention/rule java, etc if (sum==0) //p.347 ? if (count==0) result = 0; else result = 1;

Multiple selection many variations FORTRAN computed goto is multiple branch GO TO (10,20,30,40,50,60), X^^2+Y case / switch model (independent selections) design decisions default case allowed/ignored? branch after section nested ifs (dependent selections) guarded statements

Multiple selection - 1 GO TO (10,20,30,40,50,60), X^^2+Y FORTRAN computed goto is multiple branch GO TO (10,20,30,40,50,60), X^^2+Y label list computed index semantics: compute index if index < 1 or > max(6), go to next statement go to label at index location in label list

Multiple selection - 2 switch/case model

Multiple selection - 3 using if Ada: if (condition) <stmt> elsif (condition) else LISP (COND ((condition)(value)) ((condition)(value)) ((condition)(value)) ( T (value))) 1 2 1 3 4 2 3 4 1 2 3 4

Multiple selection - 4 guarded statements – Dijkstra evaluate all conditions: none true – error one true – do statement many true – select statement at random if <condition> -> <statement> [] <condition> -> <statement> fi

Iteration: repetition of statements control by counter - for loop control by data (by logic) - while loop number of executions: 0 or more - pretest at beginning of loop body 1 or more - posttest at end of loop body branching models of repetition

Counter controlled loops developed with array indexing counter (loop variable) parameters start, stop, stepsize

Counter controlled loops design decision parameters computed when once or every execution? x = 10; do I = 0 to x x = x - 1 11 executions or 6 executions

Counter controlled loops design decisions: loop variable type, scope and value x = 0; I = 100; do I = 1 to 10 by 3 begin x = x + I; I = I - 1; print I end; print I, x;

Counter controlled loops FORTRAN DO loop posttest, parameters evaluated once, number of executions predetermined, loop variable retains last value DO 100 K = 1, 10, 2 << body >> 100 CONTINUE

Generalizing the counter start, stop, step - FORTRAN sequence, index expression & condition, “all of the above” - ALGOL for i = 4,5,6 i*10 while i,10000, 12, 14 step 10 until 25 do simple counting – Ada, Pascal expressions – C,C++,java for (<expr1>,<expr2>,<expr3>) <statement>

Logical control design issue: pretest or posttest? most languages have ‘while’ pretest loop posttest: Pascal C sum := 0; sum = 0; repeat do sum := sum + 15 sum += 15; until (sum > 100); while (sum <= 100);

Constrained branching break switch statement programmer control of loop when to exit (between start and end) branch to end or branch out orthogonality – separate repetition (infinite loop) from branching out