计算机软件技术基础2-1_程序设计语言_第1页
计算机软件技术基础2-1_程序设计语言_第2页
计算机软件技术基础2-1_程序设计语言_第3页
计算机软件技术基础2-1_程序设计语言_第4页
计算机软件技术基础2-1_程序设计语言_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 22.1 高级程序设计语言概述 操作码操作数操作数备注000001001010000100101110二进制指令04HA1H2EH十六进制指令ADDAX2EH汇编指令 操作码 操作数 操作数3DATASEGMENT XX DB X YY DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BIGR MOV AL,0FFH MOV YY,AL HLT JE EQUT BIGR: MOVAL,01H MOVYY,AL HLTEQUT:MOVYY

2、,AL HLTCODE ENDS ENDSTART ;数据段开始;X值存入XX单元;YY单元留作存函数Y的值;以上是数据段;代码段开始;CS段中装入代码,DS段中装入数据;执行开始;将XX中的值转移到运算器AL;将运算器AL中的值与0比较;如果大于等于0就跳BIGR;X0) y=1 else if(x=0) y=0 else y=-1 cout x,y; 5o机器只知道根据机器语言指令来执行程序,高级语言程序必须通过翻译变成机器语言程序,这个工作一般由翻译程序自动完成的。把一种语言翻译成另一种语言的程序叫做翻译器(如C+翻成C)。把高级语言程序翻译成机器语言程序有两种做法:编译和解释,相应的翻

3、译程序分别叫做编译器和解释器。6一个高级语言程序是编译(程序)器的输入。编译器逐行扫描程序,首先是识别符号串:关键字、字面量、标识符(变量名、数据名)、运算符、注释行、特殊符号(续行、语句结束、数组等)这六类符号,分别归类等待处理。这个过程就是词法分析(Lexical Analysis)。(Syntax Analysis)。这时一个语句就作为一串记号(token)流由语法分析器处理。按照语言的文法检查每个语法分析树,判定是否为合乎语法的句子。如果是合法句子就以内部格式把这个语法树保存起来,否则报错。这样直至检查完整个程序。(Semantic Analysis )。对各句子的语法树做检查:运算符

4、两边类型是否相兼容;作哪些类型转换(例如实数向整数赋值要取整);是否控制转移到不该去的地方;是否有重名或者使语义含糊的记号等。如果有错转到出错处理,否则生成中间代码。7中间代码是向目标码即机器语言的代码过渡的一种编码,其形式尽可能和机器的汇编语言相似,以便下一步的代码生成。中间码不涉及具体机器的操作码和地址码。采用中间码的好处是可以在中间码上作优化。对中间码程序做局部优化和全局优化,使运行更快,占用空间最小。局部优化是合并冗余操作、简化计算,例如x : 0;可用一条“清零”指令替换全局优化包括改进循环、减少调用次数和快速地址算法等。由代码生成器生成目标机器的目标码(或汇编)程序,要作数据分段、

5、选定寄存器等工作,然后生成机器可执行的代码。高级语言源程序经编译后得到目标码程序,但它还不能立即装入机器执行,一般情况下它是不够完整的。如程序中用到abs ( ) , sin ( )这些函数,可直接调用,不需求绝对值、求正弦的程序,已作为目标码存放在机器中。编译后得到的目标模块还需进行连接连接程序(即Linker)找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。把执行程序加载(Loading)到内存中合适的位置,即可执行。8 9 10无条件转移语句:在汇编语言时代就有了Jump 指令使执行跳转,对应的高级语言语句是无条件转移语句:goto loo

6、p; 其中loop 是跳转到的语句的标号(数字或标识符)。条件转移语句:加上条件判断子句if(E)就是条件转移语句:If(E) goto loop;其中E 是条件(布尔)表达式,求值结果是真、假值。如果为真转移到标号为l 的语句,为假则按顺序执行下一条语句。11 三种结构化的基本控制结构1213o无假块条件分支和嵌套if语句(1)条件分支1415odo-until和for结构 16 以控制变量增减值或枚举集合值计数的循环。for-do是do-while的另一种变体结构,其书写格式有多种变体。17181920数组类型 21 22 3C58123 (3C58)*PP 指针变量示意图23 24Mai

7、n() a=a*sin(30)+c; d=e*ein(37)-f; y=60*sin(76)/13; double sin(int x) x=x*3.1459/180; /计算正弦值 return; 25若无参数,写void是被初始化的内部变量,寿命和可见性仅限于函数内部若不说明类型,一律自动按整型处理,若为void即为无返回262728计算机软件技术基础2930clear thescreenset the display as color and text model31show the ascii value from 48 to 90, i.e. form 09, :;?, AZ3233

8、 34 35 36 过程范式 面向对象范式 对象 对象 对象 对象 过程 1 过程 2 过程 3 数据 方法 数据 方法 数据 方法 方法 数据 数据 3738394041424344class Person char IDcard18; char name20; . ; class Student:public Person char studentcode8;char deparment15; ;45464748 495051 网络计算在网站之间传递的是主页。主页按http 协议传递,页面格式是HTML(超文本标记语言)。每个站点上都有浏览器可以识别以约定标签标记过的正文,标签成对形如:

9、,标签层层嵌套,如一本书先章、节、段落后复合语句、简单语句。经过标记之后一段正文信息就成为结构化数据。传到另一站点后,浏览器读出这段正文,就原封不动地转移了,即使是图文并茂的多媒体文档也照传无误。但HTML 约定的60 多个标签表达能力有限。它只知道传递的内容是符号串和二进制块。于是,人们发展了可以由用户定义标签的XML可扩展的置标语言)语言,从而可描述页面的数据内容。页面格式由XSL 或CSS子语言描述XML 可描述数据关系比较复杂的数据结构,如图、表、树、索引文件和数据库中定义的数据关系。在数据库服务器站点上根据不同客户要求,从库中取出数据放入XML文档,传送到不同站点的客户机上,各站点上的客户就可以按标签理解并使用它们。尽管HTML 和XML 在当今万维网上传送信息(写主页)是不可或缺的工具,但它们不是传统意义上的编程语言它们只能描述、传递数据,不能表达对这些数据的操作也就是客户接到数据库中的数据后还要自己编写程序完成数据处理。为此,发展了各种脚本语言,脚本语言随同Web 页面一起传送到另一站点,该站点的浏览器叮以立即执行。52532.5.3 网络编程语言网络编程语言5455Java(虚 拟 机 )Javac( 编 译 器 )Java(虚 拟 机 )J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论