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

编译过程

    分为解释型和编译型

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

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

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

    语义分析---语义检查

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

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

    语法错误:语法结构出错,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中的一个生产式

有限自动机    

 正规式

 表达式

函数调用

    分为传值调用和传址调用

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

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

程序语言特点

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容