JavaScript采用的是静态作用域规则,也叫词法作用域,其解析过程是按照从上到下、从左到右的顺序加载,并分为两个阶段:预编译期(预处理)和执行期。预编译期对代码块中所有声明的变量和函数进行处理。注意关键字:代码块、声明、变量、函数。1、代码块代码块是指由<script&g..
分类:
其他好文 时间:
2017-07-31 14:46:58
阅读次数:
132
(转自老惠的博客) JavaScript采用的是静态作用域规则,也叫词法作用域,其解析过程是按照从上到下、从左到右的顺序加载,并分为两个阶段:预编译期(预处理)和执行期。预编译期对代码块中所有声明的变量和函数进行处理。注意关键字:代码块、声明、变量、函数。 1、代码块 代码块是指由<script>标 ...
分类:
其他好文 时间:
2017-07-31 14:33:53
阅读次数:
127
今天继续研究代码解析的算法 这个是算法流程图 有图解可能更直观一点; 以下是c#源码: 1using System; 2using System.IO; 3using System.Text; 4using System.Windows.Forms; 5using System.Collection ...
分类:
编程语言 时间:
2017-07-24 16:32:53
阅读次数:
178
1. js是编译语言,但是它不是提前编译,编译结果不能在分布式系统中移植。大部分情况下,js的编译发生在代码执行前的几微秒(甚至更短) 2. 一般的编译步骤 分词/词法分析:把字符串分解成词法单元 解析/语法分析:将词法单元转换成一个由元素组成的语法结构树,抽象语法树AST 代码生成:将AST转换成 ...
分类:
Web程序 时间:
2017-07-23 00:54:50
阅读次数:
239
C语言源程序经过编译器进行词法分析 语法分析 等过程生成中间语言(object后缀的文件)编译期间会生成一个字符表和静态分配空间(如new static 全局变量)它们所需的内存空间可以计算出来放在链接库后的可执行文件中(虚拟内存即磁盘),在运行将放在可执行文件中的偏移量加载到内存的堆中同时将局部变 ...
分类:
编程语言 时间:
2017-07-19 23:42:35
阅读次数:
420
第一章 词法“陷阱” 1、 =不同于== if(x = y) break; 实际上是将y赋给x,再检查x是否为0。 如果真的是这样预期,那么应该改为: if((x = y) != 0) break; 2、 &和| 不同于 && 和 || 3、词法分析中的“贪心法” 编译器将程序分解成符号的方法是:从 ...
分类:
其他好文 时间:
2017-07-18 00:06:59
阅读次数:
194
闭包指词法表示包括不必计算的变量的函数,闭包函数能够使用函数外定义的变量。 闭包特性: (1)、封闭性:外界无法访问闭包内的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口。 (2)、持久性:对于一般函数来说,在调用完毕后,系统会自动注销函数,而对于闭包来说,在外部函数被 ...
分类:
其他好文 时间:
2017-07-15 15:51:39
阅读次数:
180
网址:http://thulac.thunlp.org/ THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点: 能力强。利用我们集成的目前 ...
分类:
其他好文 时间:
2017-07-10 14:23:38
阅读次数:
408
-##1.什么是作用域## 任何一个编程语言都可以存储变量,并对变量的值进行修改,但是如何引入变量是一个问题,变量存储在哪里 如何找到变量。 为了更好的让我们找到这些变量的存储位置,和如何让程序找到变量,我们创建了一系列的规则,这些规则则被我们称为作用域; ###1.1 编译原理### 每一条代码执 ...
分类:
Web程序 时间:
2017-07-09 19:50:54
阅读次数:
140
以下是一个简单的词法分析器 #include <stdio.h> #include <string.h> using namespace std ; int main() { char str[150] ; // freopen("C:\\Users\\Lionel\\Desktop\\1.txt" ...
分类:
其他好文 时间:
2017-07-09 19:36:29
阅读次数:
227