0% found this document useful (0 votes)
2 views

Module 1

The document outlines the objectives and content of a systems programming module, focusing on the functionality of system programs such as assemblers, compilers, linkers, and loaders. It emphasizes the importance of understanding the syntax and analysis phase in compiler design, as well as the role of operating systems in managing hardware and software interactions. Key learning outcomes include the ability to identify system programs, explain their workings, and evaluate their contributions to application development.

Uploaded by

mralpha263
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Module 1

The document outlines the objectives and content of a systems programming module, focusing on the functionality of system programs such as assemblers, compilers, linkers, and loaders. It emphasizes the importance of understanding the syntax and analysis phase in compiler design, as well as the role of operating systems in managing hardware and software interactions. Key learning outcomes include the ability to identify system programs, explain their workings, and evaluate their contributions to application development.

Uploaded by

mralpha263
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Module-01

🞂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.3: Students will be able to examine different data structures and


passes of system software like assembler, linker, loader and Macro Processor.

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

🞂J. J. Donovan: Systems Programming Tata McGraw Hill, Edition 1991


for Module-02,03 and 04

🞂A.V. Aho, R. Shethi, Monica Lam, J.D. Ulman: Compilers Principles,


Techniques and Tools, Pearson Education, Second Edition. for Module-05
and 06
🞂Concept of System Software, Goals of system software, system program and
system programming.

🞂Introduction to various system programs such as Assembler, Macro processor,


Loader, Linker, Compiler, Interpreter, Device Drivers, Operating system, Editors,
Debuggers.
🞂 A collection of programs enables the application software to interact
with the hardware

🞂 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

Application Domain Execution Domain


🞂 Interpreter
🞂 Assembler
🞂 Compiler
🞂 Macros and Microprocessors
🞂 Formal systems
🞂 Debugger
🞂 Linkers
🞂 Operating system
❑ OPERATING SYSTEM
Operating System acts as an interface between the application
programs and the machine hardware. It enables all the programs
we use and also organizes and controls the hardware.
❑ The purpose of an operating system is to provide an
environment in which A user can execute programs in a
convenient manner

Examples: Windows, Linux, Unix and Mac OS, etc.


🞂 File handling and management.
🞂 Storage management (Memory management).
🞂 Device scheduling and management.
🞂 CPU scheduling.
🞂 Information management.
🞂 Process control (management).
🞂 Error handling

🞂 Protecting itself from user & protecting user from


other users.
🞂 An assembler is a translator that translates source instructions (in
symbolic language) into target instructions (In machine
language), on a one to one basis. In other words it translates
assembly instructions in to machine instructions.
🞂 A macro instruction (macro) is simply a notational convenience for
the programmer. It represents a commonly used group of statements
in the source program. The macro processor replaces each macro
instruction with the corresponding group of source statements.

◦ This operation is called “expanding the macro”.


🞂A compiler is a computer program that transforms human
readable source code of another computer program into
the machine readable code that a CPU can execute.
🞂The act of transforming source code into machine
code is called "compilation".
🞂A loader is a system program that performs the
loading function.
🞂It is the part of an operating system that is
responsible for loading programs from executables
(i.e., executable files) into memory, preparing them
for execution and then executing them.
🞂 Linker is a program that takes one or more objects
generated by a compiler and combines them into a single
executable program.
🞂 An interpreter normally means a computer program that executes, i.e.
performs, instructions written in a programming language. An interpreter
may be a program that executes the source code directly, translates source
code into some efficient intermediate representation (code) and
immediately executes it or explicitly executes stored precompiled code
made by a compiler which is part of the interpreter system.

You might also like