SlideShare a Scribd company logo
1 of 6
Download to read offline
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

System Programing Unit 1
System Programing Unit 1System Programing Unit 1
System Programing Unit 1
Manoj Patil
 
System Programming Unit II
System Programming Unit IISystem Programming Unit II
System Programming Unit II
Manoj Patil
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design options
Mohd Arif
 

What's hot (20)

System software - macro expansion,nested macro calls
System software - macro expansion,nested macro callsSystem software - macro expansion,nested macro calls
System software - macro expansion,nested macro calls
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Loaders ( system programming )
Loaders ( system programming ) Loaders ( system programming )
Loaders ( system programming )
 
Assemblers
AssemblersAssemblers
Assemblers
 
System Programing Unit 1
System Programing Unit 1System Programing Unit 1
System Programing Unit 1
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
 
Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design
 
Language processors
Language processorsLanguage processors
Language processors
 
System Programming Unit II
System Programming Unit IISystem Programming Unit II
System Programming Unit II
 
Macro Processor
Macro ProcessorMacro Processor
Macro Processor
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
Debuggers in system software
Debuggers in system softwareDebuggers in system software
Debuggers in system software
 
Unit 3
Unit 3Unit 3
Unit 3
 
Interactive debugging system
Interactive debugging systemInteractive debugging system
Interactive debugging system
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
System Programming- Unit I
System Programming- Unit ISystem Programming- Unit I
System Programming- Unit I
 
Macro-processor
Macro-processorMacro-processor
Macro-processor
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design options
 
Linker and Loader
Linker and Loader Linker and Loader
Linker and Loader
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 

Similar to Introduction to systems programming

Algorithm and flowchart(1)
Algorithm and flowchart(1)Algorithm and flowchart(1)
Algorithm and flowchart(1)
Suneel Dogra
 

Similar to Introduction to systems programming (20)

1.Overview of Programming.pptx
1.Overview of Programming.pptx1.Overview of Programming.pptx
1.Overview of Programming.pptx
 
Intoduction to c language
Intoduction to c languageIntoduction to c language
Intoduction to c language
 
2 Programming Language.pdf
2 Programming Language.pdf2 Programming Language.pdf
2 Programming Language.pdf
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Software programming and development
Software programming and developmentSoftware programming and development
Software programming and development
 
CS3251-_PIC
CS3251-_PICCS3251-_PIC
CS3251-_PIC
 
design intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdfdesign intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdf
 
Ppt 1
Ppt 1Ppt 1
Ppt 1
 
Introduction to programming language (basic)
Introduction to programming language (basic)Introduction to programming language (basic)
Introduction to programming language (basic)
 
Algorithm and flowchart(1)
Algorithm and flowchart(1)Algorithm and flowchart(1)
Algorithm and flowchart(1)
 
Introduction to programming c
Introduction to programming cIntroduction to programming c
Introduction to programming c
 
C.pdf
C.pdfC.pdf
C.pdf
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
COMPILER DESIGN.docx
COMPILER DESIGN.docxCOMPILER DESIGN.docx
COMPILER DESIGN.docx
 
Unit 1
Unit 1Unit 1
Unit 1
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Chap 1-language processor
Chap 1-language processorChap 1-language processor
Chap 1-language processor
 
C programme presentation
C programme presentationC programme presentation
C programme presentation
 
INTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdfINTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdf
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 

More from Mukesh Tekwani

More from Mukesh Tekwani (20)

Computer Science Made Easy - Youtube Channel
Computer Science Made Easy - Youtube ChannelComputer Science Made Easy - Youtube Channel
Computer Science Made Easy - Youtube Channel
 
The Elphinstonian 1988-College Building Centenary Number (2).pdf
The Elphinstonian 1988-College Building Centenary Number (2).pdfThe Elphinstonian 1988-College Building Centenary Number (2).pdf
The Elphinstonian 1988-College Building Centenary Number (2).pdf
 
Circular motion
Circular motionCircular motion
Circular motion
 
Gravitation
GravitationGravitation
Gravitation
 
ISCE-Class 12-Question Bank - Electrostatics - Physics
ISCE-Class 12-Question Bank - Electrostatics  -  PhysicsISCE-Class 12-Question Bank - Electrostatics  -  Physics
ISCE-Class 12-Question Bank - Electrostatics - Physics
 
Hexadecimal to binary conversion
Hexadecimal to binary conversion Hexadecimal to binary conversion
Hexadecimal to binary conversion
 
Hexadecimal to decimal conversion
Hexadecimal to decimal conversion Hexadecimal to decimal conversion
Hexadecimal to decimal conversion
 
Hexadecimal to octal conversion
Hexadecimal to octal conversionHexadecimal to octal conversion
Hexadecimal to octal conversion
 
Gray code to binary conversion
Gray code to binary conversion Gray code to binary conversion
Gray code to binary conversion
 
What is Gray Code?
What is Gray Code? What is Gray Code?
What is Gray Code?
 
Decimal to Binary conversion
Decimal to Binary conversionDecimal to Binary conversion
Decimal to Binary conversion
 
Video Lectures for IGCSE Physics 2020-21
Video Lectures for IGCSE Physics 2020-21Video Lectures for IGCSE Physics 2020-21
Video Lectures for IGCSE Physics 2020-21
 
Refraction and dispersion of light through a prism
Refraction and dispersion of light through a prismRefraction and dispersion of light through a prism
Refraction and dispersion of light through a prism
 
Refraction of light at a plane surface
Refraction of light at a plane surfaceRefraction of light at a plane surface
Refraction of light at a plane surface
 
Spherical mirrors
Spherical mirrorsSpherical mirrors
Spherical mirrors
 
Atom, origin of spectra Bohr's theory of hydrogen atom
Atom, origin of spectra Bohr's theory of hydrogen atomAtom, origin of spectra Bohr's theory of hydrogen atom
Atom, origin of spectra Bohr's theory of hydrogen atom
 
Refraction of light at spherical surfaces of lenses
Refraction of light at spherical surfaces of lensesRefraction of light at spherical surfaces of lenses
Refraction of light at spherical surfaces of lenses
 
ISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGE
ISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGEISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGE
ISCE (XII) - PHYSICS BOARD EXAM FEB 2020 - WEIGHTAGE
 
Cyber Laws
Cyber LawsCyber Laws
Cyber Laws
 
XML
XMLXML
XML
 

Recently uploaded

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 

Recently uploaded (20)

SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 

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. mukeshtekwani@hotmail.com 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.) mukeshtekwani@hotmail.com
  • 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 mukeshtekwani@hotmail.com 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 mukeshtekwani@hotmail.com
  • 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. mukeshtekwani@hotmail.com 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 mukeshtekwani@hotmail.com