reactjs
tyler_download
这个作者很懒,什么都没留下…
展开
-
自制monkey语言编译器:符号系统与代码执行
前几节,我们介绍了如何使用语法解析算法对代码进行解析。语法解析的目的是为了明白代码语句的意图,例如对于语句: c = a + b; 语法解析后,编译器就明白代码是想把变量a和b的值相加,再把结果赋值给变量c.然而要想实现这样的结果,编译器还得需要不少辅助信息,例如变量a和b对应的数值是多少,这些辅助信息我们会存储在一种称之为符号表的数据结构中。在前几节语法解析时,代码实际上建造了一种树形结构,...原创 2018-02-16 18:07:53 · 491 阅读 · 0 评论 -
reactjs开发自制编程语言编译器:实现变量绑定和函数调用
在编程时,我们会初始化一个变量,给变量赋初值,例如下面语句:let x = 5*5;上面代码被编译器解读后,变量x就会和数值25绑定在一起。下次使用到变量x时,编译器会读取它绑定的值,然后用于相关代码的执行,例如下面代码:let y = x + 5;编译器执行上面语句后,变量y就会跟数值30绑定起来,本节我们就先增加变量绑定的功能。变量绑定功能不难实现,我们只要创建一个...原创 2018-05-18 16:41:13 · 609 阅读 · 0 评论 -
自制Monkey语言编译器:实现函数闭包功能和为语言增加复杂数据结构
Monkey语言有点类似于JS,它的函数可以当做参数进行传递,而且语法支持函数闭包功能,例如下面代码:let newAdder = fn(x) { return fn(y) { return x + y;};};let addTwo = newAdder(3);addTwo(2);在上面代码中,我们把newAdder定义为一个函数变量,该函数里面又返回一个函数,在第二次定义变量ad...原创 2018-05-28 15:53:40 · 323 阅读 · 0 评论 -
ReactJs开发自制Monkey语言编译器:实现内嵌函数调用以及增加数组类型
几乎所有编程语言都会支持内嵌API调用,这些调用会根据操作系统特点,执行相关的系统调用进而实现一系列功能,例如C语言中支持的printf就是内嵌API,它能帮开发者将信息输入到控制台中,本节将为我们的Monkey编程语言提供类似的内嵌函数支持。我们支持的第一个函数是len, 它用于返回字符串,数组和链表的元素长度。例如下面代码:len("hello")它会返回数值5,也就是字符串”...原创 2018-06-26 15:54:11 · 236 阅读 · 0 评论 -
自制Monkey编程语言编译器:增加数组操作API和Mapsh数据类型
前一节,我们为Monkey语言以及其编译器增加了内置API len,以及数组数据类型,内置的len函数调用能作用到数组和字符串上,分别返回数组的元素个数和字符串的字符长度。本节我们继续增加三个能作用到数组上的内置API,这样Monkey语言能更方便的支持数组操作。我们在这里要增加的第一个API叫first。他返回数组首个元素,也就是它的作用与myArray[0]等价,但用first获得首个元素...原创 2018-07-13 11:55:31 · 383 阅读 · 0 评论