计算机软件技术基础2ppt,计算机软件技术基础2_1程序设计语言.ppt

本文介绍了高级程序设计语言的基本概念,包括结构化程序设计的控制结构,如条件分支、循环结构,并详细阐述了编译器的工作原理,包括中间代码生成、优化和代码生成等阶段。此外,还讨论了数据类型如基本类型、数组、记录和指针,并提及了C语言中的指针使用。文章最后提到了程序的解释执行和结构化编程的优点。
摘要由CSDN通过智能技术生成

计算机软件技术基础2_1程序设计语言

第二章程序设计语言 ;2.1 高级程序设计语言概述 ; DATASEGMENT 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,AL HLTCODE ENDS ENDSTART ;main ( ){ int x,y; cin x; if(x>0) y=1 else if(x=0) y=0 else y=-1 cout x,y; } ;2.2高级程序设计语言实现计算的方式;2.2.1编译器工作原理;第四步 中间代码生成.中间代码是向目标码即机器语言的代码过渡的一种编码,其形式尽可能和机器的汇编语言相似,以便下一步的代码生成。中间码不涉及具体机器的操作码和地址码。采用中间码的好处是可以在中间码上作优化。第五步 优化。对中间码程序做局部优化和全局优化,使运行更快,占用空间最小。局部优化是合并冗余操作、简化计算,例如x : =0;可用一条“清零”指令替换.全局优化包括改进循环、减少调用次数和快速地址算法等。第六步 代码生成。由代码生成器生成目标机器的目标码(或汇编)程序,要作数据分段、选定寄存器等工作,然后生成机器可执行的代码。第七步 连接加载:高级语言源程序经编译后得到目标码程序,但它还不能立即装入机器执行,一般情况下它是不够完整的。如程序中用到abs ( ) , sin ( )这些函数,可直接调用,不需求绝对值、求正弦的程序,已作为目标码存放在机器中。编译后得到的目标模块还需进行连接.连接程序(即Linker)找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。把执行程序加载(Loading)到内存中合适的位置,即可执行。;2.2.2高级语言程序的解释执行 ;2 . 3 高级程序设计语言的基本特征 ;2.3.2 程序的控制结构;2.结构化程序的控制结构 ;出了错易于找出错误并修改易阅读导致易扩充、修改,大程序易于分析。程序控制结构清晰,是它用关键字控制程序块(语句组)。任何控制转移不能进入这些控制块,除非入口。块中转出也不能直接转到程序其他处,只能转到出口。在出/入口增加检查语句就使得程序错误真正局部化。程序块级(语句组)控制采用语句括号使程序逻辑与表示法结构完全一致。可直接编程。程序语言结构化以后,编程对流程图的依赖就很少了。Nassi-Schneldermann提出了结构化流程图(主要取消流线及箭头),因没有直接用类似结构化编程语言的伪代码方便而没有流行起来。;无假块条件分支和嵌套if语句if(E) then ST endifif(E1) then S1 elseifE2 then S2…else Sm endif 无假块条件语句是正规条件语句的简化,很常用。嵌套语句在否定部分用关键字elseif,有的语言用elsif。只有当所有条件均有‘假’时才执行else块。逐个检查m个条件效率很低,有时似无必要。;case语句 也叫分情形语句。根据条件变量Z的值单独执行S1,S2…,Sn,执行完Si自动跳到endcase(C语言例外,它要加上break才跳。否则执行Si+1到Sn)。;(2)循环结构;for-do语句 以控制变量增减值或枚举集合值计数的循环。for-do是do-while的另一种变体结构,其书写格式有多种变体。;(3)顺序控制;2.3.3数据类型;常用的基本类型;数组类型 ;记录类型 ;指针类型;C 语言中指针类型,以类型指明符‘*’表示。它所指向的对象是有类型的。 int i ,*p; // 声明i为整型,P为整型对象的指针 char c, *pCh;// 声明c 为字符型,pCh 为指向字符里对象指针 ‘*’放在变量标识符之前,出现在类型标识符之后,指明它所修饰的标识符是指向该类型对象的指针.p 是指向整型的指针,*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值