GUJARAT TECHNOLOGICAL UNIVERSITY
MASTER OF COMPUTER APPLICATION
SEMESTER: III
Subject Name: System Software (SS)
Subject Code: 630005
Objective:
• To understand the relationship between system software and machine architecture.
• To understand the processing of an HLL program for execution on a computer system.
• To understand the process of scanning and parsing.
• To know the design and implementation of assemblers, macro processor, linker and compiler.
• To have an understanding of loader, system software tools.
• To understand and know the working of device drivers
Prerequisites:
Basic knowledge of computer architecture and C programming.
Contents:
Unit-1: Introduction to System Software and software tools (15%)
Language Processors:
• Introduction
• Language Processing Activities
• Fundamentals of Language Processing & Language Specification
• Language Processor Development Tools.
Data Structures for Language Processing:
• Search Data structures
• Allocation Data Structures.
Software Tools:
• Software Tools for Program Development
• Editors
• Debug Monitors
• Programming Environments
• User Interfaces.
Unit-2: Assemblers (15%)
Assemblers:
• Elements of Assembly Language Programming
• A Simple Assembly Scheme
• Pass Structure of Assemblers
• Design of a Two Pass Assembler
• A single pass Assembler for IBM PC.
Unit-3: Macro Processors (15%)
Macros and Macro Processors:
• Macro Definition and Call
• Macro Expansion
• Nested Macro Calls
• Advanced Macro Facilities
• Design of a Macro Preprocessor.
Unit-4: Compilers and Interpreters (30%)
Scanning and Parsing:
• Introduction to NFA and DFA
• Approaches of parsing
• Different types of parsing techniques namely
• Recursive decent parser
• LL(1) parser
• Operator precedence parser. (First and follow technique for generating a parse table is to be taught)
Compilers and Interpreters:
• Phases of the Compiler
• Aspects of compilation
• Memory allocation
• Compilation of expressions and control structures
• Code optimization
• Interpreters: Use and overview of interpreters
• Pure and impure interpreters.
Unit-5: Linkers and Loaders (15%)
• Introduction to linkers
• Relocation and Linking Concepts
• Design of a Linker
• Self-Relocating Programs
• A Linker for MS-DOS
• Linking for Overlays
• Introduction to Loader
Unit-6: Device drivers (10%)
• Design and anatomy of UNIX device driver: Types of device driver
• General design of UNIX character device driver
• General design of UNIX block device driver
• UNIX device driver installation.
Main Reference Book(s):
1. D. M. Dhamdhere, “Systems Programming and Operating Systems”, Second Revised Edition, Tata
McGraw-Hill, 1999.
2. George Pajari, “Writing UNIX device drivers”, Pearson Education Asia.
Suggested Additional Reading:
1. Leland L. Beck, “System Software – An Introduction to Systems Programming”, 3rd Edition, Pearson
Education Asia, 2000.
2. Santanu Chattopadhyay, “System Software”, Prentice-Hall India,2007
3. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, “Compilers: Principles, Techniques,
and Tools”,2nd Edition, Pearson Education Asia
4. Kenneth C. Louden, “Compiler Construction: Principles and Practice”, (Thomson/Cengage)
Chapter-wise coverage from main reference books:
Book 1: Chapters: 1, 2, 3, 4, 5, 6, 7, 8
Book 2: Chapters: 1, 2, 5, 13
Accomplishments of the student after completing the course:
• Ability to understand the execution process of HLL programs.
• Ability to understand the working of scanners and parsers.
• Ability to understand the basic design of various system software.
• Ability to implement various system software.
• Ability to design and implement efficient programs/applications.
• Ability to know the working of device drivers.
MASTER OF COMPUTER APPLICATION
SEMESTER: III
Subject Name: System Software (SS)
Subject Code: 630005
Objective:
• To understand the relationship between system software and machine architecture.
• To understand the processing of an HLL program for execution on a computer system.
• To understand the process of scanning and parsing.
• To know the design and implementation of assemblers, macro processor, linker and compiler.
• To have an understanding of loader, system software tools.
• To understand and know the working of device drivers
Prerequisites:
Basic knowledge of computer architecture and C programming.
Contents:
Unit-1: Introduction to System Software and software tools (15%)
Language Processors:
• Introduction
• Language Processing Activities
• Fundamentals of Language Processing & Language Specification
• Language Processor Development Tools.
Data Structures for Language Processing:
• Search Data structures
• Allocation Data Structures.
Software Tools:
• Software Tools for Program Development
• Editors
• Debug Monitors
• Programming Environments
• User Interfaces.
Unit-2: Assemblers (15%)
Assemblers:
• Elements of Assembly Language Programming
• A Simple Assembly Scheme
• Pass Structure of Assemblers
• Design of a Two Pass Assembler
• A single pass Assembler for IBM PC.
Unit-3: Macro Processors (15%)
Macros and Macro Processors:
• Macro Definition and Call
• Macro Expansion
• Nested Macro Calls
• Advanced Macro Facilities
• Design of a Macro Preprocessor.
Unit-4: Compilers and Interpreters (30%)
Scanning and Parsing:
• Introduction to NFA and DFA
• Approaches of parsing
• Different types of parsing techniques namely
• Recursive decent parser
• LL(1) parser
• Operator precedence parser. (First and follow technique for generating a parse table is to be taught)
Compilers and Interpreters:
• Phases of the Compiler
• Aspects of compilation
• Memory allocation
• Compilation of expressions and control structures
• Code optimization
• Interpreters: Use and overview of interpreters
• Pure and impure interpreters.
Unit-5: Linkers and Loaders (15%)
• Introduction to linkers
• Relocation and Linking Concepts
• Design of a Linker
• Self-Relocating Programs
• A Linker for MS-DOS
• Linking for Overlays
• Introduction to Loader
Unit-6: Device drivers (10%)
• Design and anatomy of UNIX device driver: Types of device driver
• General design of UNIX character device driver
• General design of UNIX block device driver
• UNIX device driver installation.
Main Reference Book(s):
1. D. M. Dhamdhere, “Systems Programming and Operating Systems”, Second Revised Edition, Tata
McGraw-Hill, 1999.
2. George Pajari, “Writing UNIX device drivers”, Pearson Education Asia.
Suggested Additional Reading:
1. Leland L. Beck, “System Software – An Introduction to Systems Programming”, 3rd Edition, Pearson
Education Asia, 2000.
2. Santanu Chattopadhyay, “System Software”, Prentice-Hall India,2007
3. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, “Compilers: Principles, Techniques,
and Tools”,2nd Edition, Pearson Education Asia
4. Kenneth C. Louden, “Compiler Construction: Principles and Practice”, (Thomson/Cengage)
Chapter-wise coverage from main reference books:
Book 1: Chapters: 1, 2, 3, 4, 5, 6, 7, 8
Book 2: Chapters: 1, 2, 5, 13
Accomplishments of the student after completing the course:
• Ability to understand the execution process of HLL programs.
• Ability to understand the working of scanners and parsers.
• Ability to understand the basic design of various system software.
• Ability to implement various system software.
• Ability to design and implement efficient programs/applications.
• Ability to know the working of device drivers.