
代码解释执行
coding 迪斯尼
我叫陈屹,网名 Coding 迪斯尼,是软件工程师,曾在微软、联想和RealNetworks工作,并使用过多种编程语言和技术。我喜欢费曼的教学方法,并相信最好的学习方式是通过教学。因此,我在这个平台发布课程,同时在过程中提升自己。我拥有数学学位,并自学了计算机科学的相关概念。我也相信,一名优秀的软件工程师应该拥有全面的知识,因此我会尝试创建涵盖多种主题的课程。
我目前出了四本书:
《python 程序员面试宝典》
《算法 python 语言实现》
《神经网络与深度学习实战》
《Tensorflow2.x 深度学习从入门到实战》
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自制monkey语言编译器:符号系统与代码执行
前几节,我们介绍了如何使用语法解析算法对代码进行解析。语法解析的目的是为了明白代码语句的意图,例如对于语句: c = a + b; 语法解析后,编译器就明白代码是想把变量a和b的值相加,再把结果赋值给变量c.然而要想实现这样的结果,编译器还得需要不少辅助信息,例如变量a和b对应的数值是多少,这些辅助信息我们会存储在一种称之为符号表的数据结构中。 在前几节语法解析时,代码实际上建造了一种树形结构,...原创 2018-02-16 18:07:53 · 544 阅读 · 0 评论 -
自制Monkey语言编译器:解释执行return语句和错误处理控制
在高级编程语言中,大多含有一个指令叫return,也就是程序的执行指令流遇到该语句后不再往下执行,而是返回上一层,如果return后面附带数据的话,程序会把数据夹带到调用栈上一层的代码执行路径。本节我们就给Monkey语言编译器增加解释执行return语句的功能,完成本节代码后,编译器能解释执行如下代码: 代码中存在两个if 间套,内层if执行return语句附带返回整数10,外层if 最后...原创 2018-04-03 17:57:39 · 508 阅读 · 0 评论 -
自制Monkey语言编译器:解释执行if..else判断语句
任何编程语言都少不了条件判断语句,Monkey语言也一样,有自己的If…else条件判断指令,本节我们看看如何解释执行该条件判断语句。根据我们原有的解释执行机制,我们只要在原框架的基础上添加若干代码就可以实现本节功能。当本节代码完成后,执行结果如下: 如图中的if else 语句被编译器解释执行后,在控制台的输出如下: 根据输出可知,编译器在执行了if里面的条件判断后,执行了if模块里...原创 2018-03-29 16:56:13 · 774 阅读 · 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 · 357 阅读 · 0 评论 -
自制Monkey编程语言编译器:增加数组操作API和Mapsh数据类型
前一节,我们为Monkey语言以及其编译器增加了内置API len,以及数组数据类型,内置的len函数调用能作用到数组和字符串上,分别返回数组的元素个数和字符串的字符长度。本节我们继续增加三个能作用到数组上的内置API,这样Monkey语言能更方便的支持数组操作。 我们在这里要增加的第一个API叫first。他返回数组首个元素,也就是它的作用与myArray[0]等价,但用first获得首个元素...原创 2018-07-13 11:55:31 · 420 阅读 · 0 评论