Parameter passing


There are two types of parameters:
  1. Formal parameters
  2. Actual parameters
Based on these parameters there are various parameter passing methods. 
The most common methods are:

1. Call by value:

  1. This is the simplest method of parameter passing. 
  2. The actual parameters are evaluated and their r-values are passed to called procedure. 
  3. The operations on formal parameters do not changes the values of actual parameter. 
Example: Languages like C, C++ use actual parameter passing method.

2. Call by reference:

  1. This method is also called as call by address or call by location.
  2. The L-value, the address of actual parameter is passed to the called routines activation record.
  3. The value of actual parameters can be changed. 
  4. The actual parameter should have an L-value. 
Example: Reference parameter in C++,PASCAL’S var parameters.

3. Copy restore: 

  1. This method is a hybrid between call by value and call by reference.
  2. This is also known as copy-in-copy-out or values result.
  3. The calling procedure calculates the value of actual parameters and it is then copied to activation record for the called procedure. 
  4. During execution of called procedure, the actual parameters value is not affected. 
  5. If the actual parameters have L-value then at return the value of formal parameter is copied to actual parameter. 
Example: In Ada this parameter passing method is used.

4. Call by name: 

  1. This is less popular method of parameter passing.
  2. Procedure is treated like macro. 
  3. The procedure body is substituted for call in caller with actual parameters substituted for formals. 
  4. The actual parameters can be surrounded by parenthesis to preserve their integrity. 
  5. The locals name of called procedure and names of calling procedure are distinct. 
Example: ALGOL uses call by name method.

Compiler Design covered following topics in Compiler Design.
Python Programming ↓ 👆
Java Programming ↓ 👆
JAVA covered following topics in these notes.
JAVA Programs
Principles of Programming Languages ↓ 👆
Principles of Programming Languages covered following topics in these notes.

Previous years solved papers:
A list of Video lectures References:
  1. Sebesta,”Concept of programming Language”, Pearson Edu 
  2. Louden, “Programming Languages: Principles & Practices” , Cengage Learning 
  3. Tucker, “Programming Languages: Principles and paradigms “, Tata McGraw –Hill. 
  4. E Horowitz, "Programming Languages", 2nd Edition, Addison Wesley

    Computer Organization and Architecture ↓ 👆

    Computer Organization and Architecture covered following topics in these notes.

    1. Structure of desktop computers
    2. Logic gates
    3. Register organization
    4. Bus structure
    5. Addressing modes
    6. Register transfer language
    7. Direct mapping numericals
    8. Register in Assembly Language Programming
    9. Arrays in Assembly Language Programming


    1. William stalling ,“Computer Architecture and Organization” PHI
    2. Morris Mano , “Computer System Organization ”PHI

    Computer Network ↓ 👆
    Computer Network covered following topics in these notes.
    1. Data Link Layer
    2. Framing
    3. Byte count framing method
    4. Flag bytes with byte stuffing framing method
    5. Flag bits with bit stuffing framing method
    6. Physical layer coding violations framing method
    7. Error control in data link layer
    8. Stop and Wait scheme
    9. Sliding Window Protocol
    10. One bit sliding window protocol
    11. A protocol Using Go-Back-N
    12. Selective repeat protocol
    13. Application layer
    1. Andrew S. Tanenbaum, David J. Wetherall, “Computer Networks” Pearson Education.
    2. Douglas E Comer, “Internetworking with TCP/IP Principles, Protocols, And Architecture",Pearson Education
    3. KavehPahlavan, Prashant Krishnamurthy, “Networking Fundamentals”, Wiley Publication.
    4. Ying-Dar Lin, Ren-Hung Hwang, Fred Baker, “Computer Networks: An Open Source Approach”, McGraw Hill.