Scope
Chapter Ten Modern Programming Languages, 2nd ed. 1
Scope Chapter Ten Modern Programming Languages, 2nd ed. 1 Reusing - - PowerPoint PPT Presentation
Scope Chapter Ten Modern Programming Languages, 2nd ed. 1 Reusing Names Scope is trivial if you have a unique name for everything: fun square a = a * a; fun double b = b + b; But in modern languages, we often use the same name over
Chapter Ten Modern Programming Languages, 2nd ed. 1
Chapter Ten Modern Programming Languages, 2nd ed. 2
Chapter Ten Modern Programming Languages, 2nd ed. 3
Chapter Ten Modern Programming Languages, 2nd ed. 4
Chapter Ten Modern Programming Languages, 2nd ed. 5
Chapter Ten Modern Programming Languages, 2nd ed. 6
Chapter Ten Modern Programming Languages, 2nd ed. 7
Chapter Ten Modern Programming Languages, 2nd ed. 8
Chapter Ten Modern Programming Languages, 2nd ed. 9
Chapter Ten Modern Programming Languages, 2nd ed. 10
Chapter Ten Modern Programming Languages, 2nd ed. 11
Chapter Ten Modern Programming Languages, 2nd ed. 12
Chapter Ten Modern Programming Languages, 2nd ed. 13
Chapter Ten Modern Programming Languages, 2nd ed. 14
Chapter Ten Modern Programming Languages, 2nd ed. 15
Chapter Ten Modern Programming Languages, 2nd ed. 16
Chapter Ten Modern Programming Languages, 2nd ed. 17
– C++ namespace – Modula-3 module – Ada package – Java package
– Class definitions in class-based object-oriented
Chapter Ten Modern Programming Languages, 2nd ed. 18
Chapter Ten Modern Programming Languages, 2nd ed. 19
– Use memorable, simple names like max – For globally accessible things, use uncommon
– Within the namespace, you can use max – From outside, SupplierBid.max
Chapter Ten Modern Programming Languages, 2nd ed. 20
Chapter Ten Modern Programming Languages, 2nd ed. 21
Chapter Ten Modern Programming Languages, 2nd ed. 22
Chapter Ten Modern Programming Languages, 2nd ed. 23
Chapter Ten Modern Programming Languages, 2nd ed. 24
Chapter Ten Modern Programming Languages, 2nd ed. 25
interface dictionary contains a function type definition for create a function type definition for insert a function type definition for search a function type definition for delete end interface namespace myDictionary implements dictionary contains a constant definition for initialSize a type definition for hashTable a function definition for hash a function definition for reallocate a function definition for create a function definition for insert a function definition for search a function definition for delete end namespace
Chapter Ten Modern Programming Languages, 2nd ed. 26
Chapter Ten Modern Programming Languages, 2nd ed. 27
Chapter Ten Modern Programming Languages, 2nd ed. 28
Chapter Ten Modern Programming Languages, 2nd ed. 29
Chapter Ten Modern Programming Languages, 2nd ed. 30
Chapter Ten Modern Programming Languages, 2nd ed. 31
Chapter Ten Modern Programming Languages, 2nd ed. 32
Chapter Ten Modern Programming Languages, 2nd ed. 33
Chapter Ten Modern Programming Languages, 2nd ed. 34
Chapter Ten Modern Programming Languages, 2nd ed. 35
Chapter Ten Modern Programming Languages, 2nd ed. 36
Chapter Ten Modern Programming Languages, 2nd ed. 37
– Difficult to implement efficiently – Creates large and complicated scopes, since
– Choice of variable name in caller can affect
Chapter Ten Modern Programming Languages, 2nd ed. 38
Chapter Ten Modern Programming Languages, 2nd ed. 39
Chapter Ten Modern Programming Languages, 2nd ed. 40
– Full definition – Name and type only: a declaration in C-talk
– Only one will have the full definition,
– All others have the declaration
Chapter Ten Modern Programming Languages, 2nd ed. 41
Chapter Ten Modern Programming Languages, 2nd ed. 42
Chapter Ten Modern Programming Languages, 2nd ed. 43
Chapter Ten Modern Programming Languages, 2nd ed. 44
Chapter Ten Modern Programming Languages, 2nd ed. 45
– Java classes can depend on each other
– ML is not really suitable for separate
Chapter Ten Modern Programming Languages, 2nd ed. 46
Chapter Ten Modern Programming Languages, 2nd ed. 47