System Programming
System Programming
Bachelor of Technology
Effective from Academic Year: 2018-19
Course Objective:
To enlighten the design ideas of different system softwares like Assembler, Compiler, Interpreter,
Linker, Loader and Macro preprocessor, Utility Programs such as Text Editor and Debugger.
To familiarize and encourage the students to use various software tools for developing System
programs.
Teaching Scheme
Evaluation Scheme (Marks)
(Hours per week)
Theory (Marks) Practical (Marks)
Lecture Tutorial Practical Total
Credit University Continuous University Continuous
(L) (T) (P) (Marks)
Assessment Assessment Assessment Assessment
03 - 02 04 70 30 30 20 150
Subject Contents
Sr. Total Weightage
Topic
No Hours (%)
Introduction to System Software and Language Processing: System
Software Vs. Application Software, Different System Software, Overview of
Assembler, Linker, Loader, Macro Processor, Text Editor, Debugger,
1 Compiler, Interpreter, Operating System, Language processors, Language 3 10
Processing Activities, Fundamentals of Language Processing, Fundamentals of
Language Specification, Language Processor Development Tools: LEX and
YACC
Assemblers: Need of Assembler, Types of Assemblers , Elements of Assembly
2 Language Programming, Design specification of an Assembler, Single pass and 7 16
Two pass translation of an Assembler, Design of a two pass Assembler
Macros and Macro processor: Macro , Advantages of using Macro , Macro
Vs Procedure , Macro Definition and Call , Macro Expansion , Nested Macro
3 7 16
Calls , Advanced Macro Facilities, Functions of Macro Preprocessor, Design
of a Macro preprocessor, Design of a Macro Assembler
Compilers and Interpreters: Introduction to Compilers, Phases of a compiler,
Aspects of compilation, Static and Dynamic Memory Allocation, Memory
4
allocation in block structured languages, Compilation of Expressions: Operand 7 16
descriptor, Register descriptor, Expression tree, Intermediate code for
1|Page
expression, Parameter passing mechanism, Code optimizing techniques, Local
and global optimization, comparison of compilers and interpreters, Use of
interpreter, Overview of Interpretation, Pure and impure interpreter
Scanning and Parsing: The Scanning Process ,Regular Grammars and Regular
Expression, Finite state automata, The role of a parser, parse tree, abstract
5 syntax tree, Elimination of Left recursion, Left factoring, Top down parsing- 8 17
Recursive descent parser, LL (1) parser, Bottom up parsing-Shift-reduce Parser,
Operator Precedence Parsing, LR Parsers
Linker and Loader: Fundamentals of Relocation and Linking , Relocation and
Linking algorithm, Self-relocating programs, Overlays, Basic Loader functions
6 – Design of absolute loader, Direct Linking Loader, Compile-and-Go Loaders, 4 15
General Loader Schemes, Relocating Loaders, Bootstrap Loader, Dynamic
Loader
System Tools: Editors and Debuggers: Types of text editors, Editor Structure,
Types of Errors, Debugging Procedures, Classification of Debuggers,
7 Dynamic/Interactive Debugger – Interactive debugging systems - Debugging 3 10
functions and capabilities – Relationship with other parts of the system – User-
Interface Criteria.
Course Outcome:
After learning the course, the students will be able :
To understand design, analyze and implementation of one pass, two pass or multi pass assembler,
loader and linker, macro processors.
To critique the features of modern editing /debugging tools.
To use Lex tool used for generating lexical analyzer and YACC to implement various parser
To write macros as and when required to increase readability and productivity.
To apply optimization principles on given code
2|Page
6. Write a program to remove the Left Recursion from a given grammar.
7. Write a program to implement DFA to check whether the given binary number is even.
8. Implement pass one and pass two of a two pass assembler.
9. Write a program which generates Quadruple Table for the given postfix String.
10. To study about LEX and YACC.
11. Implement following program using LEX.
(i)Program to count the number of characters, words, spaces and Lines in a given input file.
3|Page