《程序设计语言基础知识》简汇

1.调用

    值调用:将实参的值传递给相应的形参,单向。实参可以是任意变量和表达式

    引用调用:形参名实际上是实参的别名,函数对形参的访问和修改实际上是对实参进行的访问和修改。

2.编译方式与解释方式

    解释程序:直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行。

    解释程序和源程序参与到程序的运行过程中,程序执行速度慢。其中脚本语言主要采用解释方式实现

    编译程序则是将源程序翻译为目标语言程序。

    源程序和编译程序不参与目标程序执行过程。其中,中间代码生成和代码优化不是每个编译器都必须的

3.出错处理

    静态错误:

        语法错误:单词拼写错误、标点符号错、表达式中缺少操作数,括号不匹配

        静态语义错误:语义分析时发现运算符与运算对象类型不合法

    动态错误:也称动态语义错误,发生于程序运行时。包括:变量取零时做除数、引用数组元素下标错误。

4.语法分析方法

    上下文无关方法

    自顶向下语法分析方法:消除文法的左递归、提取公共左因子、LL(1)文法、递归下降分析法、预测分析法

    自底向上语法分析方法:也称移进-归约分析法,包括:LR分析法

5.中间代码生成形式

    后缀式(逆波兰式)

        等同于二叉排序树的后序遍历顺序

         x:=(a+b)*(c+d) 其后缀式为xab+cd*:=

    树形表示

        画成二叉树,其中符号为根节点,符号两遍的数值为子节点。从优先级最高的表达式为最底部的树。

    三元表达式

        (符号,元素1,元素2)

         x:=(a+b)*(c+d)其三元表达式为:①(+,a,b)   ② (+,c,d)   ③(*,①,②)  ④(:=,,x)

    四元式表示

        (符号,元素1,元素2,运算结果)

         x:=(a+b)*(c+d)其四元表达式为:①(+,a,b,t1)   ②(+,c,d,t2)   ③(*,t1,t2,t3)   (:=,t3,_,x)

    其中,树、后缀表达式适用于解释器,编译器多采用与机器指令格式比较接近的四元式形式。

6.文法

    概念:终结符一般用小写表示,非终结符一般用大写表示。α→β中,终结符不能在左边。
    类型: 

        0型文法---短语文法,α至少含有一个非终结符

        1型文法---上下文有关文法,|β|>=|α|

        2型文法---上下文无关文法,α是非终结符

        3型文法---正规文法,右线性(A→α|αB)或左线性(A→α|Bα)只能满足一个

        VN-非终结符,VT-终结符,(  并  )*-闭包

    

猜你喜欢

转载自blog.csdn.net/SevenGirl2017/article/details/80228813