15BECS403 System Software 3 0 0 3
15BECS403 System Software 3 0 0 3
Course Objectives:
UNIT- I Introduction 9
System software and machine architecture – The Simplified Instructional Computer (SIC) -
XE - Machine architecture - Data and instruction formats - addressing modes - instruction
sets - I/O and programming.
UNIT- II Assemblers 9
Basic assembler functions - A simple SIC assembler – Assembler algorithm and data
structures - Machine dependent assembler features - Instruction formats and addressing
modes – Program relocation - Machine independent assembler features - Literals – Symbol-
defining statements – Expressions - One pass assemblers and Multi pass assemblers -
Implementation example - MASM assembler.
Basic macro processor functions - Macro Definition and Expansion – Macro Processor
Algorithm and data structures - Machine-independent macro processor features -
Concatenation of Macro Parameters – Generation of Unique Labels – Conditional Macro
Expansion – Keyword Macro Parameters-Macro within Macro-Implementation example -
MASM Macro Processor – ANSI C Macro language.
Total Hours: 45
Text Books:
References:
Reference
Book & Page
DESCRIPTION OF PORTION TO BE Nos.
S.NO HOURS
COVERED Used for
teaching
TEACHING
2 Discussion on the need of studying the 1 AIDS
course
3 Discussion on the fundamentals of hardware 1 T[1]
and software
4 1 R[3]
Introduction to different types of windows
UNIT I Introduction
1.1 System software and machine T[1] Page no
5 architecture 1
3-4
T[1] Page no
7 1.3 Machine architecture 1
5
Tutorial hour-Test is to be conducted for
8 1
the topics covered from 1.1 to 1.2.3
R[3] Page no
9 1.4 Data and instruction formats 1
5 BB
T[1] Page no &
6 PPT
10 1.5 Addressing modes 1
R[3] Page no
5
T[1] Page no
11 1.6 Instruction sets 1
7-9
T[1] Page no
1.7 I/O and programming 1
7-9
UNIT-II Assemblers
R[3] Page no
2.5 Expressions
19 1 29-30,34-40
2.6 One pass assemblers
R[3] Page no
20 2.6.1 Multi pass assemblers 1
41-44
R[3] Page no
23 3.1 Basic loader functions 1
3.2 to 3.5
R[3] Page no
24 1
3.1.1 Design of an Absolute Loader 3.5 to 3.9
T[1] Page no
25 3.2 A Simple Bootstrap Loader 1
132 to 135
3.3 Machine dependent loader features T[1] Page no
26 1
3.3.1 Relocation 135 to 141
T[1] Page no
27 3.3.2 Program Linking 1
141 to 148
Tutorial hour-Test is to be conducted for
28 1
the topics covered from 3.1 to 3.3.2
3.3.2.1 Algorithm and Data Structures for T[1] Page no
29 1
Linking Loader 148 to 154
T[1] Page no
31 3.6 Loader Options 1
156-158
32 Tutorial hour-Test is to be conducted for
1
the topics covered from 3.3 to 3.3.2.1
R[3] Page no
34 3.8 Bootstrap Loaders 1
3.25 to 3.26
R[3] Page no
3.27 to 3.28
35 1
3.9 Implementation example T[1] Page no
3.10 MSDOS linker. 167 to 169
UNIT IV Macro Processors
T[1] Page no
46 5.3 Process Scheduling-I/O Supervision 1
328 to 335
T[1] Page no
50 5.6 Distributed Operating Systems 1
370-373
T[1] Page no
5.7 Object Oriented Operating Systems 373-375
51 1
5.8 Text editors - Editor Structure R[3] Page no
5.2 to 5.8
R[3] Page no
52 5.9 Interactive debugging systems 1
5.10 to 5.14
Text Books:
References:
System software and machine architecture – The Simplified Instructional Computer (SIC) -
Machine architecture - Data and instruction formats - addressing modes - instruction sets - I/O
and programming.
It is the program that takes an input program in one language and produces an output in
another language.
1
Fig.no 1.1 Working of Language translator
1.1.1.3 COMPILERS
A compiler is a language program that translates programs written in any high-level
language into its equivalent machine language program. It bridges the semantic gap between a
programming language domain and the execution domain. Two aspects of compilation are:
It should generate code to increment meaning of a source program in the execution domain. It
should provide diagnostics for violation of programming language, semantics in a source
program. The program instructions are taken as a whole.
1.1.1.4 INTERPRETERS
It is a translator program that translates a statement of high-level language to machine
language and executes it immediately. The program instructions are taken line by line. The
interpreter reads the source program and stores it in memory. During interpretation, it takes a
source statement, determines its meaning and performs actions which increments it. This
includes computational and I/O actions. Program counter (PC) indicates which statement of
the source program is to be interpreted next. This statement would be subjected to the
interpretation cycle. The interpretation cycle consists of the following steps:
Fetch the statement.
Analyze the statement and determine its meaning.
Execute the meaning of the statement.
The following are the characteristics of interpretation: The source program is retained in the
source form itself, no target program exists. A statement is analyzed during the interpretation.
2
1.1.1.5 ASSEMBLERS
1.2.1.2 Registers:
There are 5 registers namely
1. Accumulator (A)
2. Index Register(X)
3. Linkage Register (L)
4. Program Counter (PC)
5. Status Word (SW).
Accumulator is a special purpose register used for arithmetic operations. Index register is used
for addressing. Linkage register stores the return address of the jump of subroutine instructions
(JSUB). Program counter contains the address of the current instructions being executed. Status
word contains a variety of information including the condition code.
3
Fig no. 1.5 Instruction format
All machine instructions are of 24-bits wide. X-flag bit that is used to indicate indexed-
addressing mode. There are two types of addressing are available namely,
Direct addressing mode
Indexed addressing mode or indirect addressing mode
Memory
1 word = 24 bits (3 8-bit bytes)
Total (SIC/XE) = 220 (1,048,576) bytes (1Mbyte)
Registers:
10 x 24 bit registers
4
MNEMONIC Register Purpose
A 0 Accumulator
X 1 Index register
L 2 Linkage register (JSUB/RSUB)
B 3 Base register
S 4 General register
T 5 General register
F 6 Floating Point Accumulator (48 bits)
PC 8 Program Counter (PC)
SW 9 Status Word (includes Condition Code, CC)
Data Format:
Integers are stored in 24 bit, 2's complement format. Characters are stored in 8-bit
ASCII format. Floating point is stored in 48 bit signed-exponent-fraction format: as shown
below
Instruction Format:
op {8}
Format 2 (2 bytes):
Format 4 (4 bytes):
5
Formats 3 & 4 introduce addressing mode flag bits:
Flag x:
x=1 Indexed addressing add contents of X register to TA calculation Flag b & p
(Format 3 only):
b=0 & p=0
Direct addressing displacement/address field containsTA (Format 4
always uses direct addressing)
b=0 & p=1
PC relative addressing - TA=(PC)+disp (-2048<=disp<=2047)*
b=1 & p=0
Base relative addressing - TA=(B)+disp (0<=disp<=4095)**
Flag e:
If e=0 use Format 3
If e=1 use Format 4
1.3.1 Instructions:
The SIC/XE has 28 (256) I/O devices may be attached, each has its own unique 8-
bit address and 1 byte of data will be transferred to/from the rightmost 8 bits of register
A. Three I/O instructions are provided:
6
RD Read Data from I/O device into A
SIC/XE Has capability for programmed I/O (I/O device may input/output data
while CPU does other work) - 3 additional instructions are provided:
TWO MARKS
3. Illustrate how input and output operations are performed in SIC. (or) Write I/O
instructions used in SIC?
In SIC IO operations are performed using I/O instruction like
TD – Test Device
RD – Read Data
WD – Write Data
************************************************************************
9
UNIT- II ASSEMBLERS
Basic assembler functions - A simple SIC assembler – Assembler algorithm and data structures -
Machine dependent assembler features - Instruction formats and addressing modes – Program
relocation - Machine independent assembler features - Literals – Symbol-defining statements –
Expressions - One pass assemblers and Multi pass assemblers - Implementation example –
MASM assembler.
10
Figure 2.1: Assembler language program for basic SIC version
Indexed addressing is indicated by adding the modifier “ X” following the operand. Lines
beginning with “.” contain comments only. The following assembler directives are
used:
START: Specify name and starting address for the program.
END : Indicate the end of the source program and specify the first executable
instruction in the program.
BYTE: Generate character or hexadecimal constant, occupying as many bytes as
needed to represent the constant.
WORD: Generate one- word integer constant.
RESB: Reserve the indicated number of bytes for a data area.
RESW: Reserve the indicated number of words for a data area.
The program contains a main routine that reads records from an input device( code F1)
and copies them to an output device(code 05). The main routine calls subroutines:
RDREC – To read a record into a buffer and WRREC – To write the record from the
buffer to the output device. The end of each record is marked with a null character
(hexadecimal 00).
11
2.2 A SIMPLE SIC ASSEMBLER
The translation of source program to object code requires the following functions:
Convert mnemonic operation codes to their machine language equivalents. Eg: Translate
STL to 14 (line 10). Convert symbolic operands to their equivalent machine addresses.
Eg:Translate RETADR to 1033 (line 10). Build the machine instructions in the proper
format. Convert the data constants specified in the source program into their internal machine
representations. Eg: Translate EOF to 454F46(line 80). Write the object program and the
assembly listing. All fuctions except function 2 can be established by sequential processing
of source program one line at a time.
Consider the statement
10 1000 FIRST STL RETADR 141033
This instruction contains a forward reference (i.e.) a reference to a label
(RETADR) that is defined later in the program. It is unable to process this line because
the address that will be assigned to RETADR is not known. Hence most assemblers make
two passes over the source program where the second pass does the actual translation.
The assembler must also process statements called assembler directives or pseudo
instructions which are not translated into machine instructions. Instead they provide
instructions to the assembler itself. Examples: RESB and RESW instruct the assembler to
reserve memory locations without generating data values. The assembler must write the
generated object code onto some output device. This object program will later be loaded
into memory for execution. The Object program format contains three types of records:
Header record: Contains the program name, starting address and length.
Text record: Contains the machine code and data of the program.
End record: Marks the end of the object program and specifies the address in
the program where execution is to begin
13
2.4 MACHINE DEPENDENT ASSEMBLER FEATURES
Consider the design and implementation of an assembler for SIC/XE
version.
14
Indirect addressing is indicated by adding the prefix @ to the operand (line70).
Immediate operands are denoted with the prefix # (lines 25, 55,133). Instructions that refer to
memory are normally assembled using either the program counter relative or base counter
relative mode.
The assembler directive BASE (line 13) is used in conjunction with base relative
addressing. The four byte extended instruction format is specified with the prefix + added to the
operation code in the source statement.
Register-to-register instructions are used wherever possible. For example the statement
on line 150 is changed from COMP ZERO to COMPR A,S. Immediate and indirect addressing
have also been used as much as possible.
Register-to-register instructions are faster than the corresponding register-to-memory
operations because they are shorter and do not require another memory reference.
While using immediate addressing, the operand is already present as part of the
instruction and need not be fetched from anywhere. The use of indirect addressing often avoids
the need for another instruction
2.5.1 Translation
Register translation
The register name (A, X, L, B, S, T, F, PC, SW) and their values (0,1, 2, 3, 4, 5, 6, 8,
9)are preloaded in SYMTAB
Address translation
Most register-memory instructions use program counter relative or base relative
addressing Format 3: 12-bit address field , base-relative: 0~4095, pc-relative: -
2048~2047. Format 4: 20-bit address field
15
Fig no : 2.4 Example
16
2.6.2 Modification record
It is mandatory that one modification record for each address has to be modified.
The length is stored in half-bytes (4 bits). The starting location is the location of the byte
containing the leftmost bits of the address field to be modified. If the field contains an
odd number of half-bytes, the starting location begins in the middle of the first byte
17
Fig no: 2.9 Example for literal value
2.7.2 Literals vs. Immediate Operands
Literals
The assembler generates the specified value as a constant at some other memory location.
Immediate Operands
The operand value is assembled as part of the machine instruction. We can have
literals in SIC, but immediate operand is only valid in SIC/XE.
18
There may be some literals that have the same name, but different values
BASE *
LDB =* (#LENGTH)
The literal =* repeatedly used in the program has the same name, but different values.
The literal “=*” represents an “address” in the program, so the assembler must generate the
appropriate “Modification records”.
19
2.7.6.2 Assembler directive used is EQU.
Syntax: symbol EQU value. It is used to improve the program readability, avoid using
magic numbers, make it easier to find and change constant values.
Replace +LDT #4096 with
MAXLEN EQU 4096
+LDT #MAXLEN
Define mnemonic names for registers.
A EQU 0 RMO A,X
X EQU 1
Expression is allowed
MAXLEN EQU BUFEND-BUFFER
2.7.6.3 Assembler directive ORG
Allow the assembler to reset the PC to values
o Syntax: ORG value
When ORG is encountered, the assembler resets its LOCCTR to the specified value.
ORG will affect the values of all labels defined until the next ORG. If the previous value
of LOCCTR can be automatically remembered, we can return to the normal use of
LOCCTR by simply writing ORG
We can fetch the VALUE field by LDA VALUE, X = 0, 11, 22, … for each entry
Forward-Reference Problem
The forward reference is not allowed for either EQU or ORG. All terms in the value field
must have been defined previously in the program. The reason is that all symbols must have
been defined during Pass 1 in a two-pass assembler.
Allowed:
ALPHA RESW 1
BETA EQU ALPHA
Not Allowed:
BETA EQU ALPHA
ALPHA RESW 1
20
2.8 EXPRESSIONS
The assemblers allow “the use of expressions as operand”. The assembler
evaluates the expressions and produces a single operand address or value. Expressions
consist of
Operator +,-,*,/ (division is usually defined to produce an integer result)
Individual terms Constants, User-defined symbols and Special terms, e.g., *, the
current value of LOCCTR
Examples
MAXLEN EQU BUFEND-BUFFER
STAB RESB (6+3+2)*MAXENTRIES
21
2.8.4 Program Blocks
It allows the generated machine instructions and data to appear in the object program in a
different order. Separating blocks for storing code, data, stack, and larger data block.
Program blocks versus. Control sections
Program blocks
Segments of code that are rearranged within a single object program unit.
Control sections
Segments of code that are translated into independent object program units.
Assembler rearranges these segments to gather together the pieces of each block and assign
address. Separate the program into blocks in a particular order. Large buffer area is moved to the
end of the object program. Program readability is better if data areas are placed in the source
program close to the statements that reference them.
Example
22
In the above program three blocks are used as specified below:
default: executable instructions.
CDATA: all data areas that are less in length.
CBLKS: all data areas that consists of larger blocks of memory.
23
Pass 2
Calculate the address for each symbol relative to the start of the object program by
adding.
o The location of the symbol relative to the start of its block
o The starting address of this block
24
To reference an external symbol, extended format instruction is needed.
25
2.8.3 External Reference Handling
Case 1
The line no:15 0003 CLOOP +JSUB RDREC 4B100000.
The operand RDREC is an external reference. The assembler has no idea where RDREC is it
inserts an address of zero. It can only use extended format to provide enough room (that is,
relative addressing for external reference is invalid). The assembler generates information for
each external reference that will allow the loader to perform the required linking.
Case 2
The line no:190 0028 MAXLEN WORD BUFEND-BUFFER
000000. There are two external references in the expression, BUFEND and BUFFER.
The assembler inserts a value of zero and passes information to the loader, add this data area the
address of BUFEND and finally subtracts from this data area the address of BUFFER
Case 3
On line 107, BUFEND and BUFFER are defined in the same control section and
the expression can be calculated immediately.
107 1000 MAXLEN EQU BUFEND-BUFFER
26
Modification record
Col. 1 M
Col. 2-7 Starting address of the field to be modified (hexiadecimal)
Col. 8-9 Length of the field to be modified, in half-bytes (hexadeccimal)
Col.11-16 External symbol whose value is to be added to or subtracted from the
indicated field
Control section name is automatically an external symbol, i.e. it is available for use in
Modification records.
Object Program
27
2.9 ASSEMBLER DESIGN
The assembler design deals with
o Two-pass assembler with overlay structure
o One-pass assemblers
o Multi-pass assemblers
28
2.9.1.2 Forward Reference in One-pass Assembler
The assembler omits the operand address if the symbol has not yet been defined. It enters
this undefined symbol into SYMTAB and indicates that it is undefined. It adds the address of
this operand address to a list of forward references associated with the SYMTAB entry. When
the definition for the symbol is encountered, scans the reference list and inserts the address. At
the end of the program, reports the error if there are still SYMTAB entries indicated undefined
symbols. For Load-and-Go assembler - Search SYMTAB for the symbol named in the END
statement and jumps to this location to begin execution if there is no error.
29
the program that involve forward references in symbol definition are saved during Pass 1.
Additional passes through these stored definitions are made as the assembly progresses. This
process is followed by a normal Pass 2.
2.9.3.1 Implementation
For a forward reference in symbol definition, we store in the SYMTAB:
The symbol name
The defining expression
The number of undefined symbols in the defining expression
The undefined symbol (marked with a flag *) associated with a list of symbols depend on this
undefined symbol. When a symbol is defined, we can recursively evaluate the symbol
expressions depending on the newly defined symbol.
Consider the symbol table entries from Pass 1 processing of the statement.
HALFS2 EQU MAXLEN/2
Since MAXLEN has not yet been defined, no value for HALFS2 can be
computed. The defining expression for HALFS2 is stored in the symbol table in place of
its value. The entry &1 indicates that 1 symbol in the defining expression undefined.
SYMTAB simply contain a pointer to the defining expression. The symbol MAXLEN is
also entered in the symbol table, with the flag * identifying it as undefined. Associated
with this entry is a list of the symbols whose values depend on MAXLEN.
30
TWO MARKS
1. Define Assembler.
An assembler is a set of programs, which is used to translate the assembly language into
machine language, and also gives the necessary information to the loader.
5. How the Assembler gives Program Relocation Information to the Loader? (Relocatable
pgm)
The Assembler does not know the actual location where the program will be loaded. It
cannot make the necessary changes in the addresses used by the Program at load time. However
the assembler can identify the object program that needs modification. An object program that
contains the information necessary to perform this kind of modification is called Relocatable
Program. Thus the information would be given to the loader.
31
A Refer Record gives information about external reference ie. That symbols are defined in
another sections.
8. Define Literals?
In Literals, the value of constants operand as a part of the instructions, itself. This avoids
having to define the constant elsewhere in the program. The Literals are identified with prefix
‘=’. Which is followed by the specification of the Literal value. For eg, LDA = C ‘EOF’
32
16. What is Far jump?
A far jump is a Jump to a target in a different code segment. A Far Jump is assembled
using a different segment register, which is specified in an instruction profix. The assembled
instruction for a Far Jump requires 5 bytes.
Eg. JMP
FARPTR
TARGET
18. What are the three different records used in object program?
The header record, text record and the end record are the three different records used in
object program. The header record contains the program name, starting address and length of the
program. Text record contains the translated instructions and data of the program. End record
marks the end of the object program and specifies the address in the program where execution is
to begin.
20. Write the steps required to translate the source program to object program.
*Convert mnemonic operation codes to their machine language equivalents.
*Convert symbolic operands to their equivalent machine addresses
*Build the machine instruction in the proper format.
*Convert the data constants specified in the source program into their internal machine
representation
*Write the object program and assembly listing.
*************************************************************
33
UNIT- III LOADERS AND LINKERS
Basic loader functions - Design of an Absolute Loader – A Simple Bootstrap Loader - Machine
dependent loader features - Relocation – Program Linking – Algorithm and Data Structures for
Linking Loader - Machine-independent loader features - Automatic Library Search – Loader
Options - Loader design options - Linkage Editors – Dynamic Linking – Bootstrap Loaders -
Implementation example - MSDOS linker.
Loader is a system program that performs the loading function. Many loaders also
support relocation and linking. Some systems have a linker (linkage editor) to perform the
linking operations and a separate loader to handle relocation and loading. One system loader or
linker can be used regardless of the original source programming language. Loading →Brings
the object program into memory for execution. Relocation → Modifies the object program so
that it can be loaded at an address different from the location originally specified. Linking →
Combines two or more separate object programs and supplies the information needed to allow
references between them.
34
Fig (b) shows a representation of the program from Fig (a) after loading.
It is very important to realize that in Fig (a), each printed character represents one byte of
the object program record. In Fig (b), on the other hand, each printed character represents one
hexadecimal digit in memory (a half-byte). Therefore, to save space and execution time of
loaders, most machines store object programs in a binary form, with each byte of object code
stored as a single byte in the object program. In this type of representation a byte may contain
any binary value.
35
3.3 A SIMPLE BOOTSTRAP LOADER
When a computer is first turned on or restarted, a special type of absolute loader, called a
bootstrap loader, is executed. This bootstrap loads the first program to be run by the computer –
usually an operating system.
36
3.4 MACHINE-DEPENDENT LOADER FEATURES
The absolute loader has several potential disadvantages. One of the most obvious is the
need for the programmer to specify the actual address at which it will be loaded into memory.
On a simple computer with a small memory the actual address at which the program will be
loaded can be specified easily. On a larger and more advanced machine, we often like to run
several independent programs together, sharing memory between them. We do not know in
advance where a program will be loaded. Hence we write relocatable programs instead of
absolute ones. Writing absolute programs also makes it difficult to use subroutine libraries
efficiently. This could not be done effectively if all of the subroutines had pre-assigned absolute
addresses.
The need for program relocation is an indirect consequence of the change to larger and
more powerful computers. The way relocation is implemented in a loader is also dependent upon
machine characteristics. Loaders that allow for program relocation are called relocating loaders
or relative loaders.
Relocation
Two methods for specifying relocation as part of the object program:
The first method :
A Modification is used to describe each part of the object code that must be changed
when the program is relocated. Most of the instructions in this program use relative or
immediate addressing. The only portions of the assembled program that contain actual
addresses are the extended format instructions on lines 15, 35, and 65. Thus these are the
only items whose values are affected by relocation.
37
Object program
38
Each Modification record specifies the starting address and length of the field whose
value is to be altered. It then describes the modification to be performed. In this example, all
modifications add the value of the symbol COPY, which represents the starting address of the
program. Fig(2) :Consider a Relocatable program for a Standard SIC machine
The Modification record is not well suited for use with all machine
architectures. Consider, for example, the program in Fig (2) .This is a relocatable program
written for standard version for SIC. The important difference between this example and the one
in Fig (1) is that the standard SIC machine does not use relative addressing. In this program the
addresses in all the instructions except RSUB must modified when the program is relocated. This
would require 31 Modification records, which results in an object program more than twice as
large as the one in Fig (1).
39
The second method :
There are no Modification records.
The Text records are the same as before except that there is a relocation bit
associated with each word of object code. Since all SIC instructions occupy one word,
this means that there is one relocation bit for each possible instruction.
Fig (3): Object program with relocation by bit mask
The relocation bits are gathered together into a bit mask following the length indicator in
each Text record. In Fig (3) this mask is represented (in character form) as three hexadecimal
digits. If the relocation bit corresponding to a word of object code is set to 1, the program’s
starting address is to be added to this word when the program is relocated. A bit value of 0
indicates that no modification is necessary. If a Text record contains fewer than 12 words of
object code, the bits corresponding to unused words are set to 0. For example, the bit mask FFC
(representing the bit string 111111111100) in the first Text record specifies that all 10 words of
object code are to be modified during relocation. Example: Note that the LDX instruction on line
210 (Fig (2)) begins a new Text record. If it were placed in the preceding Text record, it would
not be properly aligned to correspond to a relocation bit because of the 1-byte data value
generated from line 185.
3.5 PROGRAM LINKING
Consider the three (separately assembled) programs in the figure, each of which consists
of a single control section.
Program 1 (PROGA):
40
Program 2 (PROGB):
Program 3 (PROGC):
Consider first the reference marked REF1. For the first program (PROGA), REF1 is simply a
reference to a label within the program. It is assembled in the usual way as a PC relative
instruction. No modification for relocation or linking is necessary. In PROGB, the same operand
refers to an external symbol. The assembler uses an extended-format instruction with address
41
field set to 00000. The object program for PROGB contains a Modification record instructing
the loader to add the value of the symbol LISTA to this address field when the program is linked.
For PROGC, REF1 is handled in exactly the same way.
Corresponding object programs
PROGA
PROGB:
42
PROGC
Fig (4): The three programs as they might appear in memory after loading and linking.
43
Fig (5): Relocation and linking operations performed on REF4 in PROGA
44
The initial value (from the Text record) is 000014. To this is added the address assigned to
LISTC, which 4112 (the beginning address of PROGC plus 30). Algorithm and Data Structures
for a Linking Loader The algorithm for a linking loader is considerably more complicated
than the absolute loader algorithm. A linking loader usually makes two passes over its input, just
as an assembler does. In terms of general function, the two passes of a linking loader are quite
similar to the two passes of an assembler: Pass 1 assigns addresses to all external symbols. Pass 2
performs the actual loading, relocation, and linking. The main data structure needed for our
linking loader is an external symbol table ESTAB. This table, which is analogous to SYMTAB
in our assembler algorithm, is used to store the name and address of each external symbol in the
set of control sections being loaded. A hashed organization is typically used for this table.Two
other important variables are PROGADDR (program load address) and CSADDR (control
section address).
o PROGADDR is the beginning address in memory where the linked program is to
be loaded. Its value is supplied to the loader by the OS.
o CSADDR contains the starting address assigned to the control section currently
being scanned by the loader. This value is added to all relative addresses within
the control section to convert them to actual addresses.
PASS 1
During Pass 1, the loader is concerned only with Header and Define record types in the
control sections.
Algorithm for Pass 1 of a Linking loader
The beginning load address for the linked program (PROGADDR) is obtained from the OS. This
becomes the starting address (CSADDR) for the first control section in the input sequence.
The control section name from Header record is entered into ESTAB, with value given by
CSADDR. All external symbols appearing in the Define record for the control sectionare also
entered into ESTAB. Their addresses are obtained by adding the value specified in the Define
record to CSADDR.
45
When the End record is read, the control section length CSLTH (which was saved from
the End record) is added to CSADDR. This calculation gives the starting address for the next
control section in sequence. At the end of Pass 1, ESTAB contains all external symbols defined
in the set of control sections together with the address assigned to each. Many loaders include as
an option the ability to print a load map that shows these symbols and their addresses.
PASS 2
Pass 2 performs the actual loading, relocation, and linking of the program.
Algorithm for Pass 2 of a Linking loader
As each Text record is read, the object code is moved to the specified address (plus
the current value of CSADDR). When a Modification record is encountered, the symbol
whose value is to be used for modification is looked up in ESTAB. This value is then
added to or subtracted from the indicated location in memory. The last step performed by
the loader is usually the transferring of control to the loaded program to begin execution.
The End record for each control section may contain the address of the first instruction in
that control section to be executed. Our loader takes this as the transfer point to begin
execution. If more than one control section specifies a transfer address, the loader
arbitrarily uses the last one encountered. If no control section contains a transfer address,
the loader uses the beginning of the linked program (i.e., PROGADDR) as the transfer
point. Normally, a transfer address would be placed in the End record for a main
program, but not for a subroutine.
46
This algorithm can be made more efficient. Assign a reference number, which is
used (instead of the symbol name) in Modification records, to each external symbol
referred to in a control section. Suppose we always assign the reference number 01 to the
control section name.
47
3.7.1 Linkage Editors
The linkage editor performs relocation of all control sections relative to the start of the
linked program. Thus, all items that need to be modified at load time have values that are relative
to the start of the linked program. This means that the loading can be accomplished in one pass
with no external symbol table required. If a program is to be executed many times without being
reassembled, the use of a linkage editor substantially reduces the overhead required. Linkage
editors can perform many useful functions besides simply preparing an object program for
execution. Ex., a typical sequence of linkage editor commands used:
INCLUDE PLANNER (PROGLIB)
DELETE PROJECT {delete from existing PLANNER}
INCLUDE PROJECT (NEWLIB) {include new version}
REPLACE PLANNER (PROGLIB)
Linkage editors can also be used to build packages of subroutines or other control sections that
are generally used together. This can be useful when dealing with subroutine libraries that
support high-level programming languages. Linkage editors often include a variety of other
options and commands like those discussed for linking loaders. Compared to linking loaders,
linkage editors in general tend to offer more flexibility and control.
Fig (7): Processing of an object program using (a) Linking loader and (b) Linkage editor
48
linking can avoid the necessity of loading the entire library for each execution except those
necessary subroutines.
Fig (a): Instead of executing a JSUB instruction referring to an external symbol, the program
makes a load-and-call service request to OS. The parameter of this request is the symbolic name
of the routine to be called.
Fig (b): OS examines its internal tables to determine whether or not the routine is already loaded.
If necessary, the routine is loaded from the specified user or system libraries.
49
Fig (c): Control is then passed from OS to the routine being called
Fig (d): When the called subroutine completes it processing, it returns to its caller (i.e., OS). OS
then returns control to the program that issued the request.
Fig (e): If a subroutine is still in memory, a second call to it may not require another load
operation. Control may simply be passed from the dynamic loader to the called routine.
TWO MARKS
1. What are the basic functions of loaders?
Loading -brings the object program into memory for execution.
Relocation -modifies the object program so that it can be loaded at an address different from
the location originally specified.
Linking -combines two or more separate object programs and also supplies the information
needed to reference them.
50
- Modification record is used for program relocation. Each modification record specifies the
starting address and the length of the field whose value is to be altered and also describes the
modification to be performed
51
17. Give the functions of the linking loader.
The linking loader performs the process of linking and relocation. It includes the operation of
automatic library search and the linked programs are directly loaded into the memory. The
relocation and linking is performed each time the program is loaded It produces a linked version
of a program and which is written in a file for later execution Here the loading can be
accomplished in a single o passes are required.
ii. Linkage editor can be used to replace old version of subroutine by new subroutine without
affecting the original version of all the other subroutine.
iii. Linkage editor can also be used to build package of subroutines or other control sections that
are generally used together. This can be useful when dealing with subroutine libraries that
support high-level programming language.
52
UNIT-IV
MACRO PROCESSORS
Basic macro processor functions - Macro Definition and Expansion – Macro Processor
Algorithm and data structures - Machine-independent macro processor features - Concatenation
of Macro Parameters – Generation of Unique Labels – Conditional Macro Expansion –
Keyword Macro Parameters-Macro within Macro-Implementation example - MASM Macro
Processor – ANSI C Macro language.
53
3. Macro Expansion
54
4.2.2 Macro Expansion
Each macro invocation statement will be expanded into the statements that form the
body of the macro. Arguments from the macro invocation are substituted for the parameters
in the macro prototype. The arguments and parameters are associated with one another
according to their positions. The first argument in the macro invocation corresponds to the
first parameter in the macro prototype, etc. Comment lines within the macro body have been
deleted, but comments on individual statements have been retained. Macro invocation
statement itself has been included as a comment line.
In expanding the macro invocation on line 190, the argument F1 is substituted for
the parameter and INDEV wherever it occurs in the body of the macro. Similarly BUFFER
is substituted for BUFADR and LENGTH is substituted for RECLTH. Lines 190a through
190m show the complete expansion of the macro invocation on line 190. The label on the
macro invocation statement CLOOP has been retained as a label on the first statement
generated in the macro expansion. This allows the programmer to use a macro instruction
in exactly the same way as an assembler language mnemonic. After macro processing the
expanded file can be used as input to assembler. The macro invocation statement will be
treated as comments and the statements generated from the macro expansions will be
assembled exactly as though they had been written directly by the programmer.
There are 3 main data structures involved in our macro processor.
55
4.2.2.1 Definition table (DEFTAB)
The macro definition themselves are stored in definition table (DEFTAB),
which contains the macro prototype and statements that make up the macro body.
Comment lines from macro definition are not entered into DEFTAB because they
will not be a part of macro expansion.
Machine independent macro processor features are extended features that are not directly
related to architecture of computer for which the macro processor is written.
Solution to this ambiguity problem: Use a special concatenation operator “-»” to specify the
end of the parameter LDA X&ID -»1 So that the end of parameter &ID is clearly identified.
56
4.3.1.1 Macro definition
The arguments in macro invocation can be used to substitute the parameters in the
macro body without changing the sequence of statements expanded and to modify the
sequence of statements for conditional macro expansion (or conditional assembly when
related to assembler). This capability adds greatly to the power and flexibility of a macro
language. Macro-time variable (SET symbol) can be used to store working values during the
macro expansion, store the evaluation result of Boolean expression and to control the macro-
time conditional structures with the following rules such that the program begins with “&” and
that is not a macro instruction parameter, it should be initialized to a value of 0 and should be
set by a macro processor directive, SET. Following are the Macro-time conditional structure :
IF-ELSE-ENDIF
WHILE-ENDW
If value is
TRUE
The macro processor continues to process lines from DEFTAB until
it encounters the next ELSE or ENDIF statement. If ELSE is encountered,
then skips to ENDIF
FALSE
The macro processor skips ahead in DEFTAB until it finds the next ELSE
or ENDLF statement.
59
Fig 4.2 Example
Some of its disadvantages are that large number of details must be dealt with in a real
programming language. Situations in which normal macro parameter substitution should not
occur,e.g., comments. Facilities for grouping together terms, expressions, or statements
Tokens, e.g., identifiers, constants, operators, keywords and syntax.
60
The processor processes macro definitions. It expands macro
invocations and produces an expanded version of the source
program, which is then used as input to an assembler or compiler.
12. Write the advantage and disadvantages of general purpose macro processor?
Advantage:
1) The programmer does not need to learn about a different macro facility for
62
each complier or assembly language.
2) Cost is high when compared to a special purpose macro processor, but this
expense does not need to be repeated for each language.
Disadvantage:
1) Difference between the programming languages should be identified for Eg.
Comment statements.
2) The syntax used for macro definitions and macro invocations are differed I
each language.
66
Select the part of the target document to be viewed and manipulated
Determine how to format this view on-line and how to display it.
Specify and execute operations that modify the target document.
Update the view appropriately.
Traveling – Selection of the part of the document to be viewed and edited. It involves first
traveling through the document to locate the area of interest such as “next
screenful”, ”bottom”,and “find pattern”. Traveling 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 results 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.
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
68
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.
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.
The editing and viewing buffers, while independent, can be related in many ways. In a
simplest case, they are identical: the user edits the material directly on the screen. On the other
hand, the editing and viewing buffers may be completely disjoint.
5.5.2.1.1 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.
5.5.2.1.3 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, individual instruction, and so on…
5.5.2.1.4 Traceback 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,
69
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.
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.
5.5.2.1.6 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.
TWO MARKS
1.Define interactive editor.
Interactive Editor is a computer program that allows a user to create and revisea target
document.
11. What are the basic types of computing environments used in editor’s functions?
Editors function in three basic types of computing environments
*Time sharing
* stand-alone
*Distributed
72
QUESTION BANK
UNIT-I
1. Explain the SIC machine architecture
2. Explain in detail about data format and addressing modes of SIC.
3. Explain in detail the different stages of the SIC machine architecture.
4. i) Data formats and instruction formats of SIC
ii) Instruction set and I/O programming
5. Explain in detail the architecture of a SIC machine.
6. Explain in detail about system software and machine architecture.
7. What is system software? Explain about components of system software.
UNIT-II
1. Explain the various machine dependent features of assembler
2. Explain the necessity of one pass and multi pass assemblers.
3. i) State and explain the pass 1 algorithm of an assembler.
ii) With an example, explain the concept of program relocation.
4. Explain about the different data structures used by an assembler.
5. Discuss in brief about the machine independent features of an assembler
6. Write short notes on MASM assembler
7. What are the functions performed in pass 1 and pass 2 of a two pass assembler?
8. Differentiate between control sections and program blocks.
9. State and explain the pass 2 algorithm of an assembler.
10. Write notes on program relocation.
UNIT-III
1. With examples, explain the machine independent features of a loader.
2. Discuss the basis loader functions and design relocatable loader.
3. Explain the basic loader functions and states the design of an absolute loader.
4. Explain in brief about the bootstrap loader.
5. Explain in detail how linkage editors are implemented in various machines.
6. Explain dynamic linking concepts in brief.
7. Explain the algorithm and data structure of a linking loader.
8. Differentiate linkage editors with linkage loaders.
9. With diagram, explain how loading and calling of a subroutine is done using dynamic
linking.
10. State the concept of relocation and program linking in detail.
UNIT-IV
1. i) State and explain the algorithm for one pass macro processor.
ii) What are the different data structures used by a macro processor? Explain.
2. Explain the basic macro processor functions with example programs to illustrate macro
definition and expansion.
3. Explain the various machine independent macro processor features, in detail.
4. Write an algorithm for a simple one pass macro expansion.
5. State the algorithm and data structure of a macro processor.
6. Explain in brief about
i) Macro expansion
ii) MASM macro processor
7. Explain the concept of recursive macro expansion in detail
73
8. What is a general purpose macro processor? Explain.
9. Explain conditional macro expansion
10. Discuss in detail about the macro processor design options.
UNIT-V
1. Various features that a basic text editor should possess
2. Discuss about the
i) Interrupt processing
ii) Process scheduling
3. Briefly discuss about machine independent operating system features.
4. Discuss in detail about the various issues related to an interactive debugging system.
5. Briefly discuss about machine dependent operating system features.
6. Discuss in detail about the object oriented operating systems.
7. Write short notes on
i) Multiprocessor operating systems
ii) Distributed operating systems
8. i) How are user interfaces useful? Explain.
ii) Explain the concept of resource allocation.
9. Discuss about the
i) File processing
ii) Job scheduling
10. Explain various operating system design options.
74
B.E. / B.Tech. DEGREE EXAMINATION, Nov/Dec 2009
Third Year – Fifth Semester
Information Technology
CS2304 - System Software
Model Question Paper – I
(Regulations 2008)
Time : 3 Hours Maximum Marks : 100
Answer all questions
PART A – (10 x 2 = 20 Marks)
1. Define system software. Give examples.
2. Explain the instruction format and addressing modes in SIC.
3. What are different assembler directives?
4. What is a literal?
5. Distinguish between program blocks and control sections.
6. Write an algorithm for an absolute loader.
7. Define macro definition and macro expansion.
8. Distinguish between a subprogram and a macro processor.
9. What is the importance of User Interface?
10. What are various functions of a debugger?
PART B - (5 x 16 = 80 Marks)
11. (a) Discuss the SIC/XE architecture, explaining in detail the data and instruction formats. (16)
Or.
(b)Write short notes on
(i) Data and instruction formats.
(ii) Addressing modes of SIC/XE. (16)
12. (a) Discuss in detail pass1 of a two pass assembler. Mention the data structures used.
Or
(b) Explain in detail the features of MASM assembler for Pentium system. (16)
13. (a) Briefly describe the basic Loader Functions and
(ii) Features of machine dependent loader (16)
Or
(b) Explain in detail about
(i) Linkage editors and (ii) Dynamic Linking (16)
14. (a) What are the machine independent features of macro processor?
Explain in detail any two of them (16)
Or
(b) Explain in detail with examples
(a) Conditional Macro expansion
(b) ANSI C Macro Language (16)
15. (a) With a neat block diagram, explain the different components of an editor structure.
(16)
Or
(b) Discuss in detail about an interactive debugging system (16)
75
B.E. / B.Tech. DEGREE EXAMINATION,Nov/Dec 2010
Third Year - Fifth Semester
Information Technology
CS2304 - System Software
Model Question Paper – II
(Regulations 2008)
Time : 3 Hours Maximun Marks : 100
Answer all questions
PART A – (10 x 2 = 20 Marks)
1. Explain the Instruction formats in SIC/XE.
2. What are the different addressing modes in SIC/XE?
3. What are the basic assembler functions?
4. What is the use of Location Counter(LOCCTR)?
5. What are different type of loaders?
6. Differentiate functions of Linking Loader and Linkage Editors.
7. What are the data structures used by a macro processor?
8. What are the functions of MASM macro processor?
9. What are the tasks performed in the editing process?
10. What are tracing and trace back functions?
PART B - (5 x 16 = 80 Marks)
11. (a) Explain with diagram SIC machine architecture. (16)
Or.
(b) Give examples of a) data movement operations and b) Looping and indexing operations
of
SIC/XE (16)
12. (a) Explain in detail the functions of Pass1 and pass2 of two pass assembler and the data
structures used. (16)
Or
(b) Explain the functioning of a) Load-and-go assemblers and b) Multipass assemblers (16)
13. (a) Write an algorithm for Boot strap Loader for SIC/XE
(16)
Or
(b) Explain in detail the functioning of a Linking loader with algorithm and data structures.
(16)
14. (a) Explain in detail the functioning of a macro processor with an algoritm and its data
structures. (16)
Or
(b) What are the machine independent macro processor features? Explain in detail any two of
them (16)
(ii) Explain in detail the MAXM macro processor features. (16)
15. (a) Explain in detail the overview of editing process (16)
Or
(b) Discuss briefly about the need for debugging system and b) user interface criteria (16)
76
B.E. / B.Tech. DEGREE EXAMINATION,Nov/Dec 2010
Third Year - Fifth Semester
Information Technology
CS2304 - System Software
Model Question Paper – III
(Regulations 2008)
Time : 3 Hours Maximun Marks : 100
Answer all questions
PART B - (5 x 16 = 80 Marks)
11. (a) Explain different addressing modes of SIC/XE and explain how the
target address is caculated.. (16)
Or
(b) Explain briefly (i) SIC/XE data formats and b) Pentium Pro architecture (16)
12. (a) Explain in detail i) pass2 of a two pass assembler and ii) Object code format (16)
Or
(b) Explain in detail assembler data structures and their formats. (16)
77
B.E/B.Tech. DEGREE EXAMINATION, NOVEMBER/DECEMBER 2011.
Fifth Semester
Computer Science and Engineering
CS2304 SYSTEM SOFTWARE
(Regulation 2008)
Time: Three hours Maximum:100 marks
Answer ALL questions.
Part A - (10x2=20 marks)
1. Define system software
2.write the abbreviation for the following:
(a)SIC b)XE C) CISC D)RISC
3.Distingush between assembler and interpreter
4. What do you mean by literal?
5. What are the functions of loader and linker?
6. Define relocation.
7.Write any two basic macroprocessor functions.
8. Briefly write about MASM macr processor.
9.Define text editor.
10.What do you mean by debugger?
78
79
80
SYSTEM SOFTWARE
ONLINE QUESTIONS
Questions opt1 opt2 opt3 opt4 Answer
The ________________ has become an program
important part of almost any computing interactive text oriented interactive
environment editor line editor editor screen editor text editor
_________ should be considered as the interactive
primary interface to the computer Text editor document editor preprocessor Text editor
An _______________ is a computer program
program that allows a user to create and oriented interactive interactive
revise target document screen editor line editor editor editor editor
.The term _______ includes object such as
computer
programs,text,equations,tables,diagrams,line
art and photographs Editor Vieewer document element document
In text editors the primary elements edited Character Character
are ___________ of the target text strings numbers character strings strings
Selection of the part of the document to be
viewed and edited involves first _________
through the document to locate the area of
interest editing traveling viewing display traveling
The search is accompolished with operations
such as next screenful,________ top and find bottom and bottom and none of the bottom and
and___________ document formatting find pattern above find pattern
The selection of what is to be viewed and
manipulated is controlled by _________ editing viewing displaying filtering filtering
_________ extracts the relevant subset of
the target document at the point of interest
such as the next screenful of text editing viewing filtering displaying filtering
In editing process the target document is move and
created or altered with a set of oprations like insert & delete replace copy all the above all the above
____________________ might oprate on program program
elements such as identifiers,keywords and oriented interactive oriented
statements screen editor line editor editor editor editor
.______ editors allow operations on program
numbered sequences of 80-character card- oriented interactive
image lines screen editor line editor editor editor line editor
The user interface is concerned with the output interaction
________________ of the system input devices devices language all the above all the above
______ are used to enter elements of the
text being edited,to enter commands,and to output interaction input
designate editable elements input devices devices language all the above devices
The three categories of input devices are choice locator voice input locator
text,button and________ devices string devices devices devices devices devices
_ are typically type-writer like keyboards on
which a user presses and releases keys choice locator voice input string
sending a unique code for each key string devices devices devices devices devices
The _________can be simulated in software
by displaying text strings or symbols on the none of the
screen button textbox mouse above button
The most common locator devices for mouse and
editing applications are the _____________ keyboard mouse data tablet both b and c both b and c
The _____________ is a flat rectangular mouse and
electromagnetically sensitive panel keyboard mouse data tablet both b and c data tablet
A ball point pen like ________ a small device none of the
similar to mouse,is moved over the surface stylus locator button above stylus
The program can map data-tablet
coordinates to __________and move the system screen both a and none of the screen
cursor to the corresponding screen position coordinates coordinates b above coordinates
__________ usually incorporate one or more
buttons that can be used to specfy editing button locator voice input locator
operations string devices devices devices devices devices
text devices text devices
.__________ can be used to simulate locator with the none of the with the
devices cursor keys mouse cursor keys above cursor keys
pressing an arrow key typically generates an number character string of character
appropriate __________ sequence sequence characters all the above sequence
______________ translate spoken words to
their textual equilants may prove to be the choice locator voice input voice input
text input devices of the future string devices devices devices devices devices
______________ are currently available for choice locator voice voice
command input on some systems string devices devices devices recognizers recognizers
character
printing both a and none of the
The first output devices were ___________ teletypewriters terminals b above both a and b
The glass teletypes based on _________
technology used CRT screen essentially to
simulate a hardcopy teletype writer Nano CRT hardware all the above CRT
text
The __________ method is the oldest of the typing- command- both a and none of tha
major editor interfaces oriented oriented b above both a and b
.___________ system require familiarity
with the system and language and expertise typing- menu- functionkey- typing-
in typing oriented oriented oriented editing oriented
____________ system have few keys typing- menu- functionkey- functionkey-
requiring multiple-stroke commands oriented oriented oriented editing oriented
A _____ is a multiple-choice set of text
strings or icons textbox menu function all the above menu
program
.In a _________ the semantic routines oriented
perform function such as editing and viewing text editor line editor editor screen editor text editor
viewing and
display
The semantic routines involve __________ traveling editing functions all the above all the above
current current
.The start of the area to be edited is current editing editing viewing editing
determined by the __________ pointer editing filter buffer pointer pointer
The current editing pointer is maintained by traveling editing viewing editing
the ___________ component component component editing buffer component
The _______________ of the editor
performs the setting of the current editing traveling editing viewing traveling
and viewing pointers. component component component editing buffer component
current
The editing filter filters the document to current editing editing viewing
generate a new_________ pointer editing filter buffer pointer editing buffer
current current
The start of the area to be viewed is current editing editing viewing viewing
determined by the __________ pointer editing filter buffer pointer pointer
The current viewing pointer is maintained by traveling editing viewing viewing
the ___________ component component component editing buffer component
when the display needs to be updated the current
viewing component invokes current editing viewing viewing
the____________ pointer editing filter filter pointer viewing filter
current
The viewing filter filters the document to current editing viewing editing viewing viewing
generate a new_________ pointer buffer buffer pointer buffer
A debugging should also provide functions both a and none of the
like _____________ tracing traceback b above both a and b
__________ can show the path by which the
current statement was reached gaits tracing breakpoints traceback traceback
The _________ takes the idealized view
from the viewing component and maps it to a editing display viewing mapping display
physical output device component component component component component
The components of the editor deal with a
user document in ________ levels 6 7 4 2 2
.Editor datastructure allows _____________
with a minimum of I/O and character
movement addition deletion modification all the above all the above
_________ produce the needed information
in a standard external form for the debugger language language
regardless of the internal form comiler assembler translator interpreter translator