美团点评送外卖
 实现一个自己的编程语言——词法分析
首先我们知道我们所有的代码都放在了一个文件内,so,第一件事我们要读入文件并进行词法分析,分析完成之后形成的token流会被接下来的语法分析器消费掉,典型的生产者消费者模型。一个Tokenizer 组成首先需要介绍一种缓存读文件的方法,双缓
美团点评送外卖
 写一个自己的编程语言——语法分析
回归一下之前提到的概念,编译器的工作流程,首先将文件按照流的方式依次读入内存,并根据一个词法状态机生成一个Token流,那么Token接下来该怎么被处理呢?我们可以参考一下语言的规律。我们的文件读入流是为了读入字符,字符呢其实就是一个语言的
7-李建涛
 Java — 静态绑定和动态绑定
Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,会出现所谓的多态。(即Perso
美团点评送外卖
 Rust杂七杂八整理
开始发布系列文章,写一个自己的编程语言,也是最近无聊,用Rust来实现,当然用java C/CPP go 之类的实现简直无压力,so,我选择了rust,反正以后的工作也是跟这个语言过不去,那么就入个门写个解释器玩玩。最后一学期了,本学期天天
美团点评送外卖
 实现一个自己的编程语言—— 有限自动状态机
等等,我们不是在实现一个自己语言的解释器吗,为什么说起来了有限自动状态机呢?首先我们需要知道对一个语言解释器来说,应该由前端和后端两部分组成,这里的前端就是将文件读入内存并转化成Token流举个例子func say_hello(){ int
美团点评送外卖
 实现一个自己的编程语言——起步
首先我们准备实现的编程语言长啥样# 这是一个注释 println("Hello World!"); println(2 + 3 * 4); # 使用lambda作为声明函数的关键字 fib = lambda (n) if n < 2
美团点评送外卖
 实现一个自己的编程语言——准备
实现一个自己的编程语言,应该作为大三或者大二下学期学生必备的实验,毕竟又不用做到工业级别实现。也是掌握I/O和字符串和各种数据结构的一种手段。主要是最近被分配干自研数据库的SQLParser部分,也就是解析SQL语句生成执行计划的工作,捎带
美团点评送外卖
 工程排序
Engineering a Sort Function 论文解读在从美团实习离职前夕,参加了一个TiDB的学习组织,接手的第一篇paper就是这个工程化排序。主要是研究快排的算法优化思路和Unix 系统中的Qsort设计@雪梨教育全体工作人
2-马增来
 链栈的表示及基本操作的实现
写了一点链栈的基本操作,第一次发文,如发现错误之处请大家及时指正。// 补充:链栈的基本操作 #include <stdio.h> #include <stdlib.h> typedef int ElemType;
7-李建涛
 js数组
声明:数组声明的三种方式:1. var arr = new Array();(声明一个空数组对象) arr[0]="abc";2. var arr = new Array(5);(声明数组并初始化长度,注意数组的长
刘秀梅
 WEB开发(二)—— 函数
(一)函数三要素函数的三要素为函数名、参数(形参,实参),返回值。(二)函数定义与调用函数定义的关键字为function,不能省略,也不要能简写。定义函数有3种形式,相应的调用形式有2种。1.函数声明形式 注: 不需要在函数声明的后面添加一
3-张馨元
 类定义关键字详解
JAVA类与对象(三)----类定义关键字详解 static 表示静态,它可以修饰属性,方法和代码块。1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有。这个属性就
3-张馨元
 一个java文件中可包含多个main方法
一个java文件中可包含多个main方法java中的main方法是java应用程序的入口,java程序在运行时,首先调用执行main方法。但并不是说java中只能有一个main方法,不同类中都可以包含main方法。但是当JVM进行编译时,只
杨伟彬
 数据结构——线性表的经典应用
1. 一元多项式的表示和相加 在数学上,一个一元多项式\(P_{n}(x)\)可升序写成:\(P_{n}(x) = p_{0}+p_{1}x^1+p_{2}x^2+...++p_{n}x^n\)它由n+1个系数唯一确定。因此,
7-李建涛
 栈和队列之间的相互转化
队列实现栈需要两个队列data,help,因为队列是先进先出,想要模拟栈的结构,每次取栈顶的元素也就相当于取队列中队尾的元素,要取data队列的队尾元素,需将最后一个元素前面的先取走,才能取到最后一个元素,所以,将前面的元素逐个弹出到hel
刘秀梅
 WEB开发(二)——字符串类型
在C语言中的数据类型中没有字符串类型,字符串是字符数组,那么字符串可以遍历。在前端JavaScript中数组和字符串是两种数据类型,也就是字符串类型是存在的,但是字符串仍然可以遍历,通过下标的方式获取。为什么? 为甚么字符串还有lengt
刘孟祎
 JavaScript event(事件对象)
在触发DOM 上的某个事件时,会产生一个事件对象 event,这个对象中包含着所有与事件有关的信息。包括导致事件的元素、事件的类型以及其他与特定事件相关的信息。例如,鼠标操作导致的事件对象中,会包含鼠标位置的信息,而键盘操作导致
张玉茹
 数据结构——快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 分治法的基本思想是:将原问题分解为若干个规模更小但
张玉茹
 数据结构——栈和队列的逻辑特性
线性表是最常用且最简单的一种线性结构。 线性结构的特点: (1) 存在唯一的一个被称作“第一个”的数据元素。 (2) 存在唯一的一个被称作“最后一个&rd
7-李建涛
 初探JVM
今天晚上翻了翻别人的博客了解了jvm的一些基础,因为每个人的侧重点不同,我也联系自己的看法整理一份。 首先要了解jvm基本架构,总的分为三个主要的子系统,分别为类加载器子系统,运行时数据区和执行引擎。类加载子系统在