补充:程序设计的发展

上传人:kms****20 文档编号:51477336 上传时间:2018-08-14 格式:PPTX 页数:24 大小:459.99KB
返回 下载 相关 举报
补充:程序设计的发展_第1页
第1页 / 共24页
补充:程序设计的发展_第2页
第2页 / 共24页
补充:程序设计的发展_第3页
第3页 / 共24页
补充:程序设计的发展_第4页
第4页 / 共24页
补充:程序设计的发展_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《补充:程序设计的发展》由会员分享,可在线阅读,更多相关《补充:程序设计的发展(24页珍藏版)》请在金锄头文库上搜索。

1、程序设计的发展庄朝晖 厦门大学计算机系计算科学的起源从逻辑开始 中文的“逻辑”显然音译自英文的“logic”。logic又来 自中古拉丁文的logica,logica又源自希腊文logos( )。logos一般翻译为“逻格斯”,接近于中文里 的“道”。 中文的“道”和希腊文“logos”都有以下两层意思: 1 各种事物的定义或者各种活动的规则(西方各门学科 的名字都以 -logy缀后的习惯) 2 言说,言谈 这两层意思也是相互关联的。言谈是为了揭示事物的 道理,道理一般也通过言谈得以开显。通用计算的设想 “万一发生争执,正像两个会计 员之间无须乎有辩论,两个哲学 家也不需要辩论。 因为他们只

2、要拿起石笔,在石板前坐下来, 彼此说一声(假如愿意,找个朋 友作证):我们来算算,也就行 了。” 莱布尼兹通用计算的几种模型 面对着生活世界,人类发展出三种推理模型: a、自然语言的推理:使用语言和概念来表示命题与 知识,通过交谈与辩论来进行推理。 b、符号逻辑的推理:使用符号来表示命题与知识, 使用逻辑规则来进行推理。 c、数字计算的推理:使用数字来表示命题与知识, 使用计算来进行推理。 这三种推理模型都可以归结为逻辑系统。然而所有的 逻辑系统,皆有其局限性与适用性,所以不要拘泥于 任何逻辑系统之中,要敢于超越现有的逻辑系统。 理性精神则勇于质疑,分析和超越这些预设和成见。 这就是爱智慧。图

3、灵机的出现 在第三次数学危机中,数 学中的构造部分得到了重 视。 在剑桥大学的图灵观察到 人类的纸笔运算,他设想 :能否有这样一台机器, 通过某种一般的机械步骤 ,能够解决所有可以解决 的数学问题。 以上机器就是他提出来的 图灵机。图灵机可以计算 的问题,就称为图灵机可 计算。控制器的命令可表示为:(状态,符号)(写符号,移动,状态); 控制器输入:图灵机运行前,工作带上的内容就是输入。(输入 之前用一个空格隔开,连续遇到两个空格表示结束)输出:图灵机运行后进入结束状态,那么,图灵机就停机 ,此时带上的内容就是计算的输出结果。算法(Algorithm) 解决问题的大致流程:分析问题 确定算法

4、选择语言并编码 调试运行 解决问题 所谓算法是对计算过程步骤(或状态)的一种刻 划,是计算方法的一种能行实现方式。 (Knuth对算法的定义)算法是对特定问题求 解步骤的一种描述。此外,算法的规则序列 须满足如下五个条件: (1) 有穷性。算法必须总是在执行有穷步之 后结束; (2) 确定性。算法的每一个步骤必须是确切 地定义的; (3) 输入。算法有零个或多个输入; (4) 输出。算法有一个或多个输出,即与输 入有某个特定关系的量; (5) 能行性。算法中有待执行的运算和操作 必须是相当基本的,即是说,它们原则上都 是能够精确地进行的,而且用笔和纸做有穷 次就可以完成。 算法设计的要求 评价

5、一个好的算法有以下几个标准: (1) 正确性(Correctness ) 算法应满足具体问题的需 求。 (2)可读性(Readability) 算法应该好读。以有利于阅 读者对程序的理解。(3)健状性(Robustness) 算法应具有容错处理。当输入 非法数据时,算法应对其作出反应,而不是产生莫名其妙 的输出结果。 (4)效率与存储量需求 效率指的是算法执行的时间;存 储量需求指算法执行过程中所需要的最大存储空间。一般 ,这两者与问题的规模有关。算法的表示1、自然语言描述; 2、程序流程图描述 ; 3、N-S图描述;例如:求12+100之和算法的自然语言描述1. sum赋初值为0;变量i赋初

6、值为1; 2. 让i从1变化到100,执行以下循环: 将i的值累加到sum中去。 3.输出sum中的值,即为所求的结果。算法的程序流程图描述 开始sum=0i=1i=100sum=sum+ii=i+1打印是否算法的NS图描述sum=0i=1i=100sum=sum+ii=i+1输出sum例:求两个自然数的最大公约数。解答: step1:分析问题 step2:确定算法 step3:算法描述 step4:编码 step5:调试运行 1、输入x, y 的值,算法将求它们的最大公 约数。 2、让minnum等于x与y的最小值。 3、让i从minnum变化到1,执行以下循环: 如果i可以整除x和y,那么

7、跳出循环。 4、输出i的值,即为所求。算法的自然语言描述以下使用欧几里德算法 记gcd(x,y)为x与y的最大公因数。 我们首先从函数gcd(x,y)的性质出 发来求解。函数gcd(x,y)具有如下 性质: (1) gcd(a,b)gcd(b,a) (2) gcd(a,b)gcd(a,b) (3) gcd(a,0)|a| (4) gcd(a,b)gcd(b,a mod b), 0a mod bb 例如: gcd(18,12)=gcd(12,6)=gcd(6,0)=6设计程序(Programming) 一般地说,对任何一个问题,如果有了解 决该问题的算法,就可以编制相应的程 序。所谓程序,是一种

8、事先编制好了具有 特殊功能的指令序列。 其中,指令既可以是机器指令,汇编语言 指令,也可以是高级语言的语句命令,甚 至未来还可能是用自然语言描述的运算、 操作命令。常见程序设计语言1. 机器语言:计算机发明之初,人们只能用计算机的 语言去命令计算机工作,也就是写出一串串由“0”和 “1”组成的指令序列交由计算机执行。2. 汇编语言 :使用助记符,例如用ADD代表加法,用 MOV代表数据传递等。:0041138E: C745 F8 01000000 MOV DWORD PTR EBP-8, 1 :00411395: C745 EC 02000000 MOV DWORD PTR EBP-14, 2

9、 :0041139C: 8B45 F8 MOV EAX, DWORD PTR EBP-8 :0041139F: 0345 EC ADD EAX, DWORD PTR EBP-14 :004113A2: 8945 E0 MOV DWORD PTR EBP-20, EAX11000111010001011111100000000001000000000000000000000000 11000111010001011110110000000010000000000000000000000000 100010110100010111111000 110100010111101100 10001001

10、0100010111100000汇编语言 :二进制代码:3. 高级语言:计算机的发展应用促使人们寻求一些与人类 自然语言相接近且能为计算机所接受的通用易学的计算机 语言。如C、 Pascal、 Basic、 Foxpro、Fortune、 perl 4. 专门领域的开发语言: 如VHDL(电路板开发), Lisp (AI) ,Prolog (AI) 5. 面向对象语言:80年代初开始,在软件设计思想上,又 产生了一次革命,其成果就是面向对象的程序设计,如 Visual C+, Visual Basic, Visual C#, Delphi, java 。 一般来说,越接近机器的语言效率越高,越

11、接近人类的语言 界面越好通用性越好。编译过程(Compile) 程序设计人员使用的高级语言是一个语言系统,机器语言 是另一个语言系统,编译是把高级语言系统的源程序翻译 成等价的机器语言系统的目标程序。 编译过程类同于人类之间两种语言系统(如英语到汉语)的 翻译。 计算机将源程序翻译成目标程序有如下两种方式: a. 编译方式:通过相应的编译程序将源程序全部翻译成目 标程序,然后链接成可执行程序。 b. 解释方式:通过相应的解释程序将源程序逐句解释翻译 ,逐句执行。翻译过程和编译过程的对比 翻译过程编译过程编译程序术语分解出各个单词分解单词词法分析识别出各个句子识别语句语法分析理解句子的含义理解语

12、义语义分析进行语言修辞进行机器代码的优化代码优化写出最后的译文得到目标程序目标代码生成程序设计方法的发展 面向过程程序设计方法的特点是:在进行程序设 计时,必须详细准确地描述整个求解过程。 模块化程序设计方法的特点是,把软件根据需求 分析要求和功能抽象结果划分成若干个模块,每 个模块完成一个子功能,把这些模块组装成一个 整体,系统就可以完成需要完成的功能。 面向对象程序设计方法,在技术方法上是传统软 件开发方法的继承和发展,在思想观念上是一次 革命。具有更好的封装性和可重用性。面向对象语言简介 类和对象:面向对象语 言使用类和对象来进行 数据表示和算法执行。 例如猫类: Class Cat 属性:sex,color 功能:walk,sleep 猫类的对象: Set kitty = New Cat Set garfield = New Cat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号