Smalltalk Volume 2 Isuue 8

Total Page:16

File Type:pdf, Size:1020Kb

Smalltalk Volume 2 Isuue 8 The International Newsletter for Smalltalk Programmers June 1993 Volume 2 Number B hen Smalltalk emerged from the Xerox PARC labs in the early SMALLTALK 1980s, performance was a major issue. CPU speeds and memosy densities were both nearly two orders of magnitude lower than in ❑ today’s machines. The 1983 “green book,” SMALLTALK-80,BITS OF BENCHMARKING HISTORY, WORDS OF ADVICE, included many articles with detailed performance analysis.1 One chapter even studied the feasibility of implementing Smalltalk in hardware, namely in the Intel 432 chip. The Xerox Dorado worksta- REVISITED tion was the fastest Smalltalk machine, and implementations on chips such as the DEC VAX and Motorola 68000 did well to run at a small fraction of a Dorado. As the decade progressed, hardware got faster at a factor of nearly 10 every five By Bruce Samuelson years. Efficient techniques were employed for method look- up caches and for gen- eration-scavenging garbage collectors. By mid 1992, a midrange machine running ParcPlace Smslltalk performed several times faster than a Dorado, and a fast ma- chine a dozen times faster. One could buy a cheap PC running either ParcPlace or Digitalk Smalltalk faster than a Dorado. These developments raise the question of whether Smalltalk is now fast enough. Shouldn’t vendors concentrate on features rather than performance? Won’t hardware advances take care of any lingering problems with speed? This Contents: was, in fact, the position taken by a senior representative of one of the major Smalltalk vendors in a conversation with me last year. If Smalltalk were the only Features/Articles language, and if there were only one vendor, the answer might be yes. But 1 Smalltalk benchmarking revisited Smalltalk implementations are not only vying with one another for prominence, by Bruce Sarnueimn they are also competing with other languages. 4 Using Windowa resource DLLs from SmalltafldV PERFORMANCE OPTIMIZATION IN OTHER LANGUAGES by Wayne Beeton One reason C++ has become so popular is that it adds object extensions to C with- Columns out sacrificing much of C’s efficiency. This is a frequent theme in USENET news groups such as comp.lang.c++ and is commonly cited as a reason for using C++ 0 Smalltalk dioms: instead of Small talk. Smalltalk users cite Smalltalk’s consistent use of the object To accesaor or not to aocesaor? paradigm, productive development environment, rich class library, flexibility, and by Kmt Beok portability (for ParcPlace’s products) as reasons to choose it over C++. A language 9 GU/s: Using MS Hetp from with Smalltalk’s features that approaches C++’s speed would attract a larger com- within ViaualWOrks by Greg Hedy & Eric Smith munity of users. It this possible or only a dream? Perhaps the researchers who are most aggressively trying to demonstrate its pos- 10 T!ra beat ofconrp.hng.smalltalk: sibility is the Self group at Stanford University. Like Smalkalk, Self is a fully dynami- Setaandd~tionaries by Alan Knight cally typed language. It uses prototypes and delegation in place of classes and inheri- tance. Whereas other researchers have tried to achieve performance gains (and 13 Sneak prevkw: WindowBuilder Pro: new horizons perhaps other benefits) by adding strong typing to Smalltalk, the Self group is seeing by Eric C\ayberg & S. Sni5har how far they can push the performance envelope by using various compiler opti- Departments mization techniques without sacrificing type flexibility. They have pushed the envelope quite far. An example of their results is de- 23 Roduct Announcements scribed in an article by Craig Chambers and David Ungar in the 00PSLA 91 con- mminud on page 16... TheSmalltalkReport I EDITORS’ Editors John Pugh and Paul White CORNER Carleton University & The Object Peopte John Pugh Paul White SIGS PUBUCAnONS Advisory Board Tom Atwod, O~ecl Design ver the past 24 months, we have often discussed Smalltalk’s move into the business world. GAy hch, Rational Both Digitalk and ParcPlace have spent a significant effort to not simply improve their ex- Gaorge Bosworth, Digilalk isting products, but instead to change their products to position Smalltalk as the best de- Brad Cox, Information Age Consulting Chuck Duff, Symantec Ovelopment tool for large organizations across all industries, To this end, both PARTS and Adele Goldberg, Parc~am Systems VisualWorks represent the next generation of products for their respective vendors, which Tom Love, Consultant attempt to make Smalltalk more accessible to the mass development market—and newer Bertrand Meyer, ISE Meilir Page-Jones, Waylmd Systems Smalltalk vendors are sure to arrive, Easel’s Enfin product is already having an impact on %sha Pratap, CenteLine Software the object-oriented market that is likely to grow as time goes on Bjama Strouetrup, AT&T SS11t-ah Recently, we have noted that Smalltalk is being talked about in arenas that would not Dave Thomaa, Objsct Technology Intwmatimal have been dreamed of before, One such place was a recent column in the April 19th issue rHE SMALLTALK RSPORT of Business Week in which Smalltalk is described as being an extremely successful devel- Edtirial Ward opment tool for many corporations including American Airlines, JP Morgan, and Citi- Iim Anderson, Digitalk Adele Goldberg, ParcPtace Sys(ems corp, and the list of these companies keeps growing. Reports such as these can be used as ?eed %Ilfips, Knowledge Syslems Corp, fodder for those of you who are still fighting to justify Smalltalk to your management. Mike Taylor, Digitalk In our feature article this month, Bruce Samuelson offers some benchmarks he has per- live Thomas, Object Technology Internadnnd formed for the various dialects of Smalltalk, This is a new arena for THE SMALLTALKRE- Columnists PORT,and we believe efficiency is an issue that many of you face “in the trenches.” Bruce <enf Sack, %st f3aM %ttware has been very active in recent months on Internet discussing this topic, and has invested a Iuanits Ewing, Diiialk 3eg Hendley, Know16dge Systems Corp. great deal of time in preparing this study, More important than the raw numbers he pre- =d Klimaa, h- Engineering In.. sents, he has many insightful comments concerning the implementation strategies of both 41an Knight, The Otjeci People ParcPlace and Digitalk. While not endorsing the numbers presented by Bruce, we strongly Eric Smith, Knmdedga Systems Corp. Rebecca Wrfs-Brock, Digikdk believe these types of studies are crucial to the further mainstreaming of Smalltalk. The debate over whether to use accessor methods has raged in the Smalltalk commu- SIGS Publidons Group, Inc. Richard P. Friedman nity since “the beginning of time. ” As Kent Beck points out in his column this month, this Founder & Group Publisher one question has probably been debated more vehemently in Smablk labs than any Art/Production other style issue. In our own shop, the question of the appropriate use of accessors has Kristina Joukhader, Managing Editor been argued so much that it is now considered a taboo subject. We believe Kent has put Susan Culliin, Pilgrim Rasd, Ltd., Creatiw oimc6m Ksren Tongieh, Production Editor this debate in the right context, especially the comment that programmers will “do any- Gwen .%nchirico, Production Coordinator thing, given enough stress,” and suggest anyone responsible for the integrity of their cor- Robert Stewart, Computer System Cmmdinator porate libraries give these arguments attention. Circulation Stephen W. .Smde, Cititian Mmager This month we have two columns that address the issue of GUI development using Ken Mard, FuhillmentManager Smalltalk. First, Greg Hendley and Eric Smith return this month with their GUI column, Marketing/Advertising getting you started with integrating VisualWorks with Microsofi’s Help facility. Second, James O. Spencer, Dirdor of Business Devetcpmmt Eric Clayberg and S. Sridhar take a first look at WindowBuilder Pro, the next generation Jason Weiskopf, AdverSsii Mgr-+ast CaastKanada Holly Meintzer, Admrdsing Mgr—West CeasUEumpe of the well-known WindowBuilder product originally released by Cooper and Peters. Helen Newling, Recruitment Sates Manager Alan Knight’s look at comp.lang.smalltalk takes him into a review of the implementa- Sarah Hamitton, Promotions Manager-Publidions tion of sets and dictionaries. In doing so, he studies how well (or not well) abstracted the @en Polner, promotionsGaqhc ,4&t Administration implementation of these reusable data types is and some suggestions for improving them, David Chatterpaul, Accounting Manager Also this month, Wayne Beaten describes an implementation of a mechanism for storing Jsmes Amenuvor, Bookke+er and managing DLLs for Smalltalk/V for windows. Dylan Smith, Special Assistant to the Publisher Claire Johnstcm, Cmkreme Manager Enjoy the issue! Cindy Baird, Conference Technical Manager Margherita R. Monck General Managw ■ SIGS The SmaUkdkRc o.-1(lSSN# 1056-7976] is published 9 Iimcs a year. every momh exccpl fur the MarlApr, July/Aug. and NOVIDCCcomhimd 1,(, Hll[:,\llll?d# issues.Publisbed\- y SItJS Publications C;roup, 588 ffroadw-ay,,New York, NY 10012 (2 12)274-LIMO, 0 Copyright 1993 hy SIGS Publicaliom, — — ————.—— Inc. All ri~ht, rcwrved. Reproduction of this nmtmial by electronic tmnsmisicm, Xernx m my mber rnctbod will bc Ircatcd asa willful vi.la- tinn .f [bc US Copyright faw and is flady prohibited. Makrial maybe reproduced with express~rmission from ~h.spubli~bcrs.Mailed First Class.Subscription rats I year, (9 is.mcs)dmnmtic, $65, Foreign and Canada, W), Single copy rice, 58.00. POSTMASTER Send .ddrtw %btishers 0[ JOURNALOF OBJECT-ORIENTEDPROGRAM. changesand suhs,criplion orders N,: I’111S,UALI.IAIK NFPONr, S“bscribcr Swviccs, OcpI. S,ML, P.Cl. L ,x 3000, Oenvil]c, NJ 07834. Submil m-ti- uING, OSIECT MAGAZINE, HOTLINE ON OBJECT.ORIENTED clc~ to the.f3d,t.rs at ?I Second Avenw OItawa, Ontario K] S 2H4, Cmada, For service on currem subscriptions call 800.783.4903. rECHNOLOGY,THE C++ REPOuI, THE SMALL1fiK RE!=URT, Printed m the Umted States.
Recommended publications
  • C++ Programming: Program Design Including Data Structures, Fifth Edition
    C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 5: Control Structures II (Repetition) Objectives In this chapter, you will: • Learn about repetition (looping) control structures • Explore how to construct and use count- controlled, sentinel-controlled, flag- controlled, and EOF-controlled repetition structures • Examine break and continue statements • Discover how to form and use nested control structures C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2 Objectives (cont'd.) • Learn how to avoid bugs by avoiding patches • Learn how to debug loops C++ Programming: From Problem Analysis to Program Design, Fifth Edition 3 Why Is Repetition Needed? • Repetition allows you to efficiently use variables • Can input, add, and average multiple numbers using a limited number of variables • For example, to add five numbers: – Declare a variable for each number, input the numbers and add the variables together – Create a loop that reads a number into a variable and adds it to a variable that contains the sum of the numbers C++ Programming: From Problem Analysis to Program Design, Fifth Edition 4 while Looping (Repetition) Structure • The general form of the while statement is: while is a reserved word • Statement can be simple or compound • Expression acts as a decision maker and is usually a logical expression • Statement is called the body of the loop • The parentheses are part of the syntax C++ Programming: From Problem Analysis to Program Design, Fifth Edition 5 while Looping (Repetition)
    [Show full text]
  • 7. Control Flow First?
    Copyright (C) R.A. van Engelen, FSU Department of Computer Science, 2000-2004 Ordering Program Execution: What is Done 7. Control Flow First? Overview Categories for specifying ordering in programming languages: Expressions 1. Sequencing: the execution of statements and evaluation of Evaluation order expressions is usually in the order in which they appear in a Assignments program text Structured and unstructured flow constructs 2. Selection (or alternation): a run-time condition determines the Goto's choice among two or more statements or expressions Sequencing 3. Iteration: a statement is repeated a number of times or until a Selection run-time condition is met Iteration and iterators 4. Procedural abstraction: subroutines encapsulate collections of Recursion statements and subroutine calls can be treated as single Nondeterminacy statements 5. Recursion: subroutines which call themselves directly or indirectly to solve a problem, where the problem is typically defined in terms of simpler versions of itself 6. Concurrency: two or more program fragments executed in parallel, either on separate processors or interleaved on a single processor Note: Study Chapter 6 of the textbook except Section 7. Nondeterminacy: the execution order among alternative 6.6.2. constructs is deliberately left unspecified, indicating that any alternative will lead to a correct result Expression Syntax Expression Evaluation Ordering: Precedence An expression consists of and Associativity An atomic object, e.g. number or variable The use of infix, prefix, and postfix notation leads to ambiguity An operator applied to a collection of operands (or as to what is an operand of what arguments) which are expressions Fortran example: a+b*c**d**e/f Common syntactic forms for operators: The choice among alternative evaluation orders depends on Function call notation, e.g.
    [Show full text]
  • While Statement in C
    While Statement In C EnricoIs Reg alwaysdisheartening deplete or his novel aspects when chagrined luminesced disputatiously, some crayfishes he orbits clump so temporizingly? grindingly. Solid Ring-necked and comose Bennet Brendan tarnishes never tensehalf-and-half his Stuttgart! while Thank you use a counter is a while loop obscures the condition which is evaluated to embed videos in while c program C while loops statement allows to repeatedly run at same recipient of code until a wrap is met while loop is empty most basic loop in C programming while loop. We then hand this variable c in the statement block and represent your value for each. While adultery in C Set of instructions given coil the compiler to night set of statements until condition becomes false is called loops. If it is negative number added to the condition in c language including but in looping structures, but is executed infinite loop! While Loop Definition Example & Results Video & Lesson. While talking in C Know Program. What is the while eternal in C? A while loop around loop continuously and infinitely until the policy inside the parenthesis becomes false money must guard the. C while and dowhile Loop Programiz. Programming While Loop. The widow while redeem in the C language is basically a post tested loop upon the execution of several parts of the statements can be repeated by reckless use children do-while. 43 Loops Applications in C for Engineering Technology. Do it Loop in C Programming with Examples Phptpoint. Statements and display control C Tutorials Cpluspluscom. Do while just in c example program.
    [Show full text]
  • Chapter 6 Flow of Control
    Chapter 6 Flow of Control 6.1 INTRODUCTION “Don't you hate code that's In Figure 6.1, we see a bus carrying the children to not properly indented? school. There is only one way to reach the school. The Making it [indenting] part of driver has no choice, but to follow the road one milestone the syntax guarantees that all after another to reach the school. We learnt in Chapter code is properly indented.” 5 that this is the concept of sequence, where Python executes one statement after another from beginning to – G. van Rossum the end of the program. These are the kind of programs we have been writing till now. In this chapter Figure 6.1: Bus carrying students to school » Introduction to Flow of Control Let us consider a program 6-1 that executes in » Selection sequence, that is, statements are executed in an order in which they are written. » Indentation The order of execution of the statements in a program » Repetition is known as flow of control. The flow of control can be » Break and Continue implemented using control structures. Python supports Statements two types of control structures—selection and repetition. » Nested Loops 2021-22 Ch 6.indd 121 08-Apr-19 12:37:51 PM 122 COMPUTER SCIENCE – CLASS XI Program 6-1 Program to print the difference of two numbers. #Program 6-1 #Program to print the difference of two input numbers num1 = int(input("Enter first number: ")) num2 = int(input("Enter second number: ")) diff = num1 - num2 print("The difference of",num1,"and",num2,"is",diff) Output: Enter first number 5 Enter second number 7 The difference of 5 and 7 is -2 6.2 SELECTION Now suppose we have `10 to buy a pen.
    [Show full text]
  • While and Do-While Loops
    While and Do-While Loops 15-110 Summer 2010 Margaret Reid-Miller Loops • Within a method, we can alter the flow of control using either conditionals or loops. • The loop statements while, do-while, and for allow us execute a statement(s) over and over. • Like a conditional, a loop is controlled by a boolean expression that determines how many times the statement is executed. E.g., You may want to calculate the interest paid on a mortgage for each year of the loan term. Summer 2010 15-110 (Reid-Miller) The while statement • The form of the while statement is while (<boolean_expression>) <statement> • If boolean_expression evaluates to true, then statement is executed. • Then, the boolean_expression is evaluated again. If it evaluates to true, statement is executed again. • This repetition continues until the boolean_expression evaluates to false. How is the while loop different from the if statement? Summer 2010 15-110 (Reid-Miller) The if Flowchart false boolean_expression true statement (body of loop) Summer 2010 15-110 (Reid-Miller) The while Flowchart false boolean_expression true statement (body of loop) Summer 2010 15-110 (Reid-Miller) A Example n = 5 while i output 0 Print n asterisks! i < n ? *! 1 int i = 0; ! i < n ? while (i < n) { ! ! **! System.out.print(“*”);! 2 i < n ? !i++;! ***! }! 3 i < n ? System.out.println();! ****! 4 i < n ? *****! 5 i < n ? ***** Summer 2010 15-110 (Reid-Miller) The Loop Control Variable • The variable i (known as the loop control variable) is used in three ways: it is initialized, tested, and updated.!
    [Show full text]
  • Chapter 5: Conditionals and Loops Lab Exercises
    Chapter 5: Conditionals and Loops Lab Exercises Topics Lab Exercises Boolean expressions PreLab Exercises The if statement Computing a Raise The switch statement A Charge Account Statement Activities at Lake LazyDays Rock, Paper, Scissors Date Validation Conditional Operator Processing Grades The while statement PreLab Exercises Counting and Looping Powers of 2 Factorials A Guessing Game Iterators & Reading Text Files Baseball Statistics The do statement More Guessing Election Day The for statement Finding Maximum and Minimum Values Counting Characters Using the Coin Class Drawing with loops and conditionals A Rainbow Program Determining Event Sources Vote Counter, Revisited Dialog Boxes Modifying EvenOdd.java A Pay Check Program Checkboxes & Radio Buttons Adding Buttons to StyleOptions.java Chapter 5: Conditionals and Loops 65 Prelab Exercises Sections 5.1-5.3 1. Rewrite each condition below in valid Java syntax (give a boolean expression): a. x > y > z b. x and y are both less than 0 c. neither x nor y is less than 0 d. x is equal to y but not equal to z 2. Suppose gpa is a variable containing the grade point average of a student. Suppose the goal of a program is to let a student know if he/she made the Dean's list (the gpa must be 3.5 or above). Write an if... else... statement that prints out the appropriate message (either "Congratulations—you made the Dean's List" or "Sorry you didn't make the Dean's List"). 3. Complete the following program to determine the raise and new salary for an employee by adding if ..
    [Show full text]
  • PYTHON LOOPS Rialspo Int.Co M/Pytho N/Pytho N Lo O Ps.Htm Copyrig Ht © Tutorialspoint.Com
    PYTHON LOOPS http://www.tuto rialspo int.co m/pytho n/pytho n_lo o ps.htm Copyrig ht © tutorialspoint.com There may be a situation when you need to execute a block of code several number of times. In g eneral, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on. Prog ramming lang uag es provide various control structures that allow for more complicated execution paths. A loop statement allows us to execute a statement or g roup of statements multiple times and following is the g eneral form of a loop statement in most of the prog ramming lang uag es: Python prog ramming lang uag e provides following types of loops to handle looping requirements. Click the following links to check their detail. Loop Type Description while loop Repeats a statement or g roup of statements while a g iven condition is true. It tests the condition before executing the loop body. for loop Executes a sequence of statements multiple times and abbreviates the code that manag es the loop variable. nested loops You can use one or more loop inside any another while, for or do..while loop. Loop Control Statements: Loop control statements chang e execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed. Python supports the following control statements. Click the following links to check their detail. Control Statement Description break statement Terminates the loop statement and transfers execution to the statement immediately following the loop.
    [Show full text]
  • Smalltalk Tutorial for Java Programmers!
    SmallTalk Tutorial for Java Programmers! SmallTalk Tutorial for Java Programmers! Giovanni Giorgi <[email protected]> Jan 2002 A small paper to teach yourself the incredible Smalltalk language! It's so easy, it's so fun! 1. Introduction ● 1.1 Revision history ● 1.2 Conventions used in this paper ● 1.3 Distribution Policy ● 1.4 Why Smalltalk? ● 1.5 Background Required 2. Why Smalltalk is so strange? (or a brief history of Smalltalk) ● 2.1 Download Right Now! ● 2.2 Hello world in Smalltalk ● 2.3 Big Numbers ● 2.4 Code Blocks ● 2.5 The while loop 3. Main Differences between Java and Smalltalk http://daitanmarks.sourceforge.net/or/squeak/squeak_tutorial.html (1 of 2) [1/7/2002 20:44:13] SmallTalk Tutorial for Java Programmers! ● 3.1 Java Versus Smalltalk ● 3.2 Types? No thank you!! ● 3.3 The Squeak base library compared with Java ● 3.4 The Smalltalk Code database ● 3.5 Multiple-Inheritance 4. Ending Words ● 4.1 Going on ● 4.2 Commercial and free products list ● 4.3 References http://daitanmarks.sourceforge.net/or/squeak/squeak_tutorial.html (2 of 2) [1/7/2002 20:44:13] SmallTalk Tutorial for Java Programmers!: Introduction 1. Introduction This paper will teach you the basics of Smalltalk80 language. This tutorial suites the needs of C and Java programmers. But the tutorial can be understanded by everyone knowing a bit of C and/or OOP concepts, as we'll see. Because I will refer a lot to other books and use a lot of technical terms, I'll try to enjoy you while reading.
    [Show full text]
  • C Programming Tutorial
    C Programming Tutorial C PROGRAMMING TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i COPYRIGHT & DISCLAIMER NOTICE All the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from tutorialspoint.com or this tutorial may not be redistributed or reproduced in any way, shape, or form without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws. This tutorial may contain inaccuracies or errors and tutorialspoint provides no guarantee regarding the accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site or this tutorial content contains some errors, please contact us at [email protected] ii Table of Contents C Language Overview .............................................................. 1 Facts about C ............................................................................................... 1 Why to use C ? ............................................................................................. 2 C Programs .................................................................................................. 2 C Environment Setup ............................................................... 3 Text Editor ................................................................................................... 3 The C Compiler ............................................................................................ 3 Installation on Unix/Linux ............................................................................
    [Show full text]
  • Iterating in Perl: Loops
    Iterating in Perl: Loops - Computers are great for doing repetitive tasks. - All programming languages come with some way of iterating over some interval. - These methods of iteration are called ‘loops’. - Perl comes with a variety of loops, we will cover 4 of them: 1. if statement and if-else statement 2. while loop and do-while loop 3. for loop 4. foreach loop if statement Syntax: - if the conditional is ‘true’ then the if(conditional) body of the statement (what’s in { between the curly braces) is …some code… executed. } #!/usr/bin/perl -w $var1 = 1333; Output? if($var1 > 10) 1333 is greater than 10 { print “$var1 is greater than 10\n”; } exit; if-else statement Syntax: -if the conditional is ‘true’ then execute if(conditional) the code within the first pair of curly { braces. …some code… } - otherwise (else) execute the code in else the next set of curly braces { …some different code… } Output? #!/usr/bin/perl -w 13 is less than 100 $var1 = 13; if($var1 > 100) { print “$var1 is greater than 100\n”; } else { print “$var1 is less than 100\n”; } exit; Comparisons that are Allowed - In perl you can compare numbers and strings within conditionals - The comparison operators are slightly different for each one - The most common comparison operators for strings: syntax meaning example lt Less than “dog” lt “cat” False! d > c gt Greater than “dog” gt “cat” True! d > c le Less than or equal to “dog” le “cat” False! d > c ge Greater than or equal to “dog” ge “cat” True! d > c eq Equal to “cat” eq “cat” True! c = c ne Not equal to “cat” eq “Cat”
    [Show full text]
  • Control Structures in Perl
    Control Structures in Perl Controlling the Execution Flow in a Program Copyright 20062009 Stewart Weiss Control flow in programs A program is a collection of statements. After the program executes one statement, it "moves" to the next statement and executes that one. If you imagine that a statement is a stepping stone, then you can also think of the execution flow of the program as a sequence of "stones" connected by arrows: statement statement 2 CSci 132 Practical UNIX with Perl Sequences When one statement physically follows another in a program, as in $number1 = <STDIN>; $number2 = <STDIN>; $sum = $number1 + $number2; the execution flow is a simple sequence from one statement to the next, without choices along the way. Usually the diagrams use rectangles to represent the statements: stmt 1 stmt 2 stmt 3 3 CSci 132 Practical UNIX with Perl Alteration of flow Some statements alter the sequential flow of the program. You have already seen a few of these. The if statement is a type of selection, or branching, statement. Its syntax is if ( condition ) { block } in which condition is an expression that is evaluated to determine if it is true or false. If the condition is true when the statement is reached, then the block is executed. If it is false, the block is ignored. In either case, whatever statement follows the if statement in the program is executed afterwards. 4 CSci 132 Practical UNIX with Perl The if statement The flow of control through the if statement is depicted by the following flow-chart (also called a flow diagram): if true ( condition) if-block false next statement 5 CSci 132 Practical UNIX with Perl Conditions The condition in an if statement can be any expression.
    [Show full text]
  • Computer Science 2. Conditionals and Loops
    COMPUTER SCIENCE COMPUTER SCIENCE SEDGEWICK/WAYNE SEDGEWICK/WAYNE PART I: PROGRAMMING IN JAVA PART I: PROGRAMMING IN JAVA Computer Science 2. Conditionals & Loops •Conditionals: the if statement Computer 2. Conditionals and loops •Loops: the while statement Science •An alternative: the for loop An Interdisciplinary Approach •Nesting R O B E R T S E D G E W I C K 1.3 KEVIN WAYNE •Debugging http://introcs.cs.princeton.edu CS.2.A.Loops.If Context: basic building blocks for programming Conditionals and Loops Control flow • The sequence of statements that are actually executed in a program. any program you might want to write • Conditionals and loops enable us to choreograph control flow. objects true boolean 1 functions and modules statement 1 graphics, sound, and image I/O false statement 2 statement 1 arrays boolean 2 true statement 2 conditionalsconditionals and loops statement 3 Math text I/O false statement 4 statement 3 primitive data types assignment statements This lecture: to infinity and beyond! Previous lecture: straight-line control flow control flow with conditionals and a loop equivalent to a calculator [ previous lecture ] [this lecture] 3 4 The if statement Example of if statement use: simulate a coin flip Execute certain statements depending on the values of certain variables. • Evaluate a boolean expression. public class Flip • If true, execute a statement. { • The else option: If false, execute a different statement. public static void main(String[] args) { if (Math.random() < 0.5) System.out.println("Heads"); Example: if (x > y) max = x; Example: if (x < 0) x = -x; else else max = y; System.out.println("Tails"); % java Flip } Heads } true true x < 0 ? false x > y ? false % java Flip Heads x = -x; max = x; max = y; % java Flip Tails % java Flip Heads Replaces x with the absolute value of x Computes the maximum of x and y 5 6 Example of if statement use: 2-sort Pop quiz on if statements Q.
    [Show full text]