Systems Programming
Weekly outline
-
Course Rules:
Website:
- When you sign up, please use the same name you have in your AASTMT records, and include your AASTMT ID. This how I can migrate your grades to the AASTMT system.
- Login often to follow up with assignment deadlines and announcements. Its your responsibility to keep up with the course. Failure to receive emails or notifications is no excuse. Everything is announced in class and then published in moodle.
Academic Honesty:
- Please confirm with the AASTMT policies regarding plagiarism and cheating. A zero grade for the violating submission will be given the first time, then reported to the department for further action.
- Please ask questions in the online forum to allow everyone to join and benefit from the discussions, and avoid private emails to the lecturers and TAs. Contact the teachers privately only about your personal grades or circumstances, not about the course content.
How to score A+ in this course?
- Please do all practicals and assignments and study regularly. In case of problems, please ask questions. Accumulating problems will make things worse as the semester goes by.
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.
Learning Outcomes:
The student will be able to:
- Study the architecture of a hypothetical machine, its assembly language, macro language..
- Program in assembly language.
- Understand the structure and design of assemblers, linkers and loaders.
- Understand the concepts and theory behind the implementation of high level programming languages.
Course Topics:
- 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
TEXT BOOK
System software: an introduction to systems programming, Leland L. Beck, 3rd Edition, Addison Wesley, Longman Inc., 1997.
PREREQUISITE: CC319
Grading Scheme:
Week 7
Quizes
5%
Lab Submissions
2.5%
Assignments
2.5%
Midterm 1
20%
Week 12
Quizes
5%
Lab Submissions
2.5%
Assignments
2.5%
Midterm 2
10%
Project
10%
Final Exam
40%
-
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
-
Eid Al- Adha Holidays
-
Week 3: Chapter 1: SIC
Learning Objectives:
- More SIC Programming Examples
- Traditional (CISC) Machines
- RISC Machines
-
Week 4/5: Assembler 1
Learning Objectives:
- General Introduction and Manual Assembling of Machine Code
-
Week 6: Assembler 2
Learning Objectives
- SIC Assembler Psudocode
- Pass 1 and Pass 2 detailed functions
-
Week 7: Midterm Exam I
-
Week 8: Assembler 3
Learning Objectives:
- Machine Dependent Functions: Instruction Formats & Addressing Modes
- Program Relocation
- Machine Independent Features (Literals, Symbols, Expressions,
-
Week 9: Assembler 4
Learning Objectives:
- Program Blocks
- Control Sections
- One Pass
- Multipass
-
Week 10: Loader, Given in Compensation Lecture in Tuesday the 12th of Dec as agreed
-
Week 11: Linker
-
Week 12: Midterm Exam II
-
Week 13: Macro Processors
-
Week 14: Compilers
-
Week 15: Compiler 2