流程: 源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件。 编译预处理: 预处理就是编译程序读取源程序进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码。编译器读取源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。 编译: 在确认所有的指令都符合语法 ...
分类:
其他好文 时间:
2018-03-27 18:39:56
阅读次数:
131
首先利用lua提供的函数luaL_dofile来执行一个lua脚本。 可以看到有两个过程,首先luaL_loadfile函数将lua文件加载进来然后进行词法语法语义分析,得到一个closure函数放入栈中,接着调用lua_pcall函数来执行栈顶的closure。 我们先来看看第一个过程: 首先在l ...
分类:
其他好文 时间:
2018-03-19 17:36:00
阅读次数:
209
自认为JavaScript还不够熟练有些知识点还是没有掌握透彻,所以写下这篇文章一是希望能够经常翻看这些知识点,二来希望在以后的日子能够回首自己的学习之路。 JavaScript的函数是基于 词法作用域 的顶级对象。 参考 《JavaScript语言精粹》 ...
分类:
编程语言 时间:
2018-03-13 18:14:54
阅读次数:
185
1. 关于大小写: js区分大小写,html不区分大小写. 例:js中必须写onclick,html中可写onclick也可写为onClick. 2. 标识符: 标识符用来对变量和函数命名,或者用于js代码中某些循环语句中的跳转位置的标记.标识符的首字符只能是字母或美元符'$'或下划线'_',后续的 ...
分类:
Web程序 时间:
2018-03-12 21:18:16
阅读次数:
202
Java编译期的概念 编译期即将源代码转变成本地代码的过程,对于Java来说,这个过程会更加的多样。 Java编译期因为采用的编译器类型不同而导致概念也不同,Java编译器可以分为以下三种类型: 前端编译器 前端编译器将java源代码转变成字节码,常见的前端编译器包括Javac编译器、ECJ编译器( ...
分类:
编程语言 时间:
2018-03-10 18:46:15
阅读次数:
251
拓展部分报告 张霄霆 完成内容 Do while循环 Switch case语句 Goto语句 循环中Break和continue的实现 补充基础部分的短路计算 词法分析(switch) Switch语句加入关键字 SYM_SWITCH,SYM_CASE,SYM_DEFAULT ,SYM_BREAK ...
分类:
其他好文 时间:
2018-03-10 00:09:35
阅读次数:
207
第一部分: 作用域和闭包 一、作用域 1. 作用域:存储并查找变量的规则 2. 源代码在执行之前(编译)会经历三个步骤: 分词/此法分析:将代码字符串分解成有意义的代码块(词法单元) 解析/语法分析:将词法单元流转换成抽象语法树(AST) 代码生成:将抽象语法树转换成可执行代码 3. LHS查询: ...
分类:
编程语言 时间:
2018-03-09 20:23:00
阅读次数:
192
定义 闭包是函数和声明该函数的词法环境的组合。闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。 范例 javascript的垃圾回收原理 1. 在javascript中,如果一个对象不再被引用,那么这个对象就 ...
分类:
编程语言 时间:
2018-03-08 02:57:17
阅读次数:
354
C语言中.h和.c文件解析(很精彩) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.ob ...
分类:
编程语言 时间:
2018-03-04 21:28:13
阅读次数:
213
1、字符集 Javascript程序采用的是Unicode(两个字节表示一个字符)字符集编写的。 2、区分大小写 Javascript是区分大小写的语言。HTML是不区分大小写,由于两者联系紧密,注意区分。 3、空格和换行符 Javascript会忽略程序标识符之间的空格,多数情况下,也会忽略换行符 ...
分类:
编程语言 时间:
2018-03-03 12:29:23
阅读次数:
223