Systems Programming

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


  • System Software: An Introduction to Systems Programming by Leyland L.Beck: Addision Wesley Publishing Company.

Reference Books:

  1. Daniel H. Marcellus, Systems programming for Small Computers, prentice‐Hall, New 44 Jersey
  2. Roy S. Ellzey, Computer System Software, The Programmer/Machine Interface, Inc.,
  3. Robert M. Grahm , Principles of Systems Programming, John Wiley & Sons
  4. Thomas G. Windeknecht, 6502Systems programming, Little Brown & Company Outcomes and AssessmentStudent should design and implement Assembler and Linking Loader for simple hypothetical computer architecture.