1 / 17

Chapter 5-b

Chapter 5-b. Attributes of variables. Attributes of variables. { int sum = 5; ... ... }. Symbol Table. Identifier. Type. sum. int. 0000 0000 0000 0101. 0110 0010. Address. Value. Storage. Variable Names. sum=0.0 DO I = 1 TO 10 sum = sum + i END DO ...

evers
Download Presentation

Chapter 5-b

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 5-b • Attributes of variables

  2. Attributes of variables { int sum = 5; ... ... } Symbol Table Identifier Type sum int 0000 0000 0000 0101 0110 0010 Address Value Storage

  3. Variable Names sum=0.0 DO I = 1 TO 10 sum = sum + i END DO ... t = SQR(SUM) ... FUNCTION sqr(val) val = val*val RETURN VAL • Names: Fortran is not case sensitive. • Type: Fortran allows implicit declarations.

  4. Naming Conventions Method names start with lower case public void actionPerformed (ActionEvent e){ int value = Math.PI; . . . } Class names start with upper case Constants are all upper case Local variables are all lower case

  5. Aliasing: Variables c union { short i; float f; char c; } uval; i f uval Aliasing using variables is meant for conserving storage space.

  6. Aliasing: Pointers int i; int *p=&i; char *c; c=(char*)p; i p c Aliasing using pointer variables is not meant for conserving storage space.

  7. Static Variables (Fortran) Call statement Output CALL FUN() 1 CALL FUN() 2 CALL FUN() 3 CALL FUN() 4 . . . . . . SUBROUTINE fun() DATA k/0/ K=K+1 PRINT *, K RETURN In Fortran, all variables are by default static

  8. Static Variables (C) Call statement Output fun( ); 1 fun( ); 1 fun( ); 1 fun( ); 1 . . . fun( ); 1 fun( ); 2 fun( ); 3 fun( ); 4 . . . void fun(){ int k=0; k++; printf(“\n %d”,k); } void fun(){ static int k=0; k++; printf(“\n %d”,k); }

  9. i j i i Stack Dynamic Variables { int i; . . . { int j; . . . . . . } . . . . . . }

  10. 3 6 int fact (int n){ if(n==1) return 1; else return n*fact(n-1); } n=3 2 n=2 int fact (int n){ if(n==1) return 1; else return n*fact(n-1); } 2 n=3 n=3 n=1 1 n=2 n=3 1 int fact (int n){ if(n==1) return 1; else return n*fact(n-1); } n=2 n=3 Recursion

  11. Heap-Dynamic Variables (1) p 0 int size=100; int *p; p = (int *) malloc(size*2); ... ... free(p); 99 ???? p Heap allocation requires effective memory management

  12. Heap-Dynamic Variables (2) int *node; node = new int; //Allocates an int cell. ... ... delete node; //free the allocated memory. C++ Java Stack s = new Stack();

  13. Scope (C) Global variable int x; ... main(){ int k; ... ... { int k; ... ... } ... } Local variable Local variable

  14. Scope (Java) public float fun(){ int[] x = {10, 20, 30}; float sum=0; for (int i=0; i<3; i++){ sum=sum+x[i]; } System.out.println(“Sum=”+sum); float v; v=sum/2; return v; } Local variables

  15. Scope (Java classes) public class Myclass{ public void add(int y){ x = x+y; } int x=10; } Java allows the above type of declaration of instance variables but it is not advised.

  16. Scope Vs. Lifetime (1) void compute() { static int k; ... ... ... ... } Scope of the variable is limited to the function block, while its lifetime is the same as the total program execution time.

  17. Scope Vs. Lifetime (2) void compute() { int value; ... ... printinfo(); ... ... } void printinfo(){ ... ... } Scope of “value” does not extend to the function “printinfo”, but lifetime of value does.

More Related