PESIT- Bangalore South Campuspesitsouth.pes.edu/pdf/mca/RS/13MCA24-SYSTEM_PROGRAMMING.pdf · 24...
Transcript of PESIT- Bangalore South Campuspesitsouth.pes.edu/pdf/mca/RS/13MCA24-SYSTEM_PROGRAMMING.pdf · 24...
1.GENERAL INFORMATION
Academic Year: 2016 Semester(s): 2nd
Title Code Duration (hrs)
System Software 13MCA24
Lectures 48 Hrs
Seminars 4 Hrs
Total: 52 Hrs
2. 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
PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city)
Bangalore – 560 100
Department of MCA
COURSE INFORMATION SHEET
System Programming (13MCA24)
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
address
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 % of Portion
Covered
1
Machine Architecture
Introduction to system software
6Hrs
11%
2 Introduction to machine architecture
3 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
Assemblers
Basic Assembler Function.
12Hrs
34%
9 A Simple SIC Assembler.
10 Assembler Algorithm and Data Structures,
11 Machine Dependent Assembler Features
12 Instruction Formats & Addressing Modes, Program
Relocation.
13 Machine Independent Assembler Features.
14 Literals, Symbol-Definition.
15 Statements, Expression, Program Blocks, Control
Sections.
16 One-Pass Assembler.
17 Multi-Pass Assembler.
18 Implementation Examples – MASM Assembler.
19
Loaders and Linkers
Basic Loader Functions - Design of an Absolute Loader 8 Hrs 50%
20 A Simple Bootstrap Loader.
21 Machine-Dependent Loader Features
22 Relocation, Program Linking
23 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 - MS-
DOS Linker.
27
Editors and
Debugging Systems
Text Editors
6Hrs
61%
28 Overview of Editing Process, User Interface
29 Editor Structure
30 Interactive Debugging Systems - Debugging Functions
and Capabilities.
31 Relationship With Other Parts Of The System.
32 User-Interface Criteria
33
Macro Processor
Basic Macro Processor Functions - Macro Definitions
and Expansion.
8Hrs
76%
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.
38 Recursive Macro Expansion, General-Purpose Macro
Processors.
39 Macro Processing Within Language Translators.
40 Implementation Examples - MASM
Macro Processor, ANSI C Macro Processor.
41
Compilers
Basic Compilers Functions
12Hrs
100%
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
Compiler Design Options- Division into passes,
Interpreters
E S In
f logy – Education for the Real World – Course Information – B.E. 6th Semester CS 1
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.
52
P-code Compilers, Compiler-Compilers
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
Paper Structure
No. Of
Questions
8 Main
Questions No. of questions to be answered 5
Exams date Paper Duration 3 Hrs
Total Marks 100 Pass Marks 40
B. CONTINUOUS ASSESSMENT
Weighting
(%)
Assignment(s): 5 Marks (10%)
Seminar(s): 5 Marks (10%)
Test(s): 40 Marks
(80%)
Total Marks: 50 Marks
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 machine-
independent. 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 user-
computer 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.