SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Inline function
Inline functionInline function
Inline function
Tech_MX
 

Mais procurados (20)

Peephole Optimization
Peephole OptimizationPeephole Optimization
Peephole Optimization
 
Datatype in c++ unit 3 -topic 2
Datatype in c++ unit 3 -topic 2Datatype in c++ unit 3 -topic 2
Datatype in c++ unit 3 -topic 2
 
Token, Pattern and Lexeme
Token, Pattern and LexemeToken, Pattern and Lexeme
Token, Pattern and Lexeme
 
Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design
 
1.Role lexical Analyzer
1.Role lexical Analyzer1.Role lexical Analyzer
1.Role lexical Analyzer
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Inline function
Inline functionInline function
Inline function
 
Code generation
Code generationCode generation
Code generation
 
Operators in java presentation
Operators in java presentationOperators in java presentation
Operators in java presentation
 
Lexical analysis - Compiler Design
Lexical analysis - Compiler DesignLexical analysis - Compiler Design
Lexical analysis - Compiler Design
 
Algorithm and c language
Algorithm and c languageAlgorithm and c language
Algorithm and c language
 
friend function(c++)
friend function(c++)friend function(c++)
friend function(c++)
 
Unit iv(simple code generator)
Unit iv(simple code generator)Unit iv(simple code generator)
Unit iv(simple code generator)
 
Object Oriented Programming Using C++
Object Oriented Programming Using C++Object Oriented Programming Using C++
Object Oriented Programming Using C++
 
Function overloading and overriding
Function overloading and overridingFunction overloading and overriding
Function overloading and overriding
 
Java Data Types
Java Data TypesJava Data Types
Java Data Types
 
[OOP - Lec 19] Static Member Functions
[OOP - Lec 19] Static Member Functions[OOP - Lec 19] Static Member Functions
[OOP - Lec 19] Static Member Functions
 
Linker and Loader
Linker and Loader Linker and Loader
Linker and Loader
 
16 virtual function
16 virtual function16 virtual function
16 virtual function
 
Back patching
Back patchingBack patching
Back patching
 

Semelhante a Unit 3 principles of programming language

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
Rajeshkumar Reddy
 
Lecture11 abap on line
Lecture11 abap on lineLecture11 abap on line
Lecture11 abap on line
Milind Patil
 

Semelhante a 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
 

Último

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.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
 

Último (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
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
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
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
 
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
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 

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.