System Programming

PESIT Bangalore South Campus
Department of MCA
Course Information for
System Programming (13MCA24)
1.GENERAL INFORMATION
Semester(s): 2nd
Academic Year: 2015
2.
Title
Code
System Software
13MCA24
Duration (hrs)
Lectures
48 Hrs
Seminars
4 Hrs
Total:
52 Hrs
PRE REQUIREMENT STATEMENT
Students taking this subject should have knowledge of Assembly language
programming and sound knowledge about Computer organization and architecture.
3.
COURSE RELEVANCE
Understanding System Software is essential for any computer professional to do a
software projects which are system based . As detailed in the preface of the prescribed
text, even simple software systems are inherently quite complex.
System software trains engineers to use different system software programs such as
Assemblers, compilers, Loaders, Linkers, Compilers , Editors, debuggers from
computer science to solve the inherently difficult problems cost-effectively.
System Software was developed to address issues of large projects in system side
such as the Telecom, Avionics industry. Today they are pervasive in various domains
from specialized consoles telecom -based applications.
Although there have been drastic changes in the hardware and thereby software
products used in the last decade or so, the fundamental principles governing these
systems is the same.
This course focuses on the broad Concepts of System Software such as Basic
Machine architectures such as VAX, SIC, SIC/XE, RISC, CISC, PENTIUM PRO,
CRAY T3. And also different system software programs such as Assemblers,
Loaders, Linkers, Compilers, Lexical Analyzer, YACC parser, Debuggers, Editors
e.t.c.
4.
LEARNING OUTCOMES
• What is difference between System software and Application software
• To learn assembly language programming
• To construct the compilers
• To understand the concepts of Loaders, Linkers
• To understand the features of Editors and Debuggers
• To understand the architecture of compilers
• To learns the macro processor programming
5.
FACULTY DETAILS
Details
Name
D.Somashekhara Reddy
Department
MCA
Room
Number
516
E-mail
address
Somashekhara.reddy@gmail.com
Contact
Hours
Office Hours
6. VENUE AND HOURS/WEEK
All lectures will normally be held in Conference room, 5th Floor.
Lecture Hours/week: 4Hrs
7. Module Map
Class
Chapter Title/
Reference
Literature
Topics Covered
Covered
1
Introduction to system software
2
Introduction to machine architecture
3
Machine Architecture Simplified Instructional Computer (SIC) - SIC Machine
Architecture
4
SIC Programming Examples.
5
Simplified Instructional Computer with Extra
Equipment (SIC/XE) – SIC/XE Machine Architecture
6
SIC/XE Programming Examples.
8
Basic Assembler Function.
9
A Simple SIC Assembler.
10
Assembler Algorithm and Data Structures,
11
Machine Dependent Assembler Features
12
Instruction Formats & Addressing Modes, Program
Relocation.
Assemblers
% of Portion
13
Machine Independent Assembler Features.
14
Literals, Symbol-Definition.
15
Statements, Expression, Program Blocks, Control
Sections.
16
One-Pass Assembler.
17
Multi-Pass Assembler.
6Hrs
11%
34%
12Hrs
18
Implementation Examples – MASM Assembler.
19
Basic Loader Functions - Design of an Absolute Loader
20
A Simple Bootstrap Loader.
21
Machine-Dependent Loader Features
22
Loaders and Linkers
Algorithm and Data Structures for a Linking Loader;
24
Machine-Independent Loader Features - Automatic
Library Search.
25
Loader Options, Loader Design Options - Linkage
Editor, Dynamic Linkage,
26
Boot Strap Loaders, Implementation Examples - MSDOS Linker.
27
Text Editors
Editors and
Debugging Systems
Editor Structure
30
Interactive Debugging Systems - Debugging Functions
and Capabilities.
31
Relationship With Other Parts Of The System.
32
User-Interface Criteria
33
Basic Macro Processor Functions - Macro Definitions
and Expansion.
34
Macro Processor Algorithm and Data Structures.
35
Machine-Independent Macro Processor Features Concatenation of Macro Parameters.
36
Generation of Unique Labels, Conditional Macro
Expansion.
37
Keyword Macro Parameters, Macro Processor Design
Options.
Macro Processor
61%
Overview of Editing Process, User Interface
29
38
50%
Relocation, Program Linking
23
28
8 Hrs
Recursive Macro Expansion, General-Purpose Macro
6Hrs
76%
8Hrs
Processors.
39
Macro Processing Within Language Translators.
40
Implementation Examples - MASM
Macro Processor, ANSI C Macro Processor.
41
Basic Compilers Functions
42
Grammars, Lexical Analysis
43
Syntactic Analysis
44
Code Generation
45
Machine Dependent Compiler Features
46
Intermediate Form of the Program
47
Machine dependent code Optimization
48
Machine Independent Compiler Features
49
Structured variables
50
Machine Independent code Optimization
51
Compilers
52
Compiler Design Options- Division into passes,
Interpreters
P-code Compilers, Compiler-Compilers
E S In
f logy – Education for the Real World – Course Information – B.E. 6th Semester CS 1
12Hrs
8.
RECOMMENDED BOOKS
Text Books:
1. Leland.L.Beck: System Software, 3rd Edition, Addison-Wesley, 1997.
(Chapters 1.1 to 1.3, 2 (except 2.5.2 and 2.5.3), 3 (except 3.5.2 and
3.5.3), 4 (except 4.4.3))
2. John.R.Levine, Tony Mason and Doug Brown: Lex and Yacc, O'Reilly,
SPD, 1998.
(Chapters 1, 2 (Page 2-42), 3 (Page 51-65))
Reference Books:
1. D.M.Dhamdhere: System Programming and Operating Systems, 2nd
Edition, Tata McGraw - Hill, 1999.
9.
ASSIGNMENT
1 Differentiate system software and application software.
2 Explain the architecture of SIC.
3 Briefly discuss the various instruction formats available in SIC/XE machine architecture.
4 Explain the addressing modes of SIC with an example each.
5 Explain the addressing modes of SIC/XE with an example each.
6 Explain the 2-pass algorithm of assembler.
7 Explain any three possible data structure for assembler implementation.
8 Explain the concept of relocation with an example.
9 Explain the machine independent features of an assembler.
10 Explain multi-pass assembler.
11 Briefly explain a simple boot-strap loader, with an algorithm or a source program.
12 Explain machine dependent loader features.
13 Explain a relocating loader.
14 Explain the concept program linking.
15 Write and explain the algorithm used for the design of linking loader.
A. WRITTEN EXAMINATION
No. Of
Questions
Exams date
Total Marks
8 Main
Questions
Paper Structure
No. of questions to be answered 5
Paper Duration
Pass Marks
100
B. CONTINUOUS ASSESSMENT
Assignment(s):
Seminar(s):
Test(s):
Total Marks:
Weighting
(%)
5 Marks (10%)
5 Marks (10%)
40 Marks
(80%)
50 Marks
3 Hrs
40
11 QUESTION BANK
Introduction and Machine architecture
1 Differentiate system software and application software.
2 Explain the architecture of SIC.
3 Briefly discuss the various instruction formats available in SIC/XE machine architecture.
4 Explain the addressing modes of SIC with an example each.
5 Explain the addressing modes of SIC/XE with an example each.
6 Differentiate between RISC and CISC machines.
7 Explain with the help of an example each the following instructions
a. ADDF b. COMPF c. COMPR d. DIVF e. DIVR
8 Explain with the help of an example each the following instructions
a. FIX b. FLOAT c. HIO d. NORM e. SIO
9 Explain with the help of an example each the following instructions
a. STCH b. LDT c. LDL d. JEQ e. RMO
10 Explain with the help of an example each the following instructions
a. STF b. RSUM c. SHIFTL d. TD e. WD
11 Explain how input and output operations take place in SIC using sample code.
12 Explain with the help of an example each the following instructions
a. TIO b. COMP c. LPS d. SVC e. TIX
13 Bring out the differences between traditional CISC machines and RISC machines.
14 Explain the VAX architecture with respect to the following:
(i)Memory (ii) Registers (iii) Instruction formats (iv) Addressing modes
(v) Input and output (vi)Data formats
15 With reference to Pentium Pro architecture, explain the following:
(i) Memory (ii) Registers (iii) Instruction formats (iv) Addressing modes
(v) Input and output
16 With reference to Ultra SPARC architecture, explain the following:
(i) Memory (ii) Registers (iii) Instruction formats (iv) Addressing modes (v) Input and
output
17 With reference to Cray T3E architecture, explain the following:
(i) Memory (ii) Registers (iii) Instruction formats (iv) Addressing modes (v) Input and
output
18 With reference to PowerPC architecture, explain the following:
(i) Memory (ii) Registers (iii) Instruction formats (iv) Addressing modes (v) Input and
output
ASSEMBLERS
OBJECTIVE: This unit discusses the basic assembler for SIC. It deals with the fundamental
operations of the assembler. Further it discusses some typical extensions to the basic
assembler. It discusses some of the most commonly encountered machine independent
language features and their implementation. Finally it deals with some important alternative
design schemes for an assembler
19 What are assembler directives? Explain with an example.
20 What are the functions of an assembler?
21 Explain the machine dependent features of an assembler.
22 Explain the 2-pass algorithm of assembler.
23 Explain any three possible data structure for assembler implementation.
24 Enlist the various assembler features that are machine-dependent and machineindependent. Explain any one of them from each.
25 Explain the concept of relocation with an example.
26 Explain the machine independent features of an assembler.
27 Explain control sections.
28 Explain one-pass assembler.
29 Explain multi-pass assembler.
30 Write a note on MASM assembler.
31 Write a note on SPARC assembler.
32 Write a note on AIX assembler.
33 Briefly explain the data structures required for a simple assembler.
34 What are assembler directives? Explain the START and LTORG. 4*
35 Describe how the symbol table and the operation table are used in a two pass assembler
with an example.
36 Generate object code for the below SIC/XE assembly language program. Also show the
contents of symbol table at the end of assembly process.
SUM START 4000
LDX #O
LDA #0
BASE COUNT
ADD TABLE,X
TIX COUNT
JLT LOOP
STA TOTAL
RSUB
TOTAL RESW 1
TABLE RESW 4000
COUNT RESW 1
END
Assume below OP codes(in hexadecimal)
LDX-04 JLT-38
LDA-00 STA-0C
ADD-18 RSUB-4C
TIX-2C
LOADERS AND LINKERS.
OBJECTIVE: This chapter aims in explaining the reader the three important processes:
• Loading, this brings the object program into memory for execution.
• Relocation, which modifies the object program so that it can be loaded at an address
different from the location originally specified.
• Linking, this combines two or more separate object programs and supplies the information
needed to allow references between them.
37 Explain the basic loader functions with the help of the algorithm show the design of
absolute loader.
38 Briefly explain a simple boot-strap loader, with an algorithm or a source program.
39 Explain machine dependent loader features.
40 Explain a relocating loader.
41 Explain the concept program linking.
42 Write and explain the algorithm used for the design of linking loader.
43 Explain the data structures used for linking loader.
44 Explain the machine independent loader features.
45 Explain linkage editors.
46 Write a note on dynamic linking.
47 Briefly describe the significant features of the Microsoft MS-DOS linker for Pentium and
other X86 systems.
48 Explain SunOS linker.
49 Explain Cray MPP linker.
EDITORS AND DEBUGGING SYSTEMS
OBJECTIVE: This section introduces some of the interactive debugging systems. It
discusses interactive text editing systems from the points of both the user and the system. It
gives a general overview of the editing process. it discusses the various types of user
interfaces and i/o devices. Finally it describes the structure of a typical text editor.
50 List the important four tasks to be accomplished by a text editor for an interactive usercomputer dialogue.
51 Write a note on the aspect of user-interface criteria in a text editor.
52 Explain the overview of editing process.
53 Explain user interface.
54 Explain editor structures.
55 Define debugging facilities in text editors.
56 Describe debugging functions and capabilities.
57 With the help of a neat block diagram describe a typical editor structure.
MACROPROCESSORS
OBJECTIVE: This chapter deals with design and implementation of Macro processors.
• It tells that a Macro represents a commonly used group of statements in the source
programming language and how a macro processor replaces each Macroinstruction with
corresponding group of statements.
• It also tells how the Macro processor is related to other pieces of system software such as
assemblers and compilers.
• Finally, it briefly presents three examples of actual Macro processors.
58 Define a macro.
59 Explain the concept of macro definition and macro.
60 Explain the terms with examples.
i) Macro Definition
ii) Macro Invocation
iii) Macro Expansion
61 With regard to the machine-independent macro processor features, explain the following:
(i) Concatenation of macro parameters
(ii) Generation of unique labels
(iii) Conditional macro expansion
(iv) Keyword macro parameters
62 Write and explain the macro processor algorithm.
63 What are the data structures used in the macro processor design?
64 Explain machine independent macro processor features.
65 Explain conditional macros with an example.
66 Explain keyword macro parameters.
67 Explain macro processor design.
68 Write a note on recursive macro.
69 Explain general-purpose macro processors.
70 Explain macro processing in compilers.
71 With an illustrative example, describe the macro processing features of Microsoft MASM
Macro processor.
72 Explain ANSI C macro language.
73 Explain ELENA macro processor.
74 Describe the salient features of ELENA Macro processor.
75 Write SIC assembly level language program to clear a 20-byte string to all blanks.
76 Write SIC/XE assembly level language program to clear a 20-byte string to all blanks.
Use
immediate addressing and register-to-register instruction to make the program efficient.
Write an assembly language program for instructions for SIC to initialize an array of 100
elements to 0.
78 Write an assembly language program for instructions for SIC/XE to initialize an array of
100 elements to 0.
79.Write an assembly language program for SIC machine that will read a 100 byte record and
write it into an output whose address is C0H. Use subroutine.
80 Write an assembly language program for SIC/XE machine that will read 100-byte record
and write it into an output whose address is C0H. Use subroutine.
81 Write an assembly language program to find the largest element in an array Recursively.
82
Write an assembly language program to sort in ascending order using bubble sort
algorithm, a given set of bytes sized unsigned numbers in memory. The sorted elements
should replace the original unsorted elements in memory.
83 Write an assembly language program to compute nCr given n and r using recursion.