编译器 编译器是一个程序,作用是将一门语言翻译成另一门语言。 一般的程序,CPU 是无法直接执行的,因为 CPU 只能识别机器指令。所以要想执行一个程序,首先要将高级语言编写的程序翻译为汇编代码,再将汇编代码翻译为机器指令,这样 CPU 才能识别并执行。 示例: 学会编译原理有什么好处? 对编译过程 ...
分类:
编程语言 时间:
2019-06-30 19:05:22
阅读次数:
133
四则运算编译器,虽然说功能很简单,只能编译四则运算表达式。但是编译原理前端部分几乎都有涉及,词法分析,语法分析,还有代码生成。 再复杂的编译器、再简单的编译器,功能上是差不多的,只是复杂的编译器实现上会更困难。 这个系列的文章是为了帮助你入门,在这个基础上再去看编译原理相关书籍,不至于打瞌睡。 如果 ...
分类:
编程语言 时间:
2019-06-30 18:41:08
阅读次数:
130
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
摘要: JavaScript简介 引入方式 语言规范 JavaScript语言基础 变量声明 数据类型 运算符 流程控制 函数 词法分析 内置对象 JavaScript简介 引入方式 语言规范 引入方式 语言规范 引入方式 语言规范 JavaScript语言基础 变量声明 数据类型 运算符 流程控制 ...
分类:
编程语言 时间:
2019-06-01 16:26:24
阅读次数:
137
1.试述计算机系统中的存储器层次。为什么要配置层次式的存储器 计算机系统的存储器层次结构自上至下依次分为:寄存器、缓存、内存、祠旁、磁带5层。存储介质的访问速度由下而上越来越快,容量越来越小,价格越来越高。 寄存器、缓存和内存均属于操作系统存储管理的管辖范畴,掉电后它们存储的信息将不复存在;磁盘和磁 ...
分类:
其他好文 时间:
2019-05-16 12:30:46
阅读次数:
170
词法作用域 词法作用域意味着作用域是由书写代码时函数声明的位置来决定的。编译的词法分析阶段 基本能够知道全部标识符在哪里以及是如何声明的,从而能够预测在执行过程中如何对它 们进行查找。 eval(..) 和 with JavaScript 中有两个机制可以“欺骗”词法作用域:eval(..) 和 w ...
分类:
编程语言 时间:
2019-05-14 20:49:29
阅读次数:
175
本系列介绍 笔者最近正学习编译原理,为了将理论变为实践,所以创作了本系列来记录学习过程中的思考与问题,注意文章中为了理论上描述方便增加了自创的术语。 本系列使用 Java 语言来实现一个脚本解释器,该脚本语言命名为 Foo,其语法参考 JavaScript 语言,本系列代码地址 "Github" 。 ...
分类:
其他好文 时间:
2019-05-11 23:05:40
阅读次数:
198