2.1程序语言的定义 一个语言的语法是指这样的一组规则,用它可以形成和产生一个合式的程序。这些规则的一部分称为词法规则,另一部分称为语法规则(产生规则). 词法规则,是指单词符号的产生规则。 语法规则,是语法单位的形成规则,至于语法单位例如:表达式,语句,分程序,函数。 一个程序的语义是指这样的一组 ...
分类:
编程语言 时间:
2019-07-02 10:51:15
阅读次数:
111
静态作用域指的是一段代码,在它执行之前就已经确定了它的作用域,简单来说就是在执行之前就确定了它可以应用哪些地方的作用域(变量)。 动态作用域–函数的作用域是在函数调用的时候才决定的 JavaScript采用的是词法作用域即静态作用域; // 静态作用域: var a = 10; function f ...
分类:
其他好文 时间:
2019-07-02 00:37:56
阅读次数:
159
编译器 编译器是一个程序,作用是将一门语言翻译成另一门语言。 一般的程序,CPU 是无法直接执行的,因为 CPU 只能识别机器指令。所以要想执行一个程序,首先要将高级语言编写的程序翻译为汇编代码,再将汇编代码翻译为机器指令,这样 CPU 才能识别并执行。 示例: 学会编译原理有什么好处? 对编译过程 ...
分类:
编程语言 时间:
2019-06-30 19:05:22
阅读次数:
133
四则运算编译器,虽然说功能很简单,只能编译四则运算表达式。但是编译原理前端部分几乎都有涉及,词法分析,语法分析,还有代码生成。 再复杂的编译器、再简单的编译器,功能上是差不多的,只是复杂的编译器实现上会更困难。 这个系列的文章是为了帮助你入门,在这个基础上再去看编译原理相关书籍,不至于打瞌睡。 如果 ...
分类:
编程语言 时间:
2019-06-30 18:41:08
阅读次数:
130
一、实验目的 通过做上机题加深对编译器构造原理和方法的理解,巩固所学知识。 <1> 会用正规式和产生式设计简单语言的语法; <2> 会用递归下降子程序编写编译器或解释器; <3> 会写上机报告。 二、实验环境 Dev C++ 5.11 三、题目及要求 为函数绘图语言编写一个解释器,解释器接受用绘图语 ...
分类:
编程语言 时间:
2019-06-30 09:58:32
阅读次数:
220
前言 目前以手中这本清华大学出版社出版的编译原理(第3版,张素琴等编著)作为复习总结,因为考试都是大题,一部分概念会被忽略。所有内容都需要通过举例和推导来帮助加深理解,优先为过几天的考试服务。该文实现了教材中那些特别复杂的 推导符号 ,并且这几天会加紧持续更新。 第2章 文法和语言 符号和符号串 空 ...
分类:
其他好文 时间:
2019-06-16 16:02:40
阅读次数:
93
HTML HTML解析 HTML解析是一个将字节转化为字符,字符解析为标记,标记生成节点,节点构建树的过程。 标记化算法 是词法分析过程,将输入内容解析成多个标记。HTML标记包括起始标记、结束标记、属性名称和属性值。标记生成器识别标记,传递给树构造器,然后接受下一个字符以识别下一个标记;如此反复直 ...
分类:
Web程序 时间:
2019-06-16 15:24:39
阅读次数:
189
一、 用eslint+prettier做静态词法分析和格式统一 https://blog.csdn.net/weixin_37939942/article/details/89353248 ...
分类:
其他好文 时间:
2019-06-16 11:31:13
阅读次数:
79
Java 实现《编译原理》简单词法分析功能 简易词法分析功能 要求及功能 (1)读取一个 txt 程序文件 (最后的 作为结束标志,不可省去) (2)词法识别分析表 单词类别|单词自身值|内部编码 | | 关键字| int、for、while、do、return、break、continue| 1 ...
分类:
编程语言 时间:
2019-06-13 23:28:33
阅读次数:
188
预解析: 所有的变量声明,都会提升到最顶部,但不会提升赋值 所有的函数声明,都会提升到最顶部,但不会提升函数的调用 如果同时有多个 var 声明的相同的变量,后面的 var 将被忽略 如果同时有多个同名的函数,后面的函数将会覆盖前面的函数 如果声明的变量和声明的函数同名,声明的函数将会覆盖声明的变量 ...
分类:
其他好文 时间:
2019-06-09 13:24:35
阅读次数:
95