Last Updated on by ICT Byte
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
Course Description:
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.
Course Objectives
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
Course Contents
Unit 1: SIC and SIC/XE Machine Structure 4 hrs
1.1 Introduction
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
Textbook
- System Software: An Introduction to Systems Programming by Leyland L.Beck: Addision Wesley Publishing Company.
Reference Books:
- 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.