Machine Architecture & Introduction to Assemblers
Introduction, System Software and Machine Architecture, Simplified Instructional Computer (SIC) – SIC Machine Architecture, SIC/XE Machine Architecture, SIC Programming Examples. VAX Architecture, UltraSPARC Architecture. Basic Assembler Function - A Simple SIC Assembler, Assembler Algorithm and Data Structures.
Assemblers
Machine Dependent Assembler Features - Instruction Formats & Addressing Modes, Program Relocation. Machine Independent Assembler Features – Literals, Symbol-Definition Statements, Expression, Program Blocks, Control Sections and Programming Linking, Assembler Design Operations - One-Pass Assembler, Multi-Pass Assembler, Implementation Examples – MASM Assembler, SPARC Assembler
Loaders and Linkers
Basic Loader Functions - Design of an Absolute Loader, A Simple Bootstrap Loader, Machine-Dependent Loader Features – Relocation, Program Linking, Algorithm and Data Structures for a Linking Loader; Machine-Independent Loader Features – Automatic Library Search, Loader Options, Loader Design Options - Linkage Editor, Dynamic Linkage, Bootstrap Loaders, Implementation Examples – MS-DOS linker, SunOS Linker.
Macro Processor
Basic Macro Processor Functions - Macro Definitions and Expansion, Macro Processor Algorithm and Data Structures, Machine-Independent Macro Processor Features –Concatenation of Macro Parameters, Generation of Unique Labels, Conditional Macro Expansion, Keyword Macro Parameters, Macro Processor Design Options – Recursive Macro Expansion, General- Purpose Macro Processors, Macro Processing Within Language Translators, Implementation Examples - MASM Macro Processor.
Compilers
Basic Compilers Functions- Grammars, Lexical Analysis, Syntactic Analysis, Code Generation. Machine Dependent Compiler Features- Intermediate Form of the Program, Machine dependent code Optimization. Machine Independent Compiler Features- Structured variables, Machine Independent code Optimization. Compiler Design Options- Division into passes, Interpreters, P-code Compilers, Compiler-Compilers, SunOS C compiler, YACC Compiler-compiler.
Course Outcome (CO):
At the end of this course, the students will be able to
CO1: Understand the introductory concepts of system software, SIC and SIC/XE machine architecture.
CO2: Understand the design and implementation of Assemblers with implementation examples.
CO3: Design and implement the linkers and loaders, macro processors and respective implementation examples.
CO4: Learn the basic design and working of compilers.
Question paper pattern:
Text Books:
1. Leyland .L Beck: System Software, 3rd Edition, Addison-Wesley, 1997.
Reference Books:
1. J. Nithyashri, “System Software”, 2nd Edition, Tata McGraw Hill, 2010.