The Best of Creative Computing Volume 2 (published 1977)
Beyond BASIC (Interactive Systems, Debug Programs, Text Editors, Summary, Table of Key Systems Programs)
wants to execute his program again, he can merely load it and execute it,
without going through the time consuming translation phase. Compilation
therefore offers the potential of time-saving efficiency.
INTERACTIVE SYSTEMS …
Interpreters generally offer an advantage of their own in that they may be
"interactive." This allows the programmer to sit at a teletype, for instance,
with the interactive BASIC interpreter in control, and get immediate "feedback"
from the interpreter as he enters his BASIC statements. Errors can be
immediately identified by the interpreter and corrected by the programmer. Also,
the results of executing each BASIC statement can be available immediately, thus
making the system react to the user as if it were a sophisticated calculator.
For a new program, it may therefore be possible to get an answer faster using an
interpreter than using a compiler, since the interpreter does not have to go
through the separate translate and execute phases.
DEBUG PROGRAMS …
A special type of interactive program often available for mini's and micro's is
the debug program, sometimes called a monitor.5 A debug program is used to aid
in debugging a machine language program. It typically permits the programmer to
insert "break points" in his program which will cause the program to pause in
its execution and then allow the programmer to examine the contents of key
registers and memory locations. In this way, the programmer can walk through the
execution of his program and if there is a "bug" in the program, he can isolate
it (hopefully).
5 The use of the term "monitor" is somewhat different from the OS type "monitor"
TEXT EDITORS ...
Other programs besides interpreters may be interactive. One of the most common
is a "text editor" which can be used to help create a new program or "file." If
a BASIC compiler were available through a time-sharing system, an interactive
text editor could be used to build or create a BASIC program using an on-line
terminal; the text editor would permit the programmer to make changes such as
adding or deleting individual characters or whole lines. When the programmer is
satisfied with his program, he could then ask the system to compile it and
execute it. The software performing the actual time-sharing operations serving
many users simultaneously is essentially a more complex type of operating system
as we have previously discussed.
SUMMARY …
We have now completed a very general introductory overview of systems software.
The reader should now have a reasonable understanding of the various types of
programs involved, the functions they perform, and how they relate to one
another. The types of systems programs available and the functions they perform
are summarized in the accompanying table.
TABLE OF KEY SYSTEMS PROGRAMS
Systems Program
Name Function Input(s) Output(s) Comments
Compiler Translate HOL HOL Source Listing. Machine Object Program
Program to Machine Program Language Object may be
Language Program Program punched out or
loaded into
memory
Assembler Translate Assembly Assembly Language Listing. Machine Object Program
Language Program Source Program Language Object may be
to Machine Language Program punched out or
Program loaded into
memory
Interpreter "Executes" HOL HOL Source Problem Solution Output is only
Program Program what the
source program
produces.
Interactive
Loader Loads Machine Machine Language Machine Language Loaded into
Language Programs Object Program (s) programs ready to memory
be executed
Text Editor Creates or edits files Source Programs Listing or
copies Interactive
data, etc. of files when
requested
Debug Facilitates isolation Commands to Responses to Runs along with
Program of program bugs Debug Program commands, e.g. user's object
register contents, program to be
memory contents, debugged
etc.
Operating Overall control of Job Control Language Responses to JCL Schedules
jobs,
System computer system or equivalent. All commands. Log of allocates
and its resources other inputs to system status, error memory, etc.
computer messages to to minimize
operator, etc. need for