SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
Unit I : Introduction To Systems Programming
I.I. Language Processors
1.

Systems Programming: involves developing those programs that interface the
computer system (the hardware) with the programmer and the user. These
programs include compilers, interpreters, assemblers, I/O routines, schedulers,
etc.

2.

How is systems Programming different from other types of programming ?
Systems programs are different from application programs in many ways.
a) Systems programs must deal effectively with unpredictable events or
“exceptions” (such as I/O errors).
b) Systems programs must co-ordinate the activities of various asynchronously
executing programs.
Most systems programming is done with assembly language, but C, C++, and C#
(C Sharp) are also used.

3.

Syntax of Programming Languages: ( syntax ∴ grammar)
The syntax of a programming language is the set of rules and writing
conventions that allow the formation of correct programs in a language. Syntax
deals only with the “representation”; it only controls the structure of a sentence
and nothing more. Syntax has nothing to do with the meaning or runtime
behaviour of a program. E.g., a program may be syntactically correct but not do
anything useful.
The syntax of a language is built from “syntactic elements” or “syntactic units”.
Examples of syntactic units are:
(a) Character set – e.g., English and mathematical symbols,
(b) Identifiers – names for variables, functions, etc.,
(c) Keywords,
(d) Noise words – optional words inserted in programs to improve program
readability,
(e) Comments – for program documentation,
(f) Spaces,
(g) Delimiters – e.g., to mark the beginning and end of a function in C, we use
the pair of curly braces { and }, while in Pascal we use BEGIN and END.
Requirements of syntax: We want a language with a syntax that is:
(a) Easy to read → hence easy to debug.
(b) Easy to write → fewer bugs in program
(c) Easy to verify the correctness of a program
(d) Easy to translate into another language
(e) Not ambiguous.

mukeshtekwani@hotmail.com

Page 1 of 6
Introduction to Systems Programming

4.

Prof. Mukesh N. Tekwani

Semantics: ( semantics ∴ meaning )
Semantics pertains to the meaning of words. The semantics of a language is a
description of what the sentences mean. It is much more difficult to express the
semantics of a language than it is to express the syntax. E.g., the sentence “They
are flying airplanes” has more than one meaning.
In order to implement a programming language we must know what each
sentence means (declaration, expression, etc).
E.g., does the sentence
!" produce an output,
!" take any inputs,
!" change the value stored in a variable,
!" produce an error.

5.

Domain: It refers to the scope or sphere of any activity.

6.

Application Domain: The scope of an application is its application domain.
E.g., the application domain of an inventory program is
!" warehouse and its associated tangibles (goods, machinery, etc),
!" transactions (e.g., receiving goods, purchase orders, locating goods,
shipping of goods, receiving payments, etc),
!" people (e.g., workers, managers, customers).
All the above are objects in the application domain. The application domain can
best be described by a person in that domain. E.g., the warehouse manager in the
above example.

7.

Execution Domain: (also called as the solution domain). The execution domain
is the work of programmers, e.g., program code, documentation, test results,
files, computers, etc.
The solution domain is partitioned into two levels:
!" Abstract, high-level documents, such as flow charts, diagrams
!" Low-level – data structures, function definitions, etc.

8.

Semantic Gap: The difference between the semantics of the application domain
and the execution domain is called the semantic gap.
Semantic Gap

Application
Domain
(problems,
ideas,
methods, to solve these
problems)

Page 2 of 6

Execution
Domain
(machine code, devices,
etc.)

mukeshtekwani@hotmail.com
Prof. Mukesh N. Tekwani

Introduction to Systems Programming

Consequences of semantic gap:
!" Large development times – interaction between designers in application domain and
programmers.
!" Large development efforts.
!" Poor quality of software.
How is the semantic gap reduced?
The semantic gap is reduced by programming languages (PL). The use of a PL
introduces a new domain called the programming language domain (or PL domain).
Execution
gap

Specification gap

Application

Domain

PL Domain

(problems,
ideas,
methods, to solve these
problems)

Execution

Domain

(machine code, devices,
etc.)

The PL domain bridges the gap between the application domain and the execution
domain.
!" Specification gap: It is the semantic gap between the application domain and the PL
domain. It can also be defined as the semantic gap between the two specifications of
the same task. The specification gap is bridged by the software development team.
!" Execution gap: It is the gap between the semantics of programs written in different
programming languages. The execution gap is bridged by the translator or
interpreter.

Advantages of introducing the PL domain:
(a) Large development times are reduced.
(b) Better quality of software.
(c) Language processor provides diagnostic capabilities which detects errors.
9.

Language Processor: It is a software which bridges the specification or execution
gap.

10.

Language Processing: It is any activity performed by a language processor.
Diagnostic capability is a feature of a language processor. The input of a language

mukeshtekwani@hotmail.com

Page 3 of 6
Introduction to Systems Programming

Prof. Mukesh N. Tekwani

processor is the source program. The output of a language processor is the target
program. The target program is not produced if the language processor finds any
errors in the source program.

Source program

Language Processor

Target program

Types of language processors:
(a)

Language Translator: This bridges the execution gap to the machine language
of a computer system. Examples are compiler and assembler.

(b)

De-translator: Similar to translator, but in the opposite direction.

(c)

Preprocessor: This is a language processor whose source and target languages
are both high level, i.e., no translation takes place.

11. Problem-oriented Languages: In case of problem-oriented languages. The the PL
domain is very close to the application domain. The specification gap is reduced in
this case. Such PLs can be used only for specific applications, hence they are called
problem-oriented languages. They have a large execution gap, but the execution gap
is bridged by the translator or interpreter. Using these languages, we only have to do
specify “what to do”. Software development takes less time using problem-oriented
languages, but the resultant code may not be optimized. Examples : Fourth
generation languages (4GL) like SQL.
12. Procedure-oriented languages: These provide general facilities and features which are
required in most applications. These languages are independent of application domains.
Hence, there is a large specification gap. The gap must be bridged by the application
designer. Using these languages, we have to specify “what to do” and “how to do”.
Examples. C, C++, FORTRAN, etc.

13. Compiler: A compiler is a language translator. It translates a source code (programs
in a high-level language) into the target code (machine code, or object code).

Source program

Input

Compiler

Target program

Target program

Output

To do this translation, a compiler steps through a number of phases. The simplest is
a 2-phase compiler. The first phase is called the front end and the second phase is
called the back end.
Page 4 of 6

mukeshtekwani@hotmail.com
Prof. Mukesh N. Tekwani

Introduction to Systems Programming

Front End: The front end translates from the high-level language to a common
intermediate language. The front end is source language dependent but it is
machine-independent. Thus, the front end consists of the following phases: lexical
analysis, syntactic analysis, creation of symbol table, semantic analysis and
generation of intermediate code. The front end also includes error-handling routines
for each of these phases.
Back End: The back end translates from this common intermediate language to the
machine code. The back end is machine dependent. This includes code optimization,
code generation, error-handling and symbol table operations. Thus, a compiler
bridges the execution gap.
14. Interpreter: It is a language processor. It also bridges the execution gap but does
not generate the machine code. An interpreter executes a program written in a high
level language. The essential difference between a compiler and an interpreter is that
while a compiler generates the machine code and is then no longer needed, an
interpreter is always required.

Source program
Interpreter

Output

Input

Characteristics of interpreter:
!" Machine code is not stored.
!" Source code is essential for repeated execution of statements.
!" Statement is analysed during its interpretation.
!" Useful for testing and debugging as overhead of storage is not incurred.
Differences between compiler and interpreter:
COMPILER

INTERPRETER

1.

Scans the entire program first and
then translates it into machine
code.

1.

Translates the program line-by-line.

2.

Converts the entire program to
machine code; when all the syntax
errors
have
been
removed,
execution takes place.

2.

Each time the program is executed,
every line is checked for syntax error
and then converted to equivalent
machine code.

3.

Execution time is less

3.

Execution time is more.

4.

Machine code can be saved and
used; source code and compiler no
longer needed.

4.

Machine code cannot be saved;
interpreter is always required for
translation.

mukeshtekwani@hotmail.com

Page 5 of 6
Introduction to Systems Programming

Prof. Mukesh N. Tekwani

5.

Since source code is not required,
tampering with the source code is
not possible.

5.

Source code can be easily modified and
hence no security of programs.

6.

Slow for debugging.

6.

Fast for debugging.

REVIEW QUESTIONS
1.

Define the term “systems programming”. How is systems programming different from
other types of programming?

2.

Define the term “syntax” in the context of programming languages. What are the
desirable qualities of syntax?

3.

What are syntactic units. Illustrate with examples.

4.

Explain the term “semantics” in the context of programming languages.

5.

Explain the concept of domain; elaborate on the terms “application domain” and
“execution domain”.

6.

What is “semantic gap”?
reduced?

7.

What is the need of introducing the PL domain?

8.

Explain the terms “problem-oriented language” and “procedure-oriented language”.
Give two examples of each. Mention briefly the merits and demerits of each type of
language.

9.

Define the terms “front end” and “back end” as applied to a compiler.

What are the consequences of this gap? How is this gap

10. Explain the difference between preprocessor and language translator.
11. Mention the major differences between compiler and interpreter.
*********

Page 6 of 6

mukeshtekwani@hotmail.com

More Related Content

What's hot (20)

PPTX
Two pass Assembler
Satyamevjayte Haxor
 
PPTX
System Programing Unit 1
Manoj Patil
 
PPT
Assembler
manpreetgrewal
 
PDF
Language processors
Ganesh Wedpathak
 
PPT
Compiler Design
Mir Majid
 
PPTX
Direct linking loaders
Satyamevjayte Haxor
 
PPTX
Phases of compiler
Akhil Kaushik
 
PDF
Unit 2
pm_ghate
 
PPTX
Loaders ( system programming )
Adarsh Patel
 
PPTX
MACRO PROCESSOR
Bhavik Vashi
 
PPT
Assemblers: Ch03
desta_gebre
 
PPTX
Unit 3 sp assembler
Deepmala Sharma
 
PPTX
Recognition-of-tokens
Dattatray Gandhmal
 
PPTX
Language processing activity
Dhruv Sabalpara
 
PPTX
Introduction to loaders
Tech_MX
 
PPTX
Compiler Chapter 1
Huawei Technologies
 
PPTX
Critical section problem in operating system.
MOHIT DADU
 
PPT
Regular expressions-Theory of computation
Bipul Roy Bpl
 
PDF
Token, Pattern and Lexeme
A. S. M. Shafi
 
PDF
Run time storage
Rasineni Madhan Mohan Naidu
 
Two pass Assembler
Satyamevjayte Haxor
 
System Programing Unit 1
Manoj Patil
 
Assembler
manpreetgrewal
 
Language processors
Ganesh Wedpathak
 
Compiler Design
Mir Majid
 
Direct linking loaders
Satyamevjayte Haxor
 
Phases of compiler
Akhil Kaushik
 
Unit 2
pm_ghate
 
Loaders ( system programming )
Adarsh Patel
 
MACRO PROCESSOR
Bhavik Vashi
 
Assemblers: Ch03
desta_gebre
 
Unit 3 sp assembler
Deepmala Sharma
 
Recognition-of-tokens
Dattatray Gandhmal
 
Language processing activity
Dhruv Sabalpara
 
Introduction to loaders
Tech_MX
 
Compiler Chapter 1
Huawei Technologies
 
Critical section problem in operating system.
MOHIT DADU
 
Regular expressions-Theory of computation
Bipul Roy Bpl
 
Token, Pattern and Lexeme
A. S. M. Shafi
 
Run time storage
Rasineni Madhan Mohan Naidu
 

Similar to Introduction to systems programming (20)

PPTX
Overview of language processor course d&a
HarshBafna8
 
PDF
4.LanguageProcessors and language Processing Activities.pdf
SwapnaliPawar27
 
PPTX
System programming vs application programming
Inderbir Kaur Sandhu
 
PPT
Chap 1-language processor
shindept123
 
PPT
Chap 1-dhamdhere system programming
TanzoGamerz
 
PDF
SPCC:System programming and compiler construction
mohdumaira1
 
PPTX
Unit 1_Evaluation Criteria_session 3.pptx
Guru Nanak Technical Institutions
 
PPTX
Principles of Intro to Programming Languages
nnillas140014tc
 
PDF
CS-321 Compiler Design computer engineering PPT.pdf
chauhanmr47
 
PPTX
Introduction to System Programming
Meghaj Mallick
 
PPT
introduction computer programming languages
BakhatAli3
 
PPTX
System Programming Overview
Dattatray Gandhmal
 
PPTX
Chapter 1: Theory of programming languages
LaraibSaeed4
 
PPTX
Python Programming-Skill Course - unit-i.pptx
KavithaDonepudi
 
PPTX
Language processors
Yash Bansal
 
PPT
Introduction to C for Btech 1st year.ppt
simantpandit9d
 
PPTX
Python-unit -I.pptx
crAmth
 
PPTX
Compiler Design Introduction With Design
rashmishekhar81
 
PPTX
Preliminary Concepts in principlesofprogramming.pptx
yogashreeyoga1100
 
PPTX
Principlesofprogramminglanguage concepts.pptx
yogashreeyoga1100
 
Overview of language processor course d&a
HarshBafna8
 
4.LanguageProcessors and language Processing Activities.pdf
SwapnaliPawar27
 
System programming vs application programming
Inderbir Kaur Sandhu
 
Chap 1-language processor
shindept123
 
Chap 1-dhamdhere system programming
TanzoGamerz
 
SPCC:System programming and compiler construction
mohdumaira1
 
Unit 1_Evaluation Criteria_session 3.pptx
Guru Nanak Technical Institutions
 
Principles of Intro to Programming Languages
nnillas140014tc
 
CS-321 Compiler Design computer engineering PPT.pdf
chauhanmr47
 
Introduction to System Programming
Meghaj Mallick
 
introduction computer programming languages
BakhatAli3
 
System Programming Overview
Dattatray Gandhmal
 
Chapter 1: Theory of programming languages
LaraibSaeed4
 
Python Programming-Skill Course - unit-i.pptx
KavithaDonepudi
 
Language processors
Yash Bansal
 
Introduction to C for Btech 1st year.ppt
simantpandit9d
 
Python-unit -I.pptx
crAmth
 
Compiler Design Introduction With Design
rashmishekhar81
 
Preliminary Concepts in principlesofprogramming.pptx
yogashreeyoga1100
 
Principlesofprogramminglanguage concepts.pptx
yogashreeyoga1100
 
Ad

More from Mukesh Tekwani (20)

PDF
The Elphinstonian 1988-College Building Centenary Number (2).pdf
Mukesh Tekwani
 
PPSX
Circular motion
Mukesh Tekwani
 
PPSX
Gravitation
Mukesh Tekwani
 
PDF
ISCE-Class 12-Question Bank - Electrostatics - Physics
Mukesh Tekwani
 
PPTX
Hexadecimal to binary conversion
Mukesh Tekwani
 
PPTX
Hexadecimal to decimal conversion
Mukesh Tekwani
 
PPTX
Hexadecimal to octal conversion
Mukesh Tekwani
 
PPTX
Gray code to binary conversion
Mukesh Tekwani
 
PPTX
What is Gray Code?
Mukesh Tekwani
 
PPSX
Decimal to Binary conversion
Mukesh Tekwani
 
PDF
Video Lectures for IGCSE Physics 2020-21
Mukesh Tekwani
 
PDF
Refraction and dispersion of light through a prism
Mukesh Tekwani
 
PDF
Refraction of light at a plane surface
Mukesh Tekwani
 
PDF
Spherical mirrors
Mukesh Tekwani
 
PDF
Atom, origin of spectra Bohr's theory of hydrogen atom
Mukesh Tekwani
 
PDF
Refraction of light at spherical surfaces of lenses
Mukesh Tekwani
 
PDF
ISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGE
Mukesh Tekwani
 
PPSX
Cyber Laws
Mukesh Tekwani
 
PPSX
Social media
Mukesh Tekwani
 
The Elphinstonian 1988-College Building Centenary Number (2).pdf
Mukesh Tekwani
 
Circular motion
Mukesh Tekwani
 
Gravitation
Mukesh Tekwani
 
ISCE-Class 12-Question Bank - Electrostatics - Physics
Mukesh Tekwani
 
Hexadecimal to binary conversion
Mukesh Tekwani
 
Hexadecimal to decimal conversion
Mukesh Tekwani
 
Hexadecimal to octal conversion
Mukesh Tekwani
 
Gray code to binary conversion
Mukesh Tekwani
 
What is Gray Code?
Mukesh Tekwani
 
Decimal to Binary conversion
Mukesh Tekwani
 
Video Lectures for IGCSE Physics 2020-21
Mukesh Tekwani
 
Refraction and dispersion of light through a prism
Mukesh Tekwani
 
Refraction of light at a plane surface
Mukesh Tekwani
 
Spherical mirrors
Mukesh Tekwani
 
Atom, origin of spectra Bohr's theory of hydrogen atom
Mukesh Tekwani
 
Refraction of light at spherical surfaces of lenses
Mukesh Tekwani
 
ISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGE
Mukesh Tekwani
 
Cyber Laws
Mukesh Tekwani
 
Social media
Mukesh Tekwani
 
Ad

Recently uploaded (20)

PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PDF
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
PDF
Android Programming - Basics of Mobile App, App tools and Android Basics
Kavitha P.V
 
PPTX
Difference between write and update in odoo 18
Celine George
 
PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PDF
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
PPTX
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
PDF
Horarios de distribución de agua en julio
pegazohn1978
 
PPTX
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
PDF
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
PPTX
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PPTX
Introduction to Biochemistry & Cellular Foundations.pptx
marvinnbustamante1
 
PDF
epi editorial commitee meeting presentation
MIPLM
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PDF
Introduction presentation of the patentbutler tool
MIPLM
 
PPTX
How to Create a Customer From Website in Odoo 18.pptx
Celine George
 
PDF
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
Android Programming - Basics of Mobile App, App tools and Android Basics
Kavitha P.V
 
Difference between write and update in odoo 18
Celine George
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
Horarios de distribución de agua en julio
pegazohn1978
 
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
Introduction to Biochemistry & Cellular Foundations.pptx
marvinnbustamante1
 
epi editorial commitee meeting presentation
MIPLM
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
Introduction presentation of the patentbutler tool
MIPLM
 
How to Create a Customer From Website in Odoo 18.pptx
Celine George
 
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 

Introduction to systems programming

  • 1. Unit I : Introduction To Systems Programming I.I. Language Processors 1. Systems Programming: involves developing those programs that interface the computer system (the hardware) with the programmer and the user. These programs include compilers, interpreters, assemblers, I/O routines, schedulers, etc. 2. How is systems Programming different from other types of programming ? Systems programs are different from application programs in many ways. a) Systems programs must deal effectively with unpredictable events or “exceptions” (such as I/O errors). b) Systems programs must co-ordinate the activities of various asynchronously executing programs. Most systems programming is done with assembly language, but C, C++, and C# (C Sharp) are also used. 3. Syntax of Programming Languages: ( syntax ∴ grammar) The syntax of a programming language is the set of rules and writing conventions that allow the formation of correct programs in a language. Syntax deals only with the “representation”; it only controls the structure of a sentence and nothing more. Syntax has nothing to do with the meaning or runtime behaviour of a program. E.g., a program may be syntactically correct but not do anything useful. The syntax of a language is built from “syntactic elements” or “syntactic units”. Examples of syntactic units are: (a) Character set – e.g., English and mathematical symbols, (b) Identifiers – names for variables, functions, etc., (c) Keywords, (d) Noise words – optional words inserted in programs to improve program readability, (e) Comments – for program documentation, (f) Spaces, (g) Delimiters – e.g., to mark the beginning and end of a function in C, we use the pair of curly braces { and }, while in Pascal we use BEGIN and END. Requirements of syntax: We want a language with a syntax that is: (a) Easy to read → hence easy to debug. (b) Easy to write → fewer bugs in program (c) Easy to verify the correctness of a program (d) Easy to translate into another language (e) Not ambiguous. [email protected] Page 1 of 6
  • 2. Introduction to Systems Programming 4. Prof. Mukesh N. Tekwani Semantics: ( semantics ∴ meaning ) Semantics pertains to the meaning of words. The semantics of a language is a description of what the sentences mean. It is much more difficult to express the semantics of a language than it is to express the syntax. E.g., the sentence “They are flying airplanes” has more than one meaning. In order to implement a programming language we must know what each sentence means (declaration, expression, etc). E.g., does the sentence !" produce an output, !" take any inputs, !" change the value stored in a variable, !" produce an error. 5. Domain: It refers to the scope or sphere of any activity. 6. Application Domain: The scope of an application is its application domain. E.g., the application domain of an inventory program is !" warehouse and its associated tangibles (goods, machinery, etc), !" transactions (e.g., receiving goods, purchase orders, locating goods, shipping of goods, receiving payments, etc), !" people (e.g., workers, managers, customers). All the above are objects in the application domain. The application domain can best be described by a person in that domain. E.g., the warehouse manager in the above example. 7. Execution Domain: (also called as the solution domain). The execution domain is the work of programmers, e.g., program code, documentation, test results, files, computers, etc. The solution domain is partitioned into two levels: !" Abstract, high-level documents, such as flow charts, diagrams !" Low-level – data structures, function definitions, etc. 8. Semantic Gap: The difference between the semantics of the application domain and the execution domain is called the semantic gap. Semantic Gap Application Domain (problems, ideas, methods, to solve these problems) Page 2 of 6 Execution Domain (machine code, devices, etc.) [email protected]
  • 3. Prof. Mukesh N. Tekwani Introduction to Systems Programming Consequences of semantic gap: !" Large development times – interaction between designers in application domain and programmers. !" Large development efforts. !" Poor quality of software. How is the semantic gap reduced? The semantic gap is reduced by programming languages (PL). The use of a PL introduces a new domain called the programming language domain (or PL domain). Execution gap Specification gap Application Domain PL Domain (problems, ideas, methods, to solve these problems) Execution Domain (machine code, devices, etc.) The PL domain bridges the gap between the application domain and the execution domain. !" Specification gap: It is the semantic gap between the application domain and the PL domain. It can also be defined as the semantic gap between the two specifications of the same task. The specification gap is bridged by the software development team. !" Execution gap: It is the gap between the semantics of programs written in different programming languages. The execution gap is bridged by the translator or interpreter. Advantages of introducing the PL domain: (a) Large development times are reduced. (b) Better quality of software. (c) Language processor provides diagnostic capabilities which detects errors. 9. Language Processor: It is a software which bridges the specification or execution gap. 10. Language Processing: It is any activity performed by a language processor. Diagnostic capability is a feature of a language processor. The input of a language [email protected] Page 3 of 6
  • 4. Introduction to Systems Programming Prof. Mukesh N. Tekwani processor is the source program. The output of a language processor is the target program. The target program is not produced if the language processor finds any errors in the source program. Source program Language Processor Target program Types of language processors: (a) Language Translator: This bridges the execution gap to the machine language of a computer system. Examples are compiler and assembler. (b) De-translator: Similar to translator, but in the opposite direction. (c) Preprocessor: This is a language processor whose source and target languages are both high level, i.e., no translation takes place. 11. Problem-oriented Languages: In case of problem-oriented languages. The the PL domain is very close to the application domain. The specification gap is reduced in this case. Such PLs can be used only for specific applications, hence they are called problem-oriented languages. They have a large execution gap, but the execution gap is bridged by the translator or interpreter. Using these languages, we only have to do specify “what to do”. Software development takes less time using problem-oriented languages, but the resultant code may not be optimized. Examples : Fourth generation languages (4GL) like SQL. 12. Procedure-oriented languages: These provide general facilities and features which are required in most applications. These languages are independent of application domains. Hence, there is a large specification gap. The gap must be bridged by the application designer. Using these languages, we have to specify “what to do” and “how to do”. Examples. C, C++, FORTRAN, etc. 13. Compiler: A compiler is a language translator. It translates a source code (programs in a high-level language) into the target code (machine code, or object code). Source program Input Compiler Target program Target program Output To do this translation, a compiler steps through a number of phases. The simplest is a 2-phase compiler. The first phase is called the front end and the second phase is called the back end. Page 4 of 6 [email protected]
  • 5. Prof. Mukesh N. Tekwani Introduction to Systems Programming Front End: The front end translates from the high-level language to a common intermediate language. The front end is source language dependent but it is machine-independent. Thus, the front end consists of the following phases: lexical analysis, syntactic analysis, creation of symbol table, semantic analysis and generation of intermediate code. The front end also includes error-handling routines for each of these phases. Back End: The back end translates from this common intermediate language to the machine code. The back end is machine dependent. This includes code optimization, code generation, error-handling and symbol table operations. Thus, a compiler bridges the execution gap. 14. Interpreter: It is a language processor. It also bridges the execution gap but does not generate the machine code. An interpreter executes a program written in a high level language. The essential difference between a compiler and an interpreter is that while a compiler generates the machine code and is then no longer needed, an interpreter is always required. Source program Interpreter Output Input Characteristics of interpreter: !" Machine code is not stored. !" Source code is essential for repeated execution of statements. !" Statement is analysed during its interpretation. !" Useful for testing and debugging as overhead of storage is not incurred. Differences between compiler and interpreter: COMPILER INTERPRETER 1. Scans the entire program first and then translates it into machine code. 1. Translates the program line-by-line. 2. Converts the entire program to machine code; when all the syntax errors have been removed, execution takes place. 2. Each time the program is executed, every line is checked for syntax error and then converted to equivalent machine code. 3. Execution time is less 3. Execution time is more. 4. Machine code can be saved and used; source code and compiler no longer needed. 4. Machine code cannot be saved; interpreter is always required for translation. [email protected] Page 5 of 6
  • 6. Introduction to Systems Programming Prof. Mukesh N. Tekwani 5. Since source code is not required, tampering with the source code is not possible. 5. Source code can be easily modified and hence no security of programs. 6. Slow for debugging. 6. Fast for debugging. REVIEW QUESTIONS 1. Define the term “systems programming”. How is systems programming different from other types of programming? 2. Define the term “syntax” in the context of programming languages. What are the desirable qualities of syntax? 3. What are syntactic units. Illustrate with examples. 4. Explain the term “semantics” in the context of programming languages. 5. Explain the concept of domain; elaborate on the terms “application domain” and “execution domain”. 6. What is “semantic gap”? reduced? 7. What is the need of introducing the PL domain? 8. Explain the terms “problem-oriented language” and “procedure-oriented language”. Give two examples of each. Mention briefly the merits and demerits of each type of language. 9. Define the terms “front end” and “back end” as applied to a compiler. What are the consequences of this gap? How is this gap 10. Explain the difference between preprocessor and language translator. 11. Mention the major differences between compiler and interpreter. ********* Page 6 of 6 [email protected]