软考

程序设计语言与语言处理程序基础

2022-03-03  本文已影响0人  小飞5

编译过程

    分为解释型和编译型

    编译型过程为 源程序=>词法分析=>语法分析=>语义分析=>中间代码生成=>代码优化=>目标代码生成=>目标程序

    词法分析---正规式,有限自动机

    语法分析---根据语言语法规则

    语义分析---语义检查

    目标代码生成---中间代码转低级语言代码,需要考虑硬件系统结构

    词法错误:非法字符,关键字或标识符拼写错误

    语法错误:语法结构出错,if...endif不匹配,缺分号

    语义错误:死循环,零除数,其他逻辑错误

文法定义

    一个形式文法是一个有序四元组G=(V,T,S,P),其中:

        V:非终结符。不是语言组成部分,不是最终结果可理解为占位符

        T:终结符。是语言的组成部分,是最终结果。V\cap T=\phi

        S:起始符。是语言的开始符号。

        P:产生式。用终结符土带非终结符的规则。形如\alpha \rightarrow \beta

    语法推导树

        一个语法树应具有以下特征:

            1.每个节点都有一个标记,此标记是V的一个符号;

            2.跟的标记是S;

            3.若一个节点n至少有一个它自己除外的子孙,冰洁有标记A,则A肯定在V_{N}

            4.如果节点n的直接子孙,从左到右的次序是节点n_{1} ,n_{2} ,...,n_{k} ,其标记分别是A_{1} ,A_{2} ,...,A_{k} ,那么A\rightarrow A_{1} ,A_{1} ,...,A_{k} ,一定是P中的一个生产式

有限自动机    

 正规式

 表达式

函数调用

    分为传值调用和传址调用

    区别是传值调用调用的是形参,不改变原数据,而传址调用相反,会改变原数据

    传址调用在声明变量名称时需要在前面加个*号

程序语言特点

上一篇下一篇

猜你喜欢

热点阅读