赞
踩
程序设计语言是为了书写计算机程序而人为设计的符号语言,用于对计算过程进行 描述、组织和推导。
低级语言:机器语言(计算机硬件只能识别0和1的指令序列),汇编语言。
高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较接近。
各程序设计语言特点:
常见的程序脚本语言
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。脚本语言一般指无需编译,逐行解释执行的语言。
例题:
脚本语言不是通用的程序设计语言!!!
程序设计语言通过编译方法实现,需要编译器
而脚本语言通过结束方式实现,不需要编译器,但需要解释器
解释和编译:
都是将高级语言翻译成计算机硬件认可的机器语言加以执行。不同之处在于
编译程序生成独立的可执行文件,直接运行,运行时无法控制源程序,效率高。
而解释程序不生成可执行文件,可以逐条解释执行,用于调试模式,可以控制源程序,因为还需要控制程序,因此执行速度慢,效率低。
程序设计语言组成:
语法(一组规则)、语义(语法成分的含义)、语用(构成语言的各个记号和 使用者的关系)。
程序设计语言的基本成分
数据成分:指一种程序设计语言的数据和数据类型。数据分为常量(程序运行时不可改变)、变量(程序运行时可以改变)、全局量(存储空间在静态数据区分配)、局部量(存储空间在堆栈区分配)。数据类型有整型、字符型、双精度、单精度浮点型、布尔型等。
运算成分:指明允许使用的运算符号及运算规则。包括算术运算、逻辑运算、关系运算、位运算等。
控制成分:指明语言允许表述的控制结构。包括顺序结构、选择结构、循环结构(初始化+循环体+循环条件)。
传输成分:指明语言允许的数据传输方式。如赋值处理、数据的输入输出等
例题:
确定数据类型的优点:
1. 有利于确定存储空间
2. 有利于确定取值范围
3. 有利于数据检查
函数
传值调用:将实参的值传递给形参,形参的改变不会导致调用点所传的实参的值改 变。实参可以是合法的变量、常量和表达式。
传址调用:即引用调用,将实参的地址传递给形参,即相当于实参存储单元的地址 引用,因此其值改变的同时就改变了实参的值。实参不能为常量,只能是合法的变 量和表达式。
因此,在编程时,要改变参数值,就传址,不改变,就传值。
函数调用时基本的参数传递方式有传值与传地址两种。
传值调用是将实参的值传给被调用函数的形参,因此实参可以是常量、变量、表达式或函数调用;
传地 址调用(或引用调用)的实质是将实参的地址传给被调用函数的形参,因此实参必须具有地址。
编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语 言或机器语言)。编译程序工作过程分为6个阶段,如下图所示:
例题:
1.
中间代码生成 和 代码优化 不是编译器必需的!
2.
词法分析输入是 记号流
字符流是java中的知识
语法分析后就能构造出分析树
3.
符号表 -- 记录变量等
始于词法分析
【图】
要掌握上述三种表达式即可,其实就是树的三种遍历,一般正常的表达式是中序遍历 即中缀表达式,根据其构造出树,再按题目要求求出前缀或后缀式。
例:a+(b-c)*d的后缀式是(?)。
abc-d*+
简单求法:后缀表达式是从左到右开始,先把表达式加上括号,再依次把运算符加到本层次的括号后面。
一个形式文法是一个有序四元组G=(V,T,S,P),其中:
例:已知文法G:S->A0|B1 , A->S1|1 , B->S0|0,其中S是开始符。从S出发可以推导出(?)。
带入:S->(S1|1)0 | (S0|0)1
S->S10 | 10 | S01 | 01
S-> 1
某些0和1个数相等的字符串
????还不会!
闭包,概念如下图,一般考察闭包可以为0个的情况代入运算:
正则闭包:A+=A^1 U A^2 U A^3 U…U A^n U…(也就是所有幂的组合)。
闭包:A*=A^0 U A^+(在正则闭包的基础上,加上A0={ε})。
例:
a*={a,aa,aaa,…,ε}
而(ab)*={ab,abab,ababab,.,ε}
即 正则表达式
确定的有限自动机和不确定的有限自动机
输入一个字符,看是 否能得出唯一的后继(相同条件能有多种选择),若能,则是确定的,否则若得出多个后继则是不确定的。
例: 知道 初态 和 终态 推到即可!
自上而下语法分析:最左推导,从左至右。给定文法G和源程序串r。从G的开始符号S出发,通过反 复使用产生式对句型中的非终结符进行替换(推导),逐步推导出r。
递归下降思想:原理是利用函数之间的递归调用模拟语法树自上而下的构造过程,是一种自上而下 的语法分析方法。
自下而上语法分析:最右推导,从右至左。从给定的输入串开始,不断寻找子串与文法G中某个产 生式P的候选式进行匹配,并用P的左部代替(归约)之,逐步归约到开始符号S。
移进规约思想:设置一个栈,将输入符号逐个移进栈中,栈顶形成某产生式的右部时,就用左部去 代替,称为归约。很明显,这个思想是通过右部来推导出左部,因此是自下而上语法分析的核心思.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。