SlideShare ist ein Scribd-Unternehmen logo
1 von 45
By-
Garima Jain
   Sequence control with expressions
   Conditional Statements, Loops
   Exception Handling
   Subprogram definition and activation
   Simple and Recursive Subprogram
   Subprogram Environment
Control of the order of execution of the operations
both primitive and user defined.
Implicit : determined by the order of the statements
in the source program or by the built-in execution
model
Explicit : the programmer uses statements to change
the order of execution (e.g. uses If statement)
Expressions: How data are           manipulated   using
precedence rules and parentheses.
Statements: conditional and iteration statements change
the sequential execution.
                Declarative programming: an execution
model that does not depend on the order of the
statements in the source program.
Subprograms: transfer control from one program to
another.
What is the sequence of performing the operations?
How is the sequence defined, and how is it represented?
Functional composition     :   Basic   sequence-control
mechanism:
Given an operation with its operands, the operands may
be:
·    Constants
·    Data objects
·    Other operations
Example 1: 3 * (var1 + 5)
operation - multiplication, operator: *, arity - 2
      operand 1: constant (3)
      operand 2: operation addition
                    operand1: data object (var1)
                    operand 2: constant (5)
Example 2: 3* var1 +5
Question: is the example equivalent to the above one?


Example 3: 3 + var1 +5
Question: is this equivalent to (3 + var1) + 5,
             or to 3 + (var1 + 5) ?
Precedence concerns the order of applying
operations
Associativity deals with the order of operations of
same precedence.
 
Precedence and associativity are defined when the
language is defined - within the semantic rules for
expressions.
Linear representation of the expression tree:
             Prefix notation
·            Postfix notation
·            Infix notation


Prefix and postfix notations are parentheses-free.
 Machine code sequence
 Tree structures - software simulation
 Prefix or postfix form - requires stack, executed by an
interpreter.
Eager evaluation - evaluate all operands before
applying operators.
Lazy evaluation
Side effects - some operations may change operands of
other operations.
Error conditions - may depend on the evaluation
strategy (eager or lazy evaluation)
Boolean expressions - results may differ depending on
the evaluation strategy.
if   expression   then   statement1   else
statement2
             if expression then statement1
 a choice among many alternatives
                   nested if statements
                   case statements
Implementation:  jump and branch machine
instructions, jump table implementation for case
statements
Simple  repetition (for loop)
     Specifies a count of the number
     of times to execute a loop:
            perform statement K times;
                  for loop -
Examples:
     for I=1 to 10 do statement;
     for(I=0;I<10; I++) statement;
while expression do statement;
Evaluate expression and if true execute statement, then
repeat process.
 repeat statement until expression;
 Execute statement and then evaluate expression.
Repeat if expression is not true.
C++ for loop functionally is equivalent to repetition
while condition holds
 Multiple exit loops
 Exceptional conditions
 Do-while-do structure


Solutions vary with languages, e.g. in C++ - break
statement, assert for exceptions.
Exception Handlers are subprograms that are not 
invoked by explicit calls

Special situations, called exceptions:

     Error conditions
     Unpredictable conditions
     Tracing and monitoring
Exception handlers typically contain only:

   • A set of declarations of local variables
   • A sequence of executable statements

Exception Handlers can be
  - predefined in the language
  - programmer defined
Languages provide methods for raising (throwing) and
   testing for exceptions.

  try {
       statement1;
       statement2;
       …
  if badCondition throw ExceptionName;
     }

  catch ExceptionName
{ ……….// do something for exception…….}
Operating system exceptions - raised directly
by hardware interrupts.

Programmer defined -
the translator inserts code to handle the
exceptions.
Subprogram Control :
interaction among subprograms
how subprograms pass data among themselves
Simple subprogram call return
     Copy rule view of subprograms:

     the effect of a call statement is the same as if the
     subprogram were copied and inserted into the
     main program.
• Subprograms cannot be recursive
• Explicit call statements are required
• Subprograms must execute completely at each call
• Immediate transfer of control at point of call
• Single execution sequence
CALL




       RETURN
Execution of subprograms

     Subprogram definition.

     Subprogram activation.
The definition is translated into a template, used
to create an activation each time a subprogram is
called.
a code segment (the invariant part) -
      executable code and constants,

an activation record (the dynamic part) -
       local data, parameters.

      created a new each time the subprogram is called,
      destroyed when the subprogram returns.
• Current-instruction pointer – CIP
address of the next statement to be executed


• Current-environment pointer – CEP
pointer to the activation record.
    An activation record is created
     Current CIP and CEP are saved in the created
    activation record as return point
      CEP is assigned the address of the activation
    record.
 CIP gets the address of the first instruction in the
    code segment
 The execution continues from the address in CIP
 The old values of CIP and CEP are retrieved.

     The execution continues from the address in
     CIP


Restrictions of the model:
      at most one activation of any subprogram
Allocate storage for a single activation record statically
as an extension of the code segment.
Used in FORTRAN and COBOL.

The activation record is not destroyed - only reinitialized
for each subprogram execution.

Hardware support - CIP is the program counter,
CEP is not used, simple jump executed on return.
The simplest run-time storage management technique
call statements : push CIP and CEP
return statements : pop CIP and CEP off of the stack.

Used in most C implementations
LISP: uses the stack as an environment.
Specification
      Syntactically - no difference
      Semantically - multiple activations of the
  same subprogram exist simultaneously at
  some point in the execution.

E.G. the first recursive call creates a second
activation within the lifetime of the first activation.
Stack-based -

CIP and CEP are stored in stack, forming a
dynamic chain of links.

A new activation record is created for each call
and destroyed on return.

The lifetimes of the activation records cannot
overlap - they are nested.
Data control features determine the accessibility of data at
different points during program execution.

Central problem:
the meaning of variable names, i.e. the correspondence
between names and memory locations.
Two ways to make a data object available as an operand
for an operation


Direct transmission
Referencing through a named data object
A data object computed at one point as the result of
an operation may be directly transmitted to another
operation as an operand

Example:                  x = y + 2*z;

The result of multiplication is transmitted directly as
an operand of the addition operation
A data object may be given a name when it is
created, the name may then be used to designate it
as an operand of an operation.
Variables
Formal parameters
Subprograms
Defined types
Defined constants
Labels
Exception names
Primitive operations
Literal constants
Association: binding identifiers to particular data
objects and subprograms

Referencing environment: the set of identifier
associations for a given subprogram.

Referencing operations during program execution:
determine the particular data object or subprogram
associated with an identifier
Subprogram Environment

     The set of associations created on entry to a subprogram formal
     parameters, local variables, and subprograms defined only within that
     subprogram.

Non-local referencing environment
     The set of associations for identifiers
     •        used within a subprogram
     •        not created on entry to it
Global referencing environment:
associations created at the start of execution of the main program, available
to be used in a subprogram.

Predefined referencing environments:
predefined associations in the language definition.
Unit 3 principles of programming language

Weitere ähnliche Inhalte

Was ist angesagt?

Register allocation and assignment
Register allocation and assignmentRegister allocation and assignment
Register allocation and assignmentKarthi Keyan
 
Preprocessor directives in c language
Preprocessor directives in c languagePreprocessor directives in c language
Preprocessor directives in c languagetanmaymodi4
 
Peephole optimization techniques in compiler design
Peephole optimization techniques in compiler designPeephole optimization techniques in compiler design
Peephole optimization techniques in compiler designAnul Chaudhary
 
Compiler design syntax analysis
Compiler design syntax analysisCompiler design syntax analysis
Compiler design syntax analysisRicha Sharma
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testingHaris Jamil
 
Function points analysis
Function points analysisFunction points analysis
Function points analysisYunis Lone
 
The role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designThe role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designSadia Akter
 
Algorithmic problem solving
Algorithmic problem solvingAlgorithmic problem solving
Algorithmic problem solvingPrabhakaran V M
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language ProcessingHemant Sharma
 
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 callsSARASWATHI S
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 
Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical AnalysisMunni28
 

Was ist angesagt? (20)

Register allocation and assignment
Register allocation and assignmentRegister allocation and assignment
Register allocation and assignment
 
Preprocessor directives in c language
Preprocessor directives in c languagePreprocessor directives in c language
Preprocessor directives in c language
 
Peephole optimization techniques in compiler design
Peephole optimization techniques in compiler designPeephole optimization techniques in compiler design
Peephole optimization techniques in compiler design
 
Input-Buffering
Input-BufferingInput-Buffering
Input-Buffering
 
Back patching
Back patchingBack patching
Back patching
 
First pass of assembler
First pass of assemblerFirst pass of assembler
First pass of assembler
 
Types of Compilers
Types of CompilersTypes of Compilers
Types of Compilers
 
Compiler design syntax analysis
Compiler design syntax analysisCompiler design syntax analysis
Compiler design syntax analysis
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
Function points analysis
Function points analysisFunction points analysis
Function points analysis
 
Code Optimization
Code OptimizationCode Optimization
Code Optimization
 
The role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designThe role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler design
 
Algorithmic problem solving
Algorithmic problem solvingAlgorithmic problem solving
Algorithmic problem solving
 
Role-of-lexical-analysis
Role-of-lexical-analysisRole-of-lexical-analysis
Role-of-lexical-analysis
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Introduction to Input/Output Functions in C
Introduction to Input/Output Functions in CIntroduction to Input/Output Functions in C
Introduction to Input/Output Functions in C
 
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
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical Analysis
 
Domain Modeling
Domain ModelingDomain Modeling
Domain Modeling
 

Ähnlich wie Unit 3 principles of programming language

10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprogramsMunawar Ahmed
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language CourseVivek chan
 
Monolithic and Procedural Programming
Monolithic and Procedural ProgrammingMonolithic and Procedural Programming
Monolithic and Procedural ProgrammingDeepam Aggarwal
 
theory of programming languages by shikra
theory of programming languages by shikratheory of programming languages by shikra
theory of programming languages by shikrajateno3396
 
Password protected diary
Password protected diaryPassword protected diary
Password protected diarySHARDA SHARAN
 
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDY
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDYC UNIT-2 PREPARED Y M V BRAHMANANDA REDDY
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDYRajeshkumar Reddy
 
chapter-7-runtime-environments.ppt
chapter-7-runtime-environments.pptchapter-7-runtime-environments.ppt
chapter-7-runtime-environments.pptssuser0db64b
 
ECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/SnaptutorialECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/Snaptutorialpinck2380
 
ECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/SnaptutorialECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/Snaptutorialpinck200
 
Introduction to c
Introduction to cIntroduction to c
Introduction to cAjeet Kumar
 
C++ question and answers
C++ question and answersC++ question and answers
C++ question and answersAdenKheire
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docxssuser1c8ca21
 
Lecture11 abap on line
Lecture11 abap on lineLecture11 abap on line
Lecture11 abap on lineMilind Patil
 

Ähnlich wie Unit 3 principles of programming language (20)

10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprograms
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language Course
 
Monolithic and Procedural Programming
Monolithic and Procedural ProgrammingMonolithic and Procedural Programming
Monolithic and Procedural Programming
 
Unit 2
Unit 2Unit 2
Unit 2
 
theory of programming languages by shikra
theory of programming languages by shikratheory of programming languages by shikra
theory of programming languages by shikra
 
C Programming Unit-2
C Programming Unit-2C Programming Unit-2
C Programming Unit-2
 
Password protected diary
Password protected diaryPassword protected diary
Password protected diary
 
Subprogramms
SubprogrammsSubprogramms
Subprogramms
 
Parallel programming model
Parallel programming modelParallel programming model
Parallel programming model
 
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDY
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDYC UNIT-2 PREPARED Y M V BRAHMANANDA REDDY
C UNIT-2 PREPARED Y M V BRAHMANANDA REDDY
 
chapter-7-runtime-environments.ppt
chapter-7-runtime-environments.pptchapter-7-runtime-environments.ppt
chapter-7-runtime-environments.ppt
 
ECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/SnaptutorialECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/Snaptutorial
 
ECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/SnaptutorialECET 360 help A Guide to career/Snaptutorial
ECET 360 help A Guide to career/Snaptutorial
 
Programming in c by pkv
Programming in c by pkvProgramming in c by pkv
Programming in c by pkv
 
Unit 1
Unit  1Unit  1
Unit 1
 
Plc part 3
Plc  part 3Plc  part 3
Plc part 3
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
C++ question and answers
C++ question and answersC++ question and answers
C++ question and answers
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docx
 
Lecture11 abap on line
Lecture11 abap on lineLecture11 abap on line
Lecture11 abap on line
 

Kürzlich hochgeladen

Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 

Kürzlich hochgeladen (20)

Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 

Unit 3 principles of programming language

  • 2. Sequence control with expressions  Conditional Statements, Loops  Exception Handling  Subprogram definition and activation  Simple and Recursive Subprogram  Subprogram Environment
  • 3. Control of the order of execution of the operations both primitive and user defined. Implicit : determined by the order of the statements in the source program or by the built-in execution model Explicit : the programmer uses statements to change the order of execution (e.g. uses If statement)
  • 4. Expressions: How data are manipulated using precedence rules and parentheses. Statements: conditional and iteration statements change the sequential execution. Declarative programming: an execution model that does not depend on the order of the statements in the source program. Subprograms: transfer control from one program to another.
  • 5. What is the sequence of performing the operations? How is the sequence defined, and how is it represented? Functional composition : Basic sequence-control mechanism: Given an operation with its operands, the operands may be: · Constants · Data objects · Other operations
  • 6. Example 1: 3 * (var1 + 5) operation - multiplication, operator: *, arity - 2 operand 1: constant (3) operand 2: operation addition operand1: data object (var1) operand 2: constant (5)
  • 7. Example 2: 3* var1 +5 Question: is the example equivalent to the above one? Example 3: 3 + var1 +5 Question: is this equivalent to (3 + var1) + 5, or to 3 + (var1 + 5) ?
  • 8. Precedence concerns the order of applying operations Associativity deals with the order of operations of same precedence.   Precedence and associativity are defined when the language is defined - within the semantic rules for expressions.
  • 9. Linear representation of the expression tree: Prefix notation · Postfix notation · Infix notation Prefix and postfix notations are parentheses-free.
  • 10.  Machine code sequence  Tree structures - software simulation  Prefix or postfix form - requires stack, executed by an interpreter.
  • 11. Eager evaluation - evaluate all operands before applying operators. Lazy evaluation
  • 12. Side effects - some operations may change operands of other operations. Error conditions - may depend on the evaluation strategy (eager or lazy evaluation) Boolean expressions - results may differ depending on the evaluation strategy.
  • 13. if expression then statement1 else statement2 if expression then statement1  a choice among many alternatives nested if statements case statements Implementation:  jump and branch machine instructions, jump table implementation for case statements
  • 14. Simple  repetition (for loop) Specifies a count of the number of times to execute a loop: perform statement K times; for loop - Examples: for I=1 to 10 do statement; for(I=0;I<10; I++) statement;
  • 15. while expression do statement; Evaluate expression and if true execute statement, then repeat process. repeat statement until expression; Execute statement and then evaluate expression. Repeat if expression is not true. C++ for loop functionally is equivalent to repetition while condition holds
  • 16.
  • 17.
  • 18.  Multiple exit loops  Exceptional conditions  Do-while-do structure Solutions vary with languages, e.g. in C++ - break statement, assert for exceptions.
  • 19. Exception Handlers are subprograms that are not  invoked by explicit calls Special situations, called exceptions:  Error conditions  Unpredictable conditions  Tracing and monitoring
  • 20. Exception handlers typically contain only: • A set of declarations of local variables • A sequence of executable statements Exception Handlers can be - predefined in the language - programmer defined
  • 21. Languages provide methods for raising (throwing) and testing for exceptions.   try { statement1; statement2; …   if badCondition throw ExceptionName; }   catch ExceptionName { ……….// do something for exception…….}
  • 22. Operating system exceptions - raised directly by hardware interrupts. Programmer defined - the translator inserts code to handle the exceptions.
  • 23. Subprogram Control : interaction among subprograms how subprograms pass data among themselves
  • 24. Simple subprogram call return Copy rule view of subprograms: the effect of a call statement is the same as if the subprogram were copied and inserted into the main program.
  • 25. • Subprograms cannot be recursive • Explicit call statements are required • Subprograms must execute completely at each call • Immediate transfer of control at point of call • Single execution sequence
  • 26. CALL RETURN
  • 27. Execution of subprograms Subprogram definition. Subprogram activation.
  • 28. The definition is translated into a template, used to create an activation each time a subprogram is called.
  • 29. a code segment (the invariant part) - executable code and constants, an activation record (the dynamic part) - local data, parameters. created a new each time the subprogram is called, destroyed when the subprogram returns.
  • 30. • Current-instruction pointer – CIP address of the next statement to be executed • Current-environment pointer – CEP pointer to the activation record.
  • 31.
  • 32. An activation record is created  Current CIP and CEP are saved in the created activation record as return point  CEP is assigned the address of the activation record.  CIP gets the address of the first instruction in the code segment  The execution continues from the address in CIP
  • 33.  The old values of CIP and CEP are retrieved.  The execution continues from the address in CIP Restrictions of the model: at most one activation of any subprogram
  • 34. Allocate storage for a single activation record statically as an extension of the code segment. Used in FORTRAN and COBOL. The activation record is not destroyed - only reinitialized for each subprogram execution. Hardware support - CIP is the program counter, CEP is not used, simple jump executed on return.
  • 35. The simplest run-time storage management technique call statements : push CIP and CEP return statements : pop CIP and CEP off of the stack. Used in most C implementations LISP: uses the stack as an environment.
  • 36. Specification Syntactically - no difference Semantically - multiple activations of the same subprogram exist simultaneously at some point in the execution. E.G. the first recursive call creates a second activation within the lifetime of the first activation.
  • 37. Stack-based - CIP and CEP are stored in stack, forming a dynamic chain of links. A new activation record is created for each call and destroyed on return. The lifetimes of the activation records cannot overlap - they are nested.
  • 38. Data control features determine the accessibility of data at different points during program execution. Central problem: the meaning of variable names, i.e. the correspondence between names and memory locations.
  • 39. Two ways to make a data object available as an operand for an operation Direct transmission Referencing through a named data object
  • 40. A data object computed at one point as the result of an operation may be directly transmitted to another operation as an operand Example: x = y + 2*z; The result of multiplication is transmitted directly as an operand of the addition operation
  • 41. A data object may be given a name when it is created, the name may then be used to designate it as an operand of an operation.
  • 42. Variables Formal parameters Subprograms Defined types Defined constants Labels Exception names Primitive operations Literal constants
  • 43. Association: binding identifiers to particular data objects and subprograms Referencing environment: the set of identifier associations for a given subprogram. Referencing operations during program execution: determine the particular data object or subprogram associated with an identifier
  • 44. Subprogram Environment The set of associations created on entry to a subprogram formal parameters, local variables, and subprograms defined only within that subprogram. Non-local referencing environment The set of associations for identifiers • used within a subprogram • not created on entry to it Global referencing environment: associations created at the start of execution of the main program, available to be used in a subprogram. Predefined referencing environments: predefined associations in the language definition.