一、编译过程 常见编译性语言,在程序代码执行之前会经历三个步骤,称为编译。 步骤一:分词或者词法分析 将由字符组成的字符串分解成有意义的代码块,这些代码块被称为词法单元。 例子: var a = 2; <!--?xml version="1.0" encoding="UTF-8" standalon ...
分类:
Web程序 时间:
2017-05-25 17:41:48
阅读次数:
239
算符优先分析文法 一、写在前面 算符优先分析文法是一种工具,在编译的过程中,隶属于语法分析环节,却又与中间代码的生成息息相关,编译可以分为五个阶段:词法分析、语法分析、语义分析(中间代码的生成)、代码优化、目标代码生成。语法分析是指:在词法分析基础上,将单词符号串转化为语法单位(语法范畴)(短语、子 ...
分类:
其他好文 时间:
2017-05-22 13:32:50
阅读次数:
623
js中的this是一个头疼的问题,尤其对于笔者这种初级的菜鸟来讲,下面梳理下this的知识,可以当做是初级进阶也好入门也罢,总归输出的才是自己掌握的: Js中this不是由词法作用域决定的 而是调用时动态指定,这就有点麻烦了,如果不能明确知道函数调用时的词法作用域this的指向也就只能靠猜了,算一卦 ...
分类:
编程语言 时间:
2017-05-21 22:35:02
阅读次数:
234
闭包 javascript是基于词法作用域的语言,这意味着: 通过阅读包含变量定义在内的源码,就能知道变量的作用域。 全局变量在:程序中,始终有定义, 局部变量在:声明它的函数体以及此函数体所嵌套的函数内,始终有定义 js的垃圾回收机制 ...
分类:
编程语言 时间:
2017-05-21 10:00:50
阅读次数:
189
总览词法、语法分析分析方案词法语法符号表类型系统AST语义检查EIR代码生成器MIPS代码生成器寄存器分配体系结构相关特性优化使用说明编译运行 总览 C1 语言是一个类 C 的语言。语言的特征为: 包含 int、float 和 bool 简单类型以及以这些类型为基本类型的多维数组类型。 一个 C1 ...
分类:
其他好文 时间:
2017-05-20 23:37:27
阅读次数:
324
在函数体内。标识符arguments是指向实參对象的引用,实參对象是一个类数组对象 arguments[0],arguments.length arguments是什么? 答:1:arguments是收到的实參副本 在词法分析中, 首先按形參形成AO的属性,值为undefined 当实參传来时, 再 ...
分类:
Web程序 时间:
2017-05-20 12:15:53
阅读次数:
205
作用域链 当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。 函数创建 这是因为函数有一个内部属性[[scope]],当函数 ...
分类:
编程语言 时间:
2017-05-19 23:45:47
阅读次数:
231
读《你不知道的javascript》一书做个笔记;编译原理: js是一门编译型的语言,与传统编译语言类似,传统编译的过程分为三个阶段 ; 1. 分词/词法分析; 2.解析/语法分析; 3.代码生成 ; js引擎在编译时会比较复杂 具体多么复杂我也不造,大概就是对1,3 进行了优化使其快速编译完成并立 ...
分类:
编程语言 时间:
2017-05-18 15:44:11
阅读次数:
258
dom自带了很多事件,常见的如下所示当触发这些事件的时候,我们可以执行自定义的各种函数。一般说来,绑定事件有3种方法。第一种方法,直接在标签上面绑定,比如<inputid=‘i1‘type=‘button‘onclick=‘ClickOn(this)‘>
functionClickOn(self){
}第二种方法,是先获取Dom对..
分类:
编程语言 时间:
2017-05-17 15:17:03
阅读次数:
183