Module 1
Module 1
🞂To understand the role and functionality of various system programs over application
programs.
🞂To understand basic concepts, structure and design of assemblers, macro processors, linkers
and loaders.
🞂To understand the basic principles of compiler design, its various constituent parts,
algorithms and data structures required to be used in the compiler.
🞂To understand the need to follow the syntax in writing an application program and to learn
how the analysis phase of compiler is designed to understand the programmer ‘s requirements
without ambiguity
🞂To synthesize the analysis phase outcomes to produce the object code that is efficient in
terms of space and execution time
CSC601.1: Students will be able to identify and state the basics of system programs such
as editor, compiler, assembler, linker, loader and macro processor.
CSC602.2: Students will be able to explain different system programs and its working.
CSC602.4: Students will be able to distinguish between different loaders and linkers and
their contribution in developing user application.
CSC602.5: Students will be able to evaluate the need of synthesis phase to produce object
code optimized in terms of high execution speed and less memory usage.
CSC602.6: Students will be able to design different parsers for given context free grammar.
🞂D.M Dhamdhere: Systems programming and Operating Systems,
Tata McGraw Hill, Revised Second Edition
for Module-01 and 2
🞂 System Software
◦ Is an interface or buffer between application software and
hardware
◦ Controls the computer hardware and acts as an
interface with applications programs
Operating
Application and
software systems
software
Users
Hardware
🞂 e.g. of system software
🞂Text editor, assembler, compiler, loader or linker,
debugger, macro processors, operating system, database
management systems, software engineering tools, …
🞂 The software designer expresses the ideas in terms related to the
“application domain” of the software but to implement these ideas,
their descriptions need to be interpreted in terms related to the
“execution domain” of the computer system.
The gap between application domain and execution domain is called
Semantic gap.
Semantic Gap