0% found this document useful (0 votes)
15 views

Ch5 - System Software Tools

Uploaded by

sisayyohannes997
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Ch5 - System Software Tools

Uploaded by

sisayyohannes997
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

UNIT V

SYSTEM SOFTWARE TOOLS (TEXT EDITORS)

These are the primary interface to the computer for all types of “Knowledge workers”
as they compose, organize, study and manipulate computer-based information.

5.1 OVERVIEW OF THE EDITING PROCESS

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.

The document editing process is an interactive user-computer dialogue designed to


accomplish four tasks:

1) Select the part of the target document to be viewed and manipulated

2) Determine how to format this view on-line and how to display it.

3) Specify and execute operations that modify the target document.

4) Update the view appropriately.

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;

Filtering - The selection of what is to be viewed and manipulated is controlled by


filtering. Filtering extracts the relevant subset of the target document at the point of
interest such as next screenful of text or next statement.

Formatting - Formatting determines how the result of filtering will be seen as a


visible representation (the view) on a display screen or other device.

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.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 1


Manuscript oriented editors operate on elements such as single characters, words,
lines, sentences and paragraphs;

Program-oriented editors operates on elements such as identifiers, keywords and


statements

5.2 THE USER-INTERFACE OF AN EDITOR

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 Screen-editors define a world in which a document is represented as a quarter-


plane of text lines, unbounded both down and to the right. The user sees, through a cut
out, only a rectangular subset of this plane on a multi line display terminal. The cutout
can be moved left or right, and up or down, to display other portions of the document.

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.

Input devices are categorized as:

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.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 2


3) Locator devices: They are two-dimensional analog-to-digital converters that
position a cursor symbol on the screen by observing the user‟s movement of the
device. The most common such devices are the mouse and the tablet.

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.

VOICE-INPUT DEVICES: which translate spoken words to their textual


equivalents, may prove to be the text input devices of the future. Voice recognizers are
currently available for command input on some systems.

OUTPUT DEVICES The output devices let the user view the elements being edited
and the result of the editing operations.

 The first output devices were teletypewriters and other character-printing


terminals that generated output on paper.
 Next “glass teletypes” based on Cathode Ray Tube (CRT) technology which uses
CRT screen essentially to simulate the hard-copy teletypewriter.
 Today‟s advanced CRT terminals use hardware assistance for such features as
moving the cursor, inserting and deleting characters and lines, and scrolling lines
and pages.
 The modern professional workstations are based on personal computers with high
resolution displays; support multiple proportionally spaced character fonts to
produce realistic facsimiles of hard copy documents.

INTERACTION LANGUAGE: The interaction language of the text editor is


generally one of several common types.

The typing oriented or text command-oriented method

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.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 3


Typed specification often requires the user to remember the exact form of all
commands, or at least their abbreviations. If the command language is complex, the
user must continually refer to a manual or an on-line Help function. The typing
required can be time consuming for in-experienced users.

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:

Have too many unique keys

Multiple key stroke commands

Menu oriented interface

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

5.3 EDITOR STRUCTURE

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 4


The command Language Processor

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.

The viewing component formulates an ideal view, often expressed in a device


independent intermediate representation. This view may be a very simple one
consisting of a window‟s worth of text arranged so that lines are not broken in the
middle of the words.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 5


Display Component

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

Filtering consists of the selection of contiguous characters beginning at the current


point. The editing filter filters the document to generate a new editing buffer based on
the current editing pointer as well as on the editing filter parameters

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

[1,50] c/ugly duckling/swan/

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.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 6


The components of the editor deal with a user document on two levels:

(i) In main memory and


(ii) In the disk file system.

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.

Editors function in three basic types of computing environment:

(i) Time-sharing environment

(ii) Stand-alone environment and

(iii) Distributed environment

Each type of environment imposes some constraint on the design of an editor.

The Time –Sharing Environment

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 Stand alone Environment

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.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 7


INTERACTIVE DEBUGGING SYSTEMS

An interactive debugging system provides programmers with facilities that aid in


testing and debugging of programs interactively.

DEBUGGING FUNCTIONS AND CAPABILITIES

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.

Conditional Expressions – Programmers can define some conditional expressions,


evaluated during the debugging session, program execution is suspended, when
conditions are met, analysis is made, later execution is resumed

Gaits- Given a good graphical representation of program progress may even be


useful in running the program in various speeds called gaits.

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

It is also important for a debugging system to have good program display


capabilities. It must be possible to display the program being debugged, complete
with statement numbers.

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…

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 8


Context Effects

The context being used has many different effects on the debugging interaction.

For example. The statements are different depending on the language

COBOL - MOVE 6.5 TO X

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.

Display of source code

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.

Relationship with Other Parts of the System

An interactive debugger must be related to other parts of the system in many


different ways.

Availability

Interactive debugger must appear to be a part of the run-time environment and an


integral part of the system. When an error is discovered, immediate debugging must
be possible because it may be difficult or impossible to reproduce the program
failure in some other environment or at some other times.
SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 9
Consistency with security and integrity components

User need to be able to debug in a production environment. When an application


fails during a production run, work dependent on that application stops. Since the
production environment is often quite different from the test environment, many
program failures cannot be repeated outside the production environment.

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.

Coordination with existing and future systems

The debugger must co-ordinate its activities with those of existing and future
language compilers and interpreters.

It is assumed that debugging facilities in existing language will continue to exist


and be maintained. The requirement of cross-language debugger assumes that such
a facility would be installed as an alternative to the individual language debuggers.

SYSTEM PROGRAMMING, CHAPTER-5, SYSTEM SOFTWARE TOOLS Page 10

You might also like