- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 引 论
一、基本内容
机器语言?汇编语言?高级语言?元语言?编译连接?早期绑定?晚期绑定?面向对象
的设计步骤?封装?重载?多态?继承?抽象?程序结构与组织?本章对面向对象的有关
概念不要求完全掌握?
二、学习要点
机器语言是一种计算机自身可以识别的语言?机器语言程序是由机器指令和数据形成的
二进制文档?机器语言指令通常由操作码和地址码构成?机器语言程序难于理解?编程繁
琐?不易维护?
汇编语言是一种符号化的能直接将汇编指令翻译为机器指令的程序设计语言?汇编语言
和机器语言同为低级语言?汇编语言更易理解和用于编程?但它仍然是一种面向机器的低
级程序设计语言?
高级语言程序是一种以类似于自然语言形式描述指令及数据的程序设计语言?高级语言
程序经编译可生成低级语言程序?高级语言通常指是面向过程的程序设计语言?即描述的
是问题求解的过程?算法或方法?问题求解的常用手段是功能分解?面向对象的程序设计
语言是一种能对新类型描述其属性和操作的高级语言?同时为新类型的定义提供了重载?
封装?多态?继承?组成等描述机制?
元语言是一种用来描述其他语言的语言?其特点是描述准确严格?抽象程度高?常用的
描述程序设计语言的元语言是BNF语言?
编译程序是用来将高级语言翻译为低级语言的程序?反编译程序是用来将低级语言翻译
为高级语言的程序?程序设计语言的翻译方式通常有两种?即解释方式和编译方式?C++
一般采用编译方式?
高级语言程序通常要经过预处理?词法分析?语法分析?代码生成和模块连接等环节?
才能被编译成可被计算机执行的程序?
绑定(binding)就是将函数的入口地址同函数调用指令的地址码相联系的过程?绑定就是
要计算被调用函数的入口地址?并将该地址存放到函数调用指令的地址码部分?绑定分为
静态绑定和动态绑定两种形式?通常又叫早期绑定和晚期绑定?静态绑定在程序执行前完
成?由编译程序或操作系统的装入程序计算函数的入口地址?动态绑定则在程序执行过程
中完成?由应用程序自身计算函数的入口地址?
面向对象的技术八十年代初开始出现?SMALLTALK?C++?JAVA?C#等是较为著名的
C++程序设计实践教程 ?254?
面向对象的程序设计语言?C++在20世纪80年代初出现?直到1983年C++的名字才正式
确定下来?1986年?Bjarne Stroustrup在美国ATT的贝尔实验室开发了C++?
面向对象的设计要经历系统分析?系统设计?对象设计与对象实现等四个阶段?每个阶
段之间的界限不是十分明显?这种早期模型和晚期模型的一致性?使面向对象的技术能更
好地支持快速原型法?
封装是将对象的“属性”和“方法”包装在一起?并对外部提供不同权限的访问接口的
机制?重载是指用同名的操作针对不同的类型完成不同的功能?重载是多态的一种特例?
重载又称为编译时多态?多态则特指运行时多态?多态是指同名的操作针对不同的类型表
现出不同的行为?继承是指一种类型接受并利用另一种类型的属性和操作的机制?继承可
以分为取代继承?包含继承?受限继承和异化继承等多种方式?
抽象是指一种从事物实例得到事物的共同属性和操作从而形成事物类型描述的过程?或
从若干低级的事物类型不但提炼形成高级或更具普遍意义事物类型描述的过程?
C++程序是一种由变量?过程或函数以及类型描述构成的混和结构的程序织?因此?从
这个意义上说?C++不是一种纯的面向对象的程序设计语言?
三、习题答案
1.1 高级语言程序经过哪些阶段才能成为可执行程序?
解:高级语言程序通常要经过预处理?词法分析?语法分析?代码生成和模块连接等阶段?
才能被编译成可被计算机执行的程序?
1.2 什么叫静态连接?什么叫动态连接?它们有什么区别?
解:静态连接是由编译程序完成的?编译程序将编译生成的目标语言连接成可执行程序文
件的过程?
动态连接是由操作系统完成的?在应用程序执的行过程中?操作系统根据被调用的函数
名连接内存中的动态连接库函数?若相关动态连接库被移出内存?则重新装入动态连接
库并重新连接?
静态连接是在程序执行之前完成的?动态连接是在程序的执行过程中完成的?静态连接
程序在执行时不需要再次装入程序文件?动态连接程序在执行时一般需要重新装入程序
文件?因此?静态连接程序一般来说比动态连接程序执行速度快?静态连接程序需要将
程序文件全部装入内存?如果不同的程序包含了同样的函数代码?就会在内存装入这些
函数的多个副本?动态连接程序总是共用同一个函数副本?因此?静态连接程序一般要
比动态连接程序占用更多的内存?
1.3 什么叫静态绑定?什么叫动态绑定?它们有什么区别?
解:静态绑定是在程序运行之前进行的?编译程序或操作系统在装入程序后?计算函数的
习题
文档评论(0)