您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 唐良荣《计算机导论-计算思维和应用技术》第2章 程序语言A
第1页共96页《计算机导论——计算思维和应用技术》计算机第2章程序语言2.1程序特征2.2程序结构2.3程序员语言介绍2.4软件开发方法2.1.3C语言程序结构2.1.4程序解释与编译2.1.5程序编辑与运行2.1.1程序语言的发展2.1.2程序语言的类型第2页共96页2.1.1程序语言的发展1、为程序设计做出杰出贡献的科学家(1)艾伦·佩利与程序设计语言•艾伦·佩利贡献:•1958年主持设计了ALGOL程序语言;•最早将程序设计引入了大学课堂;•1960年代,在卡内基-梅隆大学建立最早的计算机科学系。•1982年,发表名文“编程箴言”•艾伦·佩利名言:如果你给别人讲解程序时,看到对方点头了,那你就拍他一下,他肯定是睡觉了。第3页共96页2.1.1程序语言的发展(2)迪科斯彻与结构化程序设计•迪科斯彻贡献:•1960年开发了ALGOL60编译器;•提出“Goto语句有害论”(广泛用于结构化程序设计);•解决“哲学家就餐”问题(操作系统中信号量算法);•发明图论中最短路径算法(应用广泛的网络路由算法);•银行家算法的创造者(广泛用于操作系统的算法)。•迪科斯彻名言:•编程的艺术就是处理复杂性的艺术。•简单是可靠的先决条件。•计算机会不会思考这个问题就像问潜水艇会不会游泳一样。哲学家就餐问题第4页共96页2.1.1程序语言的发展(3)高德纳与数据结构•高德纳贡献:•创建了算法分析领域;•开创了数据结构的最初体系;•《计算机程序设计艺术》是计算机界最受敬重的参考书;•提出文学编程的概念;•开发了KnuthMorrisPratt(字符串查找)算法;•开发了TEX排版软件,成为科技论文的排版程序。•高德纳名言:•如果我们有再三思考的机会,几乎没有一件事情是不能被简化的。•计算复杂性理论研究计算模型在各种资源(时间、空间等)限制下的计算能力。•虽然计算机科学非常美妙,但它也不可能包办一切!第5页共96页2.1.1程序语言的发展【扩展】中国最早的程序员。中国第一个程序员:董铁宝(1956年)中国第一个女程序员:张绮霞(1957年)计算所成立的第一个程序设计组(1958年)第6页共96页2.1.1程序语言的发展【扩展】1956年,教育部从上海交通大学抽调电机专业高年级学生,到清华大学转学新成立的计算机专业,1957年中国第一批计算机专业学生毕业。第7页共96页2.1.1程序语言的发展2、不同类型程序语言的发展•高级程序语言使得程序设计不再过度地倚赖特定的计算机硬件设备。•最古老的高级程序语言:•FORTRAN•COBOL•ALGOL•LISP第8页共96页2.1.1程序语言的发展3、为什么有这么多程序语言•程序语言已超过上千种(维基百科);•很多人试图创建一种通用程序语言,但没有一次尝试是成功的。•多种程序语言的原因:•没有一种程序语言可以解决所有问题;•环境变化时,需要新程序语言适用它;•编程新手与高手之间的技术差距非常大;•不同程序语言的运行效率和开发成本不相同。第9页共96页2.1.1程序语言的发展4、程序设计语言的学习•大部分应用程序开发具有初中知识水平即可;•程序设计中需要记忆的英文单词并不多;•高水平编程需要查阅相应的英文技术文档:•例如,如API(应用程序编程接口),•例如,SDK(软件开发工具包),•例如,MSDN(微软开发人员网络)。•学习编程语言的方法:•多阅读优秀源程序;•多练习编写程序;•多思考如何解决身边的问题。第10页共96页2.1.1程序语言的发展5、程序语言的发展趋势•程序语言结构变化很少,主要成绩是设计框架和设计工具的改进。•例如,微软.NETFramework框架有超过1万个类和10万个方法(子程序)。•例如,程序集成开发环境包含:指令彩色显示,指令和函数提示,错误提示,自动递进,自动收缩,集成调试器和编译器等。•语言抽象级别越高,语言表现力越强大。•程序语言发展趋势:•声明式编程风格,例如,Prolog、SQL、函数式编程等;•动态程序语言,例如,PHP、Python等;•并行编程,例如,UPC、Go等。第11页共96页2.1.1程序语言的发展•【案例】程序设计语言之间的相互影响。计算机第12页共96页《计算机导论——计算思维和应用技术》第2章程序语言1.1.1计算机的发展2.1程序特征2.1.1程序语言的发展2.1.2程序语言的类型2.1.3C语言程序结构2.1.4程序解释与编译2.1.5程序编辑与运行第13页共96页2.1.2程序语言的类型1、程序语言的基本功能•程序语言是计算机指令执行流程的形式化语言。•程序语言规范:•数据类型和数据结构;•指令类型和指令控制;•调用机制和库函数;•以及不成文的规定,如,递进书写、变量命名等。第14页共96页2.1.2程序语言的类型2、程序语言的基本组成(1)指令及指令流程控制•程序由多条语句组成。•语句有规定的关键字和语法结构。(2)程序语言基本组成•数据成分,如:数值、字符、数组等;•运算成分,如:四则运算、逻辑运算等;•控制成分,如:选择、循环、调用等;•传输成分,如:实参与形参、返回值等。第15页共96页2.1.2程序语言的类型3、程序语言的类型(1)程序语言的分类•程序功能:算法描述型语言,如C、Java等;数据描述型语言,如HTML、XML等。•编程难易:低级语言,如汇编语言;高级语言,如C、Java等。•设计风格:命令式语言,结构化语言,面向对象语言,函数式语言,脚本语言等;•应用领域:通用程序语言,如C、Java等;专用程序语言,如VHDL、TCL等;•执行方式:解释型语言,编译型语言,编译+解释型语言。第16页共96页2.1.2程序语言的类型(2)机器语言•机器语言是以二进制代码表示的指令集合。•优点:占用内存少、执行速度快;•缺点:难编写、难阅读、难修改、难移植。早期手工编写的机器语言程序第17页共96页2.1.2程序语言的类型•【案例】机器语言。指令部份示例1、0000代表加载(LOAD)2、0001代表存储(STORE)暂存器部份示例1、0000代表暂存器A2、0001代表暂存器B存储器部份示例1、000000000000代表地址为0的存储器2、000000000001代表地址为1的存储器3、000000010000代表地址为16的存储器4、100000000000代表地址为211的存储器集成示例1、0000,0000,000000010000代表LOADA,162、0000,0001,000000000001代表LOADB,13、0001,0001,000000010000代表STOREB,164、0001,0001,000000000001代表STOREB,1第18页共96页2.1.2程序语言的类型(3)汇编语言•汇编语言是用简单符号(助记符)表示二进制代码指令的语言。•汇编语言与机器语言本质上相同。•不同CPU(如ARM与Intel的CPU)的机器指令不同,它们的汇编语言也不同。汇编程序的运行第19页共96页2.1.2程序语言的类型•【案例】汇编语言与机器语言指令。汇编指令机器指令指令说明内存地址机器代码MOVAL,620010000011010110000将地址为2001的内存单元中的数据(6),传送到AL寄存器ADDAL,220030000001000000100将地址2003内存单元中的数据(2)取出,将AL寄存器中数据(6)取出,两者相加后,结果仍然保存在AL寄存器MOVSUM,AL2005000000000101000010100010将AL寄存器中的数据(8)送到SUM存储单元HLT200811111000停机(指程序停止运行)第20页共96页2.1.2程序语言的类型(4)高级程序语言•高级语言将许多机器指令合并成一条高级程序指令。•2014年流行程序语言如表2-2所示。排名程序语言语言特色1C结构化,处理能力强,可对硬件编程,通用性语言2Java面向对象,跨平台,多线程等,广泛用于网络和手机编程3Objective-C面向对象,扩充C语言,苹果计算机和智能手机编程4C++面向对象,功能强大,过于复杂,大型系统软件开发5PHP脚本语言,易于学习,开源免费,网络Web程序开发6C#面向对象,跨平台性不佳,网络Web程序开发7VisualBasic面向对象,简单易学,运行效率较低,一般软件开发8Python脚本语言,面向对象,语法简洁。系统管理和网络程序开发9Perl脚本语言,操作文本容易,开源免费,网络Web程序开发10JavaScript脚本语言,易于学习,开源免费,网络Web程序开发第21页共96页2.1.2程序语言的类型【扩展】CodeForge网站2014年中国程序员调查报告。•男女比例:男性80%,女性20%;•喜欢语言:C++(24.5%),C(21.7%),Java(12.3%),C#(10.8%),Matlab#(8.4%)。•地区分布:广东(14.9%),北京(13.2%),江苏(7.6%),上海(6.4%),山东(5.3%),浙江(5.3%),陕西(4.9%),湖北(4.7%),四川(4.4%)。•程序员年龄:20-29占33.5%,30-39占36.3%,40-49占10.6%,50-59占1.7%。•使用操作系统:Win7占61.3%,WinXP占20.2%,Win8占12.%,MacOS占3.3%,Linux占2%。第22页共96页《计算机导论——计算思维和应用技术》第2章程序语言1.1.1计算机的发展2.1程序特征2.1.1程序语言的发展2.1.2程序语言的类型2.1.3C语言程序结构2.1.4程序解释与编译2.1.5程序编辑与运行第23页共96页2.1.3C语言程序结构1、C语言程序案例•【例2-2】编写“hello.c”C语言程序。•函数的一般结构:[函数类型]函数名(函数参数表)/*函数说明部分*/{说明语句部分;执行语句部分;/*函数体部分*/}⑴⑵⑶⑷⑸#includestdio.hvoidmain(){printf(HelloWorld!\n);}/*文件包含的库函数*//*主函数*//*函数体开始*//*输出语句*//*函数体结束*/头文件主函数第24页共96页2.1.3C语言程序结构•【例2-3】编制C语言程序,随机输入2个整数,输出其中较大的一个数。程序包括一个主函数main()和一个被调用的自定义函数max()。⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀#includestdio.hvoidmain(){intmax();inta,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d\n,c);}intmax(intx,inty){intz;if(xy)z=x;elsez=y;return(z);}/*头文件,包含库函数stdio.h*//*void是函数类型,main是主函数名*//*主程序开始,自定义函数max为整型数*//*声明a、b、c变量为整型数*//*scanf为输入语句,%d为格式符*//*调用max自定义函数,传递实参a,b值*//*显示“max=”和c值,主程序结束*//*自定义函数max的x,y为形参*//*{为函数开始符,变量z为整型数*//*判断语句,(xy)是表达式*//*z=x、z=y是赋值语句,将y值赋给z*//*将z值返回主函数main;}为函数结束符*/主函数(主程序)自定义函数(子程序)第25页共96页2.1.3C语言程序结构2、C语言程序的主要结构•C语言程序构成•C语言程序由函数构成;•每个C程序必须有一个主函数main;•程序由“函数头部”和“函数体”组成。•程序注释•C语言中/**/之内为程序注释;•程序注释部分不会执行;•程序代码说明“怎样做”;•程序注释说明“为什么”这样做;•程序注释是为了增强程序的易读性和可维护性。第26页共96页2.1.3C语言程序结构•【案例】C语言程序结构。第27页共96页《计算机导论——计算思维和应用技术》第2章程序语言1.1.1计算机的发展2.
本文标题:唐良荣《计算机导论-计算思维和应用技术》第2章 程序语言A
链接地址:https://www.777doc.com/doc-3476106 .html