Course Title: Systems Programming
Full Marks: 45+30
Course Code: C.Sc. 565
Pass Marks: 22.5+15
Credit Hours = 3
Nature of the course: Theory +Lab
This course will introduce the design and implementation of machine dependent, as well as machine independent aspects of assembler, loader, linker, microprocessor and some aspects of compiler. A project involving implementation of an assembler, a linker, a loader, and a compiler will form an integral part of the course.
The purpose of this course is to present the basic structure and design of a micro‐assembler, a linker, a loader, and a compiler. Since software components are best learned by implementation, each student will complete a project independently which will involve the design and implementation of these three software components. Prerequisites Logic Design, Data Structure and algorithm, Programming language, Familiarity with assembly language programming
Unit 1: SIC and SIC/XE Machine Structure 4 hrs
1.2 System software and machine architecture
1.3 Simplified Instructional computers SIC, SIC/XE architecture.
1.4 RISC and CISC machine architecture.
Unit 2: Assembler Design 20 hrs
2.1 Basic assembler functions: Simple SIC Assembler, Data structures for Assembler
2.2 Machine dependent assembler features: Instruction formats and addressing modes, program relocation
2.3 Machine independent assembler features: Literals, Symbol defining statements, program blocks, control sections, program linking
2.4 Assemblers Design Options: One pass assembler, multi-pass assembler
Unit 3: Loader and Linker Design 8 hrs
3.1 Basic loader functions: Design of absolute loader, Simple Bootstrap loader
3.2 Machine dependent features: Relocation, Program Linking
3.3 Machine independent Loader Features: Automatic library Search, loader options
3.4 Design Options: Linking Loader, Linkage Editor, Dynamic Linking
Unit 4: Macro processor Design 8 hrs
4.1 Basic Macro processor functions: Macro Definition and Macro Expansion, Data structures for Macro processor
4.2 Machine Independent features: Concatenation of Macro Parameters, Generation of Unique Labels, Conditional Macro Expansion
4.3 Macro processor Design Options: Recursive Macro Expansion, General Purpose Macro Processors
Unit 5: Compiler Design 5 hrs
5.1 Basic Compiler Functions: Grammar, Lexical Analysis, Syntactic Analysis (operator precedence parsing, Recursive Descent Parsing), intermediate code generation
- System Software: An Introduction to Systems Programming by Leyland L.Beck: Addision Wesley Publishing Company.
- Daniel H. Marcellus, Systems programming for Small Computers, prentice‐Hall, New 44 Jersey
- Roy S. Ellzey, Computer System Software, The Programmer/Machine Interface, Inc.,
- Robert M. Grahm , Principles of Systems Programming, John Wiley & Sons
- Thomas G. Windeknecht, 6502Systems programming, Little Brown & Company Outcomes and AssessmentStudent should design and implement Assembler and Linking Loader for simple hypothetical computer architecture.