4
Editor: Ted G. Lewis Computer Science Dept. Oregon State University Softw are Review s~~~~~~~~~~~~~~~~~~~~~~Corvallis, OR 97331 Compmail+: t.lewis Software Reviews evaluates operating systems, applications, and utility software in widespread use. Reviews are not limited to technical descriptions of various packages-the economic and philosophical aspects of software systems are also e-xamined. Reviewsfrom readers are welcome, as are comments and opinions. Pleasesend all correspondence to Ted G. Lewis at the above address. Visual programming on the IBM PC ... now a reality! Abdenacer A. Moussaoui, Environment overview The main menu consists of an Edit Oregon State University Execution-Pascal is a single binary menu (the Editor), a File menu (the As a consultant for a computer lab file of 197K and requires 256K of main Filer), a Run menu (the Executor), a with Macintosh-Pascal as its only pro- memory. The diskette also includes 33K Self-demo, and a main menu help. gramming software, I have been hoping of resource files having an extension As the author states, "Execution- that one day I might have such a visual .DE, and four sample Pascal programs. Pascal is neither a compiler nor an inter- tool on an IBM PC. (I am an IBM The program loads in 4.80 seconds from preter. It is a virtual machine with an Turbo-Pascal fan.) Strangely enough, I a hard drive. (Turbo-Pascal takes 1.70 internal structure that reflects the con- recently received Execution-Pascal, a seconds; Macintosh-Pascal takes 13.40 structs of the source high-level language. visual programming environment pack- seconds.) It is a direct executor and may be age for the Pascal language running on The environment consists of a tree- regarded as a pure interpreter. " the IBM PC and its compatibles. structured menu system with two levels. The program stores standard Pascal source code only and supports most standard Pascal intrinsic functions. Execution-Pascal does support file pointer operations such as standard Pas- cal's "get" and "put," which are not Menu structure implemented in Turbo-Pascal. DOS A guided tour When I invoke Execution-Pascal, I get Here we are: , a logo screen with the author's stamp, Execution-Pascal "Yaohan Chu, version 2.0 September 85," and it is quite musical. Pressing Esc any key leads to a second screen that warns against illegal copying of the pro- r Main menu | gram. Finally, on the third screen I have the option of pressing the letter J to go directly to the main menu. This screen states that this version was specially pre- D E R F H pared for the University of Maryland. The first time through I decided not Self- Edit Run File Help to go to the main menu. I pressed a key demo menu menu menu message other than J and was prompted with a fourth screen which includes the Esc Esc Esc Esc Esc author's description of the program. (See ++ + + + ~~~~~~~~~~~~~~~box). The fifth screen is a built-in adver- tisement for the software. The sixth and - Press any key to the main menu. last screen before moving to the main menu is a diagram showing the hierar-- chical view of the software environment _____ ____ _____ ____ _____ ____ ____ _____ ____ _____ ____ ____ and how a user might step through the different menus (see Figure 1). I found Figure 1. Command structure of Execution-Pascal on IBM PC. this last screen very useful. 78 IEEE SOFTWARE

Software Review s~~~~~~~~~~~~~~~~~~~~~~Corvallis, · var loqp_one loop_two, lower_btnd upper_bounde inatger operations such as the text-block opera- 4: LOWEnBOUND := 1 2 UPPERBOUND

  • Upload
    lythien

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Editor: Ted G. LewisComputer Science Dept.Oregon State UniversitySoftware Review s~~~~~~~~~~~~~~~~~~~~~~Corvallis, OR 97331Compmail+: t.lewis

Software Reviews evaluates operating systems, applications, and utility software in widespread use. Reviews are notlimited to technical descriptions of various packages-the economic andphilosophical aspects ofsoftware systems arealso e-xamined. Reviewsfrom readers are welcome, as are comments andopinions. Pleasesendall correspondence to TedG. Lewis at the above address.

Visual programming on the IBM PC ... now a reality!Abdenacer A. Moussaoui, Environment overview The main menu consists of an EditOregon State University Execution-Pascal is a single binary menu (the Editor), a File menu (theAs a consultant for a computer lab file of 197K and requires 256K of main Filer), a Run menu (the Executor), a

with Macintosh-Pascal as its only pro- memory. The diskette also includes 33K Self-demo, and a main menu help.gramming software, I have been hoping of resource files having an extension As the author states, "Execution-that one day I might have such a visual .DE, and four sample Pascal programs. Pascal is neither a compiler nor an inter-tool on an IBM PC. (I am an IBM The program loads in 4.80 seconds from preter. It is a virtual machine with anTurbo-Pascal fan.) Strangely enough, I a hard drive. (Turbo-Pascal takes 1.70 internal structure that reflects the con-recently received Execution-Pascal, a seconds; Macintosh-Pascal takes 13.40 structs of the source high-level language.visual programming environment pack- seconds.) It is a direct executor and may beage for the Pascal language running on The environment consists of a tree- regarded as a pure interpreter. "the IBM PC and its compatibles. structured menu system with two levels. The program stores standard Pascal

source code only and supports moststandard Pascal intrinsic functions.Execution-Pascal does support filepointer operations such as standard Pas-cal's "get" and "put," which are not

Menu structure implemented in Turbo-Pascal.

DOS A guided tourWhen I invoke Execution-Pascal, I get

Here we are: , a logo screen with the author's stamp,Execution-Pascal "Yaohan Chu, version 2.0 September

85," and it is quite musical. PressingEsc any key leads to a second screen that

warns against illegal copying of the pro-

r Main menu | gram. Finally, on the third screen I havethe option of pressing the letter J to godirectly to the main menu. This screenstates that this version was specially pre-

D E R F H pared for the University of Maryland.The first time through I decided not

Self- Edit Run File Help to go to the main menu. I pressed a keydemo menu menu menu message other than J and was prompted with a

fourth screen which includes theEsc Esc Esc Esc Esc author's description of the program. (See

++ + + + ~~~~~~~~~~~~~~~box).The fifth screen is a built-in adver-tisement for the software. The sixth and

- Press any key to the main menu. last screen before moving to the mainmenu is a diagram showing the hierar--chical view of the software environment

_____ ____ _____ ____ _____ ____ ____ _____ ____ _____ ____ ____ and how a user might step through the

different menus (see Figure 1). I foundFigure 1. Command structure of Execution-Pascal on IBM PC. this last screen very useful.

78 IEEE SOFTWARE

Choosing any option from the mainmenu, or exitingfrom it, is alwaysaccompanied by musical notes. I findthis annoying, especially when workingat night.The menu-option labels are self-

explanatory, and a menu-sensitive helpoption is always present to restate theoption in a clearer manner (except forthe Edit menu, where no helo option isapparent).

A sample programI tried out the Self-demo option from

the main menu, and it led me throughthe four included sample programs.With this foretaste of the software'scapabilities, I decided to enter a sampleprogram. From the main menu the letterE took me to the Edit menu (Figure 2). Edit menu (char left) (line down) Home(to top of page) PgUp Delete-charThe editor, with its 13 commands, is a Commands: (char right) (line up) End(to end of page) PgDn Escape

stripped-down version of today's screen- F8(clear PM) F9(delete line) l0(display from lineoriented editors. For instance, it does 1: PROIM NESTEDFOR.LOOPS2: VAR LOQP_ONE LOOP_TWO, LOWER_BTND UPPER_BOUND e INatGERnot provide some essential file-editing 3: BEGINoperations such as the text-block opera- 4: LOWEnBOUND := 1 2 UPPERBOUND 2

5: WRITELN( 'BEFORE FOR-LOOP' ;tions (i.e., block deletion, moving, 6: FOR LO0P_NE = LOWER_BUND TO UPPER_BOUND DO

import, ~~~~~~~~7:FOR LOOP_TW0 := 1 TO 3 DOtryothe and export) found in WordStar 8: WRITELN( LOOPNE, LOOPdWOand Turbo-Pascal, or the "cut and 9: WRITELN( 'AFTER FOR-LOOP'paste" found in Macintoshr-Pascal. Nor 10: END main}does it provide string search-and-replaceoperations.

Despite these limitations, I easilytyped in the program in Figure 2 andexited to the main menu by pressing theEscape key. The editor did not prompt Comlmd: MSG:me to save. I thought I had to save fromthe File rmenu, so I moved there by _________________________________pressing F, and effectively a "store"1option was provided (Figure 3).

After I chose the "store" option and Figure 2 The esupplied it with a file name, I decided totry the D (directory) option to double-check whether my program was reallysaved to disk. The option prompted mefor the drive letter, so I typed C. Sur-prisingly I got the erroneous listing in File menu Load Store Display List-fileNames HelpFigure 3. I also tried drive letters A and Commarnds: Current-drive Print-program Escape

B, but Execution-Pascal did not seem torecognize A or B as legal drive letters. 2105376 1-00-96 4:0la,

2105376 1-00-96 4:01aI found out later that the problem was 2105376 1-00-96 4:01acaused by loading the program from the 2105376 1P00a96 4:0a

drive; it does not occur when loading2105376 1-00-96 4:01aC dieitdenoocuwhnoAig2105376 1-00-96 4:01a.from a floppy drive. (After experiencing 2105376 1:00:96 4:01a.this, I felt insecure using the "store" 2105376 1-00-96 4:01acommand on my 2JM-bytehard drive. 2105376 1-00-96 4:01aYou can always create Pascal sources 2105376 1:00:96 4:01a

using a favorite editor and then load 2105376 1-00-96 4:01a.them from the File menu. I use Side- 2105376 1-00-96 4:01a.

2105376 1-00-96 4:01akick, a memory-resident editor.) Any- 2105376 1-00-96 4:01laway, I was anxious to test my sample, so 2105376 1-00-96 4:01aI moved to the Run meniu by pressing 2157 1-00-96 41aEsc and then R. 2105376 1-00-96 4:01aOnce in the Run menu, pressing E Command:N MSG: Go on displaying (Y/N)?

will execute the whole program withouttracing through (see Figure 4), or press-ing X will execute only (i.e., similar torunning a program in most Pascalenvironments). Pressing 1, 2, or 5 will Figure 3. The filer.

July 1986 7

execute one, two, or five lines from the screen is pressing P to echo the tracing The third column shows the results ofcurrent line. Pressing L and then typing actions to the printer, a handy feature the execution of dataflow statementsa line number will execute to the speci- not provided by Macintosh-Pascal. such as assignment, read, and writefied line number. Pressing the letter I When you trace through a program, statements. (This column was not suffi-will allow me to execute -ts I input a Execution-Pascal splits the screen ciently visual compared with the textwhole new program. With this option horizontally into two tiled and static output window found in Macintosh-one must first clear the program from windows (Figure 5). The bottom line Pascal, which can be stretched to cOvermemory and start with a new one. displays the current neighboring lines of the entire screen.) The fourth and lastAnother option is pressing T, which the statement being traced, while the column shows the line number of the

allows me to execute until a certain upper window is divided into four dataflow statements being executed intoken is encountered (for example, exe- columns that scroll in unison. The first the third column.cute to the token "END"'). I found this column indicates the name of the pro- Using a combination of the Run-option quite useful for executing the gram or procedure being executed. The menu tracing commands, I obtained thewhole program with a trace, an option second shows the results of executing tracing tables in Figures 5 and 6.npt provided in the Run menu. An alter- the Boolean conditions, such as IFnative to tracing the program on the statements to indicate the control flow.

The acid testI also tested the infinite-loop sample

program (Figure 7). Execution-Pascalhandles it pretty well by providing theFl key, which will stop program execu-

Run menu Exec-without-trace Exec-to-Token EXec-only Print Help tion at any point in the tracing processCommands: Exec-l, 2-or-5-lines Exec-to-Line Back Clear

Exec-while-Input Stop-exec(El) Display Escape (Figure 8).

-___ Execution Output WindowBEFORE FOR-LOOP

1 ~~~~12 Limitations1 32 1 1 think Execution-Pascal should sup-2 22 3 port one of the two Extended Pascal

AFTE FOR-LOOP leaders, namely UCSD-Pascal or Turbo-1: PROGRAM NESTED.JOR_LOOPS Pascal, as the latter is becoming a2: VAR LOOP-ONE, LOOP-TWO, LOWER-BOUND, UPPER.._BOUND: INTEGER standard"; otherwise it will be of little

3 :BEGIN -64tnad;ohriei ilb fltl4: LOWER_BOUND = 1 ;UPPER_BOUND := 2 use to serious programmers.5: WRITELN( 'BFXORE FOR-LOOP' ;6: FCR LOOP-ONE := LOWER,BUND TO UPPERItBUND DO Execution-Pascal seems not to support7: FOR LP 0

L_ 1NE, LOOP_O ); tree-structured directories. That is, it8: WRITELN ( LOOPO0NE, LOOPJTW'JO)is9: WRITELN( 'AFTER FOR-LOOP' ) does not allow me to change or access

10: END . {main}program done directories other than the current directory.Command: MSG: I also felt that the editing facilities for

syntax errors that occur during execu-tion flow are quite poor. The program

Figure 4. The executor. prompts me to correct the mistake, butonly in a line-oriented manner; I cannotmove forward or backward. Thus, I haveto change context and move to the Edit-menu facilities provided by Execution-Pascal if I am to correct a mistakecaused by the preceding line, as in thecase of the famous forgotten Pascal

Run menu Exec-without-trace Exec-to-Token EXec-only Print HelpCommands: Exec-l,2-or-5-lines Exec-to-Line Back Clear semicolon.

Exec-while-Input Stop-exec (Fl) Display Escape Unlike Macintosh-Pascal, the programTrace Window Showing Pascal Execution

Prog/Proc/Func Name lBranch Condition lAssign/Irput/Output ILinel would not allow me to selectively traceINESTEIFORJL LOWEIRBOUND1l 4 I certain variables.I ~~~~~~~~~~IUPPERBOWUND=2 I4I

JWRITE:BEFORE FOR-LOOP 5 The visual feedback of execution flowF (1OPNE=)1 6 is sometimes misleading; unlikeFOR:(1,3) 7 Macintosh-Pascal, it always highlightsLOOP_TWO=1 WRITE: 1 8l IWRITE: 1 8 the statements of a For-loop structure,

1: PROGRAM NESTFD_FOR.,LOOPS U even if its body is going to be skipped.2: VAR LOOP-ONE, LOOP-TWO, LOWER-BOUND, UPPER-.BOUND: INTEGER eape p3: BEGIN For example: FOR i:= lwb TO upb DO...4: LOWER.IBOUND = 1 UPE&~BEOUND FOR-LOOP' ),=.......... where "lwb" is greater than "upb.5: WRITELN( 'BEFORE FOR-LOOP,' -

6: FOR LOOP-ONE := LOWER&BOUND TO UPPERBOUND DO When Execution-Pascal is directly7: FOR LOOP-TWO := 1 TO 3 DO8: WRITELN ( LOOP_ONE, LOOP_TWO ) executing a For-loop structure, it evalu-9:- WRITELN( 'AFTE FOR-LOOP' ) ;.............. ates the limits of the loigstatement

and prints something like FOR:(1l,5) inCommad: MSG: the middle tracing window. If similar

looping structures are nested, it indents_____ ____ ____ _____ ____ ____ ____ _____ ____ ____ _____ ____ ____ ____ each successive one. I still had a hard

time distinguishing which one was exe-Figure 5. One-line-at-a-time tracing, shown as line 8 executes. cuting. I feel that a label something like

80 IEEE SOFTWARE

FOR: <counter-variable-name> (115) |Trace Window Showing Pascal ExecutionFOR: cone-aibe-aProg/Proc/Func Name IBranch Condition IAssign/Input/Output ILinelwould be better. LOOPTWO=2 IWRITE: 1 8 IThe reference manual also states that IWRITE: 2 8I ~~~~~~~ILOOP-TW0=3 WRITE: 8

program text file size is currently limited WRITE: 3 88to 64K bytes and that text files are lim- jLFOOPONE=2 6ited to one. LOOP_TWO=l lWRITE: 2 8WIRITE: 1 8

Trace Window Showing Pascal ExecutionSoftware bugs IProg/Proc/Func Name IBranch Condition JAssign/Input/Output LineLOOPP_T`WO=1 WRITE:As I wrote several short test pro- LOOP TWO=2 WRITE: 1 8LW-W= WRITE: 2 8grams, I discovered a misinterpretation WRITE: 2 8

of the following looping statement: l LOOPTWO=3 WRITE: 3 8FOR i := TO5 DO..., which IWRITE:AFTER FOR-LOOP 9g| ~~~~~*************************************** ***************************************Execution-Pascal will execute indefinitely.Another bug is that after an error has

been found, it seems that an internalsoftware flag is not being reset. So evenif one corrects the error, the program Figure 6. View of the tracing window when line 9.executes.executes up to where the error used tobe, halts with a message "executionstopped," and states that the Fl key hasbeen pressed.

1 tested Execution-Pascal on twodifferent machines: the Leading Edge Run menu Exec-without-trace Exec-to-Token EXec-only Print HelpPC Model-M with 640K ofRAM running Commands: Exec-1,2-or-S-lines Exec-to-Line Back ClearIBMO PC-DOS Version 2.1, and the IBM Exec-while-Input Stop-exec (El) Display EscapePC AT with 512K of RAM running IBM 1: PROGAM WHILE-LOOP { acid-test }PC-DOS Version 3.1. The prograrm 2:

3: VARbehaved the same on both machines for 4: FOR_EVER BOOLEANall the cases tested. 5:

6: BEGIN {main}7:8: WRITELN( 'BEFORE WHILE-LOOP'9 :

10: FORILVER := TRUE

Documentation 12: WHILE EOR-EVER DOThe reference manual I received was 13: BEGIN

14: WRITELN( 'PLEASE STOP ME :-)'more than adequate. It explains step by 15: END; {while}step the different options of the soft- 16:

17: WRITELN( 'AFIER WHLE-LOOP'ware and the use of additional sample 18: END . {miain}Pascal programs included in the man-ual. The author even compares inter-preted, compiled, and direct executionof Pascal. I found this section very Figure 7. The infinite-loop sample program.interesting.

Overall impressionI feel that we ought to see more pro-

gramming tools like the Execution- Run menu Exec-without-trace Exec-to-Token EXec-only Print HelpPascal environment written for the IBM Commands: Exec-1, 2-or-5-lines Exec-to-Line Back: Clear

PC and PCcompatibles.It provides an Exec-while-Input, stop-exec (Fl) Diiplay EscapePC a'nd PC compatibles. It provides an Trace Window Showing Pascal Executionindispensable educational tool for lProg/Proc/Func Name lBranch Condition lAssign/Input/Output ILine

IWHILE:TRUE IWRITE:PLEASE STOP ME :- 14beginners and a very sophisticated I)debugging tool for experienced users as 1WRILE:TRUE IWRITE:PLEASE STOP ME :-I 14

1 Y~~Iwell. IWHILE:TRUE IWRITE:PLEASE STOP ME :-I 14

I urge Pascal users who have not yet IWHILE:TRUE IWRITE:PLEASE STOP ME - 14experienced environments such as 10: FOR_EVR := TRUE

11:Execution-Pascal to try it out. I am 12: WHILE FOREVER DOquite sure the above-mentioned bugs 13: BEGIN

14: WRITELN( 'PLEASE STOP ME :-)'have been removed by now. Inquiries15 EN;{ leand mail orders can be sent to Dir-Exec 16:WRTEN 'AFTER WHILE-LOOP')Software, Inc., 6305 Contention Ct., 18: END . {main}Bethesda,i MD 20817. The 4K-byte edi-tion of Execution-Pascal version 2.0(diskette and manual) costs $29.95. Dir-Exec also provides a free trial diskette Figure 8. Fl key stops program execution at any point in the tracingfor Pascal instructors, process.

July 1986 81