UT Dallas CS 4337 - #Sebesta ch05 name bind scope - handout (40 pages)

Previewing pages 1, 2, 3, 19, 20, 38, 39, 40 of 40 page document View the full content.
View Full Document

#Sebesta ch05 name bind scope - handout



Previewing pages 1, 2, 3, 19, 20, 38, 39, 40 of actual document.

View the full content.
View Full Document
View Full Document

#Sebesta ch05 name bind scope - handout

46 views


Pages:
40
School:
University of Texas at Dallas
Course:
Cs 4337 - Organization of Programming Languages
Unformatted text preview:

Chapter 5 Names Bindings and Scopes Introduction Imperative languages are abstractions of von Neumann architecture Memory Processor Variables are characterized by attributes To design a type you must consider scope lifetime type checking initialization and type compatibility Copyright 2012 Addison Wesley All rights reserved 1 2 Names Design issues for names Are names case sensitive Are special words reserved words or keywords Copyright 2012 Addison Wesley All rights reserved 1 3 Names continued Design issues for names Are names case sensitive Are special words reserved words or keywords Length If too short they cannot be connotative Language examples FORTRAN 95 maximum of 31 C99 no limit but only the first 63 are significant also external names are limited to a maximum of 31 C Ada and Java no limit and all are significant C no limit but implementers often impose one Copyright 2012 Addison Wesley All rights reserved 1 4 Names continued Special characters PHP all variable names must begin with dollar signs Perl all variable names begin with special characters which specify the variable s type Ruby variable names that begin with are instance variables those that begin with are class variables Copyright 2012 Addison Wesley All rights reserved 1 5 Names continued Case sensitivity Disadvantage readability names that look alike are different Names in the C based languages are case sensitive Names in others are not Worse in C Java and C because predefined names are mixed case e g IndexOutOfBoundsException Copyright 2012 Addison Wesley All rights reserved 1 6 Names continued Special words An aid to readability used to delimit or separate statement clauses A keyword is a word that is special only in certain contexts e g in Fortran Real VarName Real is a data type followed with a name therefore Real is a keyword Real 3 4 Real is a variable A reserved word is a special word that cannot be used as a user defined name Potential problem with reserved words If there are too many many collisions occur e g COBOL has 300 reserved words Copyright 2012 Addison Wesley All rights reserved 1 7 Variables A variable is an abstraction of a memory cell Variables can be characterized as a sixtuple of attributes Name Address Value Type Lifetime Scope Copyright 2012 Addison Wesley All rights reserved 1 8 Attribute of Variable Name not all variables have them Address the memory address with which it is associated A variable may have different addresses at different times during execution A variable may have different addresses at different places in a program If two variable names can be used to access the same memory location they are called aliases Aliases are created via pointers reference variables C and C unions Aliases are harmful to readability program readers must remember all of them Copyright 2012 Addison Wesley All rights reserved 1 9 Variables Attributes continued Type Determines the range of values of variables and the set of operations that are defined for values of that type in the case of floating point type also determines the precision Value the contents of the location with which the variable is associated l value of a variable is its address location r value of a variable is its value Abstract memory cell the physical cell or collection of cells associated with a variable Note variable is an abstraction of a memory cell Copyright 2012 Addison Wesley All rights reserved 1 10 The Concept of Binding binding is an association between an entity and an attribute such as between a variable and its type or value or between an operation and a symbol binding time is the time at which a binding takes place Copyright 2012 Addison Wesley All rights reserved 1 11 Possible Binding Times Language design or implementation time bind operator symbols to operations bind floating point type to a representation Compile time bind a variable to a type in C or Java Load time bind a C or C static variable to a memory cell Runtime bind a non static local variable to a memory cell Copyright 2012 Addison Wesley All rights reserved 1 12 Static and Dynamic Binding A binding is static if it first occurs before run time and remains unchanged throughout program execution A binding is dynamic if it first occurs during execution or can change during execution of the program Copyright 2012 Addison Wesley All rights reserved 1 13 Type Binding How is a type specified When does the binding take place If static the type may be specified by either an explicit or an implicit declaration Copyright 2012 Addison Wesley All rights reserved 1 14 Explicit Implicit Type Declaration Explicit declaration is a program statement used for declaring the types of variables Implicit declaration is a default mechanism for specifying types of variables through default conventions rather than declaration statements Fortran BASIC Perl Ruby JavaScript and PHP provide implicit declarations Fortran has both explicit and implicit Advantage writability a minor convenience Disadvantage reliability less trouble with Perl Copyright 2012 Addison Wesley All rights reserved 1 15 Explicit Implicit Declaration continued Some languages use type inferencing to determine types of variables context C a variable can be declared with var and an initial value The initial value sets the type Visual BASIC 9 0 ML Haskell F and Go use type inferencing The context of the appearance of a variable determines its type Copyright 2012 Addison Wesley All rights reserved 1 16 Dynamic Type Binding Dynamic Type Binding JavaScript Python Ruby PHP and C limited Specified through an assignment statement e g JavaScript list 2 4 33 6 8 list 17 3 Advantage flexibility generic program units Disadvantages High cost dynamic type checking and interpretation Type error detection by the compiler is difficult Copyright 2012 Addison Wesley All rights reserved 1 17 Variable Attributes continued Storage Bindings Lifetime Allocation getting a cell from some pool of available cells Deallocation putting a cell back into the pool The lifetime of a variable is the time during which it is bound to a particular memory cell Copyright 2012 Addison Wesley All rights reserved 1 18 Categories of Variables by Lifetimes Static bound to memory cells before execution begins and remains bound to the same memory cell throughout execution e g C and C static variables in functions Advantages efficiency direct addressing history sensitive subprogram support Disadvantage lack of flexibility no recursion Copyright 2012


View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...
Login

Join to view #Sebesta ch05 name bind scope - handout and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view #Sebesta ch05 name bind scope - handout and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?