Ch5 - System Software Tools
Ch5 - System Software Tools
These are the primary interface to the computer for all types of “Knowledge workers”
as they compose, organize, study and manipulate computer-based information.
An interactive editor is a computer program that allows a user to create and revise a
target document. The term document includes objects such as computer programs,
texts, equations, tables, diagrams, line art and photographs-anything that one
might find on a printed page. Text editor is one in which the primary elements being
edited are character strings of the target text.
2) Determine how to format this view on-line and how to display it.
Travelling – Selection of the part of the document to be viewed and edited. It involves
first travelling through the document to locate the area of interest such as “next
screenful”, ”bottom” and “find pattern”. Travelling specifies where the area of
interest is;
Editing - In the actual editing phase, the target document is created or altered with a
set of operations such as insert, delete, replace, move or copy.
The user of an interactive editor is presented with a conceptual model of the editing
system. The model is an abstract framework on which the editor and the world on
which the operations are based.
The line editors simulated the world of the keypunch they allowed operations on
numbered sequence of 80-character card image lines.
The user interface is also concerned with the input devices, the output devices, and the
interaction language of the system.
INPUT DEVICES: The input devices are used to enter elements of text being edited,
to enter commands, and to designate editable elements.
1) Text devices
2) Button devices
3) Locator devices
1) Text or string devices are typically typewriter like keyboards on which user
presses and release keys, sending unique code for each key. Virtually all computer key
boards are of the QWERTY type.
2) Button or Choice devices generate an interrupt or set a system flag, usually causing
an invocation of an associated application program. Also special function keys are also
available on the key board. Alternatively, buttons can be simulated in software by
displaying text strings or symbols on the screen. The user chooses a string or symbol
instead of pressing a button.
The Data Tablet is a flat, rectangular, electromagnetically sensitive panel. Either the
ballpoint pen like stylus or a puck, a small device similar to a mouse is moved over the
surface. The tablet returns to a system program the co-ordinates of the position on the
data tablet at which the stylus or puck is currently located. The program can then map
these data-tablet coordinates to screen coordinates and move the cursor to the
corresponding screen position.
Text devices with arrow (Cursor) keys can be used to simulate locator devices. Each of
these keys shows an arrow that point up, down, left or right. Pressing an arrow key
typically generates an appropriate character sequence; the program interprets this
sequence and moves the cursor in the direction of the arrow on the key pressed.
OUTPUT DEVICES The output devices let the user view the elements being edited
and the result of the editing operations.
It is the oldest of the major editing interfaces. The user communicates with the editor
by typing text strings both for command names and for operands. These strings are
sent to the editor and are usually echoed to the output device.
Function key interfaces: Each command is associated with marked key on the key
board. This eliminates much typing. E.g.: Insert key, Shift key, Control key
Disadvantages:
A menu is a multiple choice set of text strings or icons which are graphical symbols
that represent objects or operations. The user can perform actions by selecting items
for the menus. The editor prompts the user with a menu. One problem with menu
oriented system can arise when there are many possible actions and several choices are
required to complete an action. The display area of the menu is rather limited
It accepts input from the user’s input devices, and analyzes the tokens and syntactic
structure of the commands. It functions much like the lexical and syntactic phases of a
compiler. The command language processor may invoke the semantic routines
directly. In a text editor, these semantic routines perform functions such as editing and
viewing.
The semantic routines involve travelling, editing, viewing and display functions.
Editing operations are always specified by the user and display operations are
specified implicitly by the other three categories of operations. Travelling and viewing
operations may be invoked either explicitly by the user or implicitly by the editing
operations.
Editing Component
In editing a document, the start of the area to be edited is determined by the current
editing pointer maintained by the editing component, which is the collection of
modules dealing with editing tasks. The current editing pointer can be set or reset
explicitly by the user using travelling commands, such as next paragraph and next
screen, or implicitly as a side effect of the previous editing operation such as delete
paragraph.
Travelling Component
The travelling component of the editor actually performs the setting of the current
editing and viewing pointers, and thus determines the point at which the viewing and
/or editing filtering begins.
Viewing Component
The start of the area to be viewed is determined by the current viewing pointer. This
pointer is maintained by the viewing component of the editor, which is a collection of
modules responsible for determining the next view. The current viewing pointer can be
set or reset explicitly by the user or implicitly by system as a result of previous editing
operation.
It takes the idealized view from the viewing component and maps it to a physical
output device in the most efficient manner. The display component produces a display
by mapping the buffer to a rectangular subset of the screen, usually a window
Editing Filter
Editing Buffer
It contains the subset of the document filtered by the editing filter based on the editing
pointer and editing filter parameters
Viewing Filter When the display needs to be updated, the viewing component invokes
the viewing filter. This component filters the document to generate a new viewing
buffer based on the current viewing pointer as well as on the viewing filter parameters.
Viewing Buffer
It contains the subset of the document filtered by the viewing filter based on the
viewing pointer and viewing filter parameters.
E.g. The user of a certain editor might travel to line 75,and after viewing it, decide to
change all occurrences of “ugly duckling” to “swan” in lines 1 through 50 of the file
by using a change command such as
As a part of the editing command there is implicit travel to the first line of the file.
Lines 1 through 50 are then filtered from the document to become the editing buffer.
Successive substitutions take place in this editing buffer without corresponding
updates of the view
In Line editors, the viewing buffer may contain the current line; in screen editors, this
buffer may contain rectangular cut out of the quarter-plane of text. This viewing buffer
is then passed to the display component of the editor, which produces a display by
mapping the buffer to a rectangular subset of the screen, usually called a window.
Loading an entire document into main memory may be infeasible. However if only
part of a document is loaded and if many user specified operations require a disk
read by the editor to locate the affected portions, editing might be unacceptably
slow. In some systems this problem is solved by the mapping the entire file into
virtual memory and letting the operating system perform efficient demand paging.
An alternative is to provide is the editor paging routines which read one or more
logical portions of a document into memory as needed. Such portions are often
termed pages, although there is usually no relationship between these pages and the
hard copy document pages or virtual memory pages. These pages remain resident in
main memory until a user operation requires that another portion of the document
be loaded.
The time sharing editor must function swiftly within the context of the load on the
computer’s processor, central memory and I/O devices.
The editor on a stand-alone system must have access to the functions that the time
sharing editors obtain from its host operating system. This may be provided in pare
by a small local operating system or they may be built into the editor itself if the
stand alone system is dedicated to editing.
Distributed Environment
The editor operating in a distributed resource sharing local network must, like a
standalone editor, run independently on each user’s machine and must, like a time
sharing editor, content for shared resources such as files.
Execution sequencing:
It is the observation and control of the flow of program execution. For example, the
program may be halted after a fixed number of instructions are executed.
Breakpoints – The programmer may define break points which cause execution to
be suspended, when a specified point in the program is reached. After execution is
suspended, the debugging command is used to analyze the progress of the program
and to diagnose errors detected. Execution of the program can then be removed.
A Debugging system should also provide functions such as tracing and traceback.
Tracing can be used to track the flow of execution logic and data modifications.
The control flow can be traced at different levels of detail – procedure, branch,
Trace back can show the path by which the current statement in the program was
reached. It can also show which statements have modified a given variable or
parameter. The statements are displayed rather than as hexadecimal displacements.
Program-display Capabilities
Multilingual Capability
A debugging system should consider the language in which the program being
debugged is written. Most user environments and many applications systems
involve the use of different programming languages. A single debugging tool
should be available to multilingual situations individual instruction, and so on…
The context being used has many different effects on the debugging interaction.
FORTRAN - X = 6.5
Likewise conditional statements should use the notation of the source language
COBOL - IF A NOT EQUAL TO B
FORTRAN - IF (A .NE. B)
Similar differences exist with respect to the form of statement labels, keywords and
so on.
The language translator may provide the source code or source listing tagged in
some standard way so that the debugger has a uniform method of navigating about
it.
Optimization:
It is also important that a debugging system be able to deal with optimized code.
Many optimizations involve the rearrangement of segments of code in the program.
For eg. - invariant expressions can be removed from loop - separate loops can be
combined into a single loop - redundant expression may be eliminated - elimination
of unnecessary branch instructions The debugging of optimized code requires a
substantial amount of cooperation from the optimizing compiler.
Availability
Debugger must also exist in a way that is consistent with the security and integrity
components of the system. Use of debugger must be subjected to the normal
authorization mechanism and must leave the usual audit trails. Someone
(unauthorized user) must not access any data or code. It must not be possible to use
the debuggers to interface with any aspect of system integrity.
The debugger must co-ordinate its activities with those of existing and future
language compilers and interpreters.