程序设计语言概念(ConceptsofProgramming-Languages)-英文-第10版第课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《程序设计语言概念(ConceptsofProgramming-Languages)-英文-第10版第课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 概念 ConceptsofProgramming Languages 英文 10 课件
- 资源描述:
-
1、Chapter 5Chapter 5Names,Bindings,and ScopesCopyright 2012 Addison-Wesley.All rights reserved.1-2Chapter 5 TopicsIntroduction NamesVariablesThe Concept of BindingScope Scope and LifetimeReferencing EnvironmentsNamed ConstantsCopyright 2012 Addison-Wesley.All rights reserved.1-3Introduction Imperative
2、 languages are abstractions of von Neumann architecture Memory Processor Variables are characterized by attributes To design a type,must consider scope,lifetime,type checking,initialization,and type compatibilityCopyright 2012 Addison-Wesley.All rights reserved.1-4Names Design issues for names:Are n
3、ames case sensitive?Are special words reserved words or keywords?Copyright 2012 Addison-Wesley.All rights reserved.1-5Names(continued)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 l
4、imited to a maximum of 31 C#,Ada,and Java:no limit,and all are significant C+:no limit,but implementers often impose oneCopyright 2012 Addison-Wesley.All rights reserved.1-6Names(continued)Special characters PHP:all variable names must begin with dollar signs Perl:all variable names begin with speci
5、al characters,which specify the variables type Ruby:variable names that begin with are instance variables;those that begin with are class variablesCopyright 2012 Addison-Wesley.All rights reserved.1-7Names(continued)Case sensitivity Disadvantage:readability(names that look alike are different)Names
6、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-8Names(continued)Special words An aid to readability;used to delimit or separate state
7、ment 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
8、 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-9Variables A variable is an abstraction of a memory cell Variables can be characterized as a sextuple of attributes:Name Address Value Type Lifetime Scop
9、eCopyright 2012 Addison-Wesley.All rights reserved.1-10Variables Attributes 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
10、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
11、.1-11Variables 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 precisionValue-the contents of the location with which the variable is associated -The l-valu
12、e of a variable is its address -The r-value of a variable is its valueAbstract memory cell-the physical cell or collection of cells associated with a variable Copyright 2012 Addison-Wesley.All rights reserved.1-12The Concept of Binding A binding is an association between an entity and an attribute,s
13、uch as between a variable and its type or value,or between an operation and a symbolBinding time is the time at which a binding takes place.Copyright 2012 Addison-Wesley.All rights reserved.1-13Possible Binding Times Language design time-bind operator symbols to operations Language implementation ti
14、me-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 nonstatic local variable to a memory cellCopyright 2012 Addison-Wesley.All rights reserved.1-14Static and Dynamic Binding A bind
15、ing 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 programCopyright 2012 Addison-Wesley.All rights reserved.1-15Type Binding How is a type specified?When do
16、es the binding take place?If static,the type may be specified by either an explicit or an implicit declarationCopyright 2012 Addison-Wesley.All rights reserved.1-16Explicit/Implicit Declaration An explicit declaration is a program statement used for declaring the types of variables An implicit decla
17、ration 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:reliab
18、ility(less trouble with Perl)Copyright 2012 Addison-Wesley.All rights reserved.1-17Explicit/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 BA
19、SIC 9.0+,ML,Haskell,F#,and Go use type inferencing.The context of the appearance of a variable determines its typeCopyright 2012 Addison-Wesley.All rights reserved.1-18Dynamic Type Binding Dynamic Type Binding(JavaScript,Python,Ruby,PHP,and C#(limited)Specified through an assignment statement e.g.,J
20、avaScript 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 difficultCopyright 2012 Addison-Wesley.All rights reserved.1-19Variable Attributes(continued)Storage Bindings&Lifet
21、ime 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 cellCopyright 2012 Addison-Wesley.All rights reserved.1-20Categories of Variables by Lifetimes Static-
22、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 Addison
23、-Wesley.All rights reserved.1-21Categories of Variables by Lifetimes Stack-dynamic-Storage bindings are created for variables when their declaration statements are elaborated.(A declaration is elaborated when the executable code associated with it is executed)If scalar,all attributes except address
24、are statically bound local variables in C subprograms(not declared static)and Java methods Advantage:allows recursion;conserves storage Disadvantages:Overhead of allocation and deallocation Subprograms cannot be history sensitive Inefficient references(indirect addressing)Copyright 2012 Addison-Wesl
展开阅读全文
链接地址:https://www.163wenku.com/p-5202260.html