System Programming
Weekly outline
-
Week 0: Course Information
-
Course number and name:
CC 410 – Systems Programming
-
Credits and contact hours
Credits Hours: 3Hrs
Contact Hours: In Lecture 2Hrs, In Tutorial 2Hrs. -
Instructor’s or course coordinator’s name: Dr. Manal Helal
-
Text book, title, author, and year
System software: an introduction to systems programming, Leland L. Beck, 3rd Edition, Addison Wesley, Longman Inc., 1997. -
Catalog description
INTRODUCTION TO SYSTEM PROGRAMMING, MACHINE ARCHITECTURE, MACHINE LANGUAGE, ASSEMBLY LANGUAGE, TWO PASS ASSEMBLERS, ONE PASS ASSEMBLERS, MACRO FACILITIES, CONDITIONAL MACROS, MACRO PROCESSORS, LOADERS, LINKERS, INTRODUCTION TO FORMAL LANGUAGES, COMPILERS AND INTERPRETERS.
Prerequisites: CC319
Type of the course (required, elective, or selected elective course) in the program: Required Course
-
Specific outcomes of instruction
After the completion of this course the students will be able to:
Course Learning Outcomes
SO
1
Study the architecture of a hypothetical machine, its assembly language, macro language.
I,J
2
Program in assembly language.
J
3
Understand the structure and design of assemblers, linkers and loaders.
J
4
Understand the concepts and theory behind the implementation of high level programming languages.
J
Topics to be covered
-
System programming Vs. Application programming
-
Study of a hypothetical machine (SIC machine)
-
Programming in assembly language
-
Structure and design of a two pass assembler
-
Structure and design of one pass assemblers
-
Programming in macro languages
-
Structure and design of macro processors
-
Loaders and linkers
-
Introduction to formal Languages and processing of high level languages
Grading Scheme
Week 7:Midterm 1: 20 marksLab Quiz 1: 5 marks (will be submitted to TAs on time to be graded before the week 7 grades submission)
Assignments and Lab submissions: 5 marks (TAs will need to keep a copy of all submissions they receive for Lecturers and Coordinator revisions)Week 12:Midterm 2: 20 marks if no project submitted, otherwise, the Midterm is 10 marks and the project is 10 marks. The project will be due on week 15, and the proأعمال السنة:
Lab Quiz 2: 5 marks (again given to TAs and marks submitted before week 15)Assignments and Lab Submissions: 5 marksFinal:Practical Exam: 10 marksFinal Exam: 30 marks
Class Rules:
- Please come to lectures/labs on time. Only 5 minutes delay is allowed.
- Cross talking, drinking, eating, using mobiles or any disturbing activity are not allowed during lectures/labs.
- If you need to leave the lecture room for any reason during the lecture, you are not allowed to come back.
- Please pay attention to the lecture, and write your questions down to ask in the last five minutes. Raise your hand and wait for permission to start asking. If time does not allow all questions, please post your questions in the lecture forum before coming to office hours.
- Please submit your own work only with due references in assignments, projects, and exams. Plagiarism and cheating is penalized by zero for the first incident, and following the academy policies in further incidents.
- As you see the marks are distributed on several activities that you should consider as opportunities NOT to miss. There will be no makeups for any activity, so please plan in advance.
-
-
Week 1: Chapter 1 : Background
Learning Objectives:
- System Software and Machine Architecture
- The Simplified Instructional Computer (SIC)
- SIC Machine Architecture.
- SIC/XE Machine Architecture.
-
Week 2: Chapter 1: SIC
Learning Objectives:
- More SIC Programming Examples
Lab Work:
Continue experimenting with the virtual machines, and code examples to understand instruction format and how memory changes during execution
-
Week 3: Chapter 1: SIC
Learning Objectives:
- More SIC Programming Examples
- Traditional (CISC) Machines
- RISC Machines
-
Week 4: Assembler 1
Learning Objectives:
- General Introduction and Manual Assembling of Machine Code
- SIC Assembler Psudocode
- Pass 1 and Pass 2 detailed functions
-
Week 5: Assembler 2 - Machine Dependent Features
Learning Objectives
- Machine Dependent Features: Instruction Formats & Addressing Modes
- Program Relocation
-
Week 6: Assembler 3 - Machine Independent Features
Learning Objectives:
- Symbols,
- Expressions.
-
Week 7: Midterm Exam I
-
Week 8: Assembler 4 - Machine Independent Features
Learning Objectives:
- Program Blocks
- Control Sections
-
Week 9: Easter Holiday. Please arrange a time to makeup the lecture. We agreed before on Wednesday @ 12:30 p.m. Lets do it in Week 13 or 14.
-
Week 10: Loader
Learning Objectives:
- Absolute Loaders
- The process understood manually
- the algorithm
- bootstrap loaders
- Relative Loaders
- The process understood manually
- the algorithm (is explained in the relative linking loader of next section/lecture, without the linking requirements)
- Relocation by M records
- Relocation by Bit Mask
- Absolute Loaders
-
Week 11: Linker
Objectives:
- Linking Loader
- The process understood manually
- The algorithm and the data structures
- Design Options
- Linkage Editors
- Dynamic Linking
- Linking Loader
-
Week 13: Macroprocessor
Objectives:
- Understand macro, how to declare them, how to invoke them
- Understand the design of macroprocessor that defines a macro, and expand it in the output code
- The algorithm and data structures
-
Week 14: Compiler I
Objectives:
- Lexical Analyser: tokenisation
- Syntax Analyser: Parse Trees
- Bottom Up methods: Operator Precedane and Shift/Reduce
- Top Down methods: recursive descent
-
Week 15: Compiler II
Objectives:
- Code Generation