学习
实践
活动
专区
工具
TVP
写文章

望月从良

LV0
举报
发表了文章

自己动手写编译器:使用NFA状态机识别字符串

在前面章节中我们构建了NFA状态机,现在我们看看如何使用它来识别给定字符串是否合法。首先我们先构造如下正则表达式对应的NFA,在input文件的表达式部分输入...

望月从良
编程算法
发表了文章

高并发和大数据下的高级算法与数据结构:如何快速获取给定年龄区间的微信用户数量或快速获取美团中购买量前k的品类

望月从良
发表了文章

自己动手写数据库:实现表扫描

在上一节我们实现了记录管理,本节我们看看记录的读取实现,也就是所谓的表扫描。我们将实现一个名为TableScan的类,它把表的记录当做数组来读取,通过挪到一个记...

望月从良
编程算法存储
发表了文章

自己动手写数据库:记录管理器的设计和实现

在数据库中,数据以”记录“作为一个单元来存储,例如一个表的“一行”就对应一条记录。假设我们有一个表叫STUDENT,其中有name, age, sex, cla...

望月从良
存储
发表了文章

自己动手写编译器:从正则表达式到NFA状态机

在编译器开发中有两个非常重要的工具名为lex和yacc,他们是编译器的生成器。本质上我们不需要一行行去完成编译器的代码,只需要借助这两个工具,同时制定好词法解析...

望月从良
编程算法正则表达式IDEC 语言Go
发表了文章

己动手写编译器:GoLex程序的基本情况介绍

本节我们的目的是,在给定正则表达式后,将其转换为非确定性有限状态自动机数据结构,后者会进一步生成一个跳转表,从而实现字符串匹配的功能。我们首先看输入,输入是一个...

望月从良
正则表达式编程算法Python
发表了文章

自己动手写编译器:汤普森构造法

上节我们描述了正则表达式的规则,有过一些编程经验的同学或许都用过正则表达式功能,通常使用它来检验特定格式的字符串,例如检验输入的邮箱是否合法等。当然大多数时候我...

望月从良
编程算法正则表达式
发表了文章

自己动手写数据库:并发管理器的实现,以及并发交易流程的分析

在上一节中我们实现了并发管理的核心组件那就是lock_table,它的原理是对给定的区块加锁,如果区块被读取,那么就加上共享锁,也就是多个线程能同时读取,但是不...

望月从良
Bash
发表了文章

自己动手写数据库:并发管理组件lock_table的原理和实现

在前面章节,我们描述的并发控制的一些基本原理。其中一个重要原则就是“序列化”,也就数据库引擎要对交易提交的请求进行调度,调度的结果要使得每个交易就好像独占了引擎...

望月从良
发表了文章

动手写数据库:并发管理的基本原理

一个好的数据库,其特点必然是吞吐量高,也就是它能在高并发请求压力下保证数据的准确性和安全性,由此并发管理是不可或缺的一环。事实上并发管理是一个相当复杂的计算机科...

望月从良
压力测试数据库SQL文件存储
发表了文章

自己动手写编译器:while,for,do等循环语句的中间代码生成

我们的简易编译器完成了一大部分,但还有一些关键的语法结构没有处理,那就是for, while, do..while等循环语句对应的中间代码还没有生成,本节我们就...

望月从良
Go
发表了文章

自己动手写数据库:实现交易对象和恢复管理器

前面一节我们完成了用于实现系统恢复的日志,本节我们看看如何基于日志内容实现系统恢复。我们将设计一个系统恢复管理器,它在系统启动时读取日志内容,根据读到的日志对数...

望月从良
Go
发表了文章

自己动手写编译器:实现else语句块的中间代码生成

前面几节我们完成了if语句以及判断条件成立时代码对应的中间代码生成,这次我们完成最后一笔,那就是针对else部分代码完成相应的中间代码生成。本质上这一步比较简单...

望月从良
编程算法
发表了文章

脑子要烧坏了:使用manache算法查找最长回文子字符串

在面试算法题中,字符串是经常出现的类型。而字符串类型中回文出镜率相当高,在查找回文的问题中出现了一系列相当烧脑但却又精彩纷呈,非常值得研究和欣赏的算法,我们这次...

望月从良
编程算法
发表了文章

自己动手写编译器:实现if判断中“||“和“&&“条件判断的中间代码生成

上一节我们完成了if条件判断语句的中间代码生成,我们看到针对if语句的生成代码,我们针对if 条件满足时所要执行的代码赋予了一个跳转标签,同时对if(){…} ...

望月从良
IDEGo网络安全编程算法
发表了文章

NodeJS深度探秘:通过爬虫用例展示callback hell的处理方法以及高并发编程的几个有效模式

高并发和异步模式往往需要支持一种机制,那就是消息模式。当某个情况发送或是某种状态改变时,系统需要通知所有关注者,让他们及时进行处理,于是系统就会发送一个特定消息...

望月从良
爬虫编程算法
发表了文章

Nodejs深度探秘:event loop的本质和异步代码中的Zalgo问题

Nodejs是一个高效的异步服务平台,因此非常适合于开发高并发的后台服务。要满足高并发,后台服务需要做到的是能够及时响应客户端发送过来的请求。这里要注意的是”响...

望月从良
编程算法JavaScriptNode.jsAjax压力测试
发表了文章

自己动手写编译器:实现简单if语句的跳转代码生成

注意看L4, L5, L6三个地方的分支,中间代码有一个指令叫iffalse,后面跟着一个表达式,如果表达式结果能转换为false,那么goto语句就产生作用,...

望月从良
网络安全
发表了文章

nodejs探秘:require加载模块的原理及代码实现

最近因为项目需要使用nodejs,因此不得不对其进行学习研究。一番深入后发现,nodejs除了好用,作为后台效率非常高之外,它自身的设计堪称精妙。我们都知道学习...

望月从良
Node.jsJavaScript缓存编程算法
发表了文章

自己动手写数据库系统:容灾恢复原理和容灾恢复日志的设计

数据库系统有一个极其重要的功能,那就是要保持数据一致性。在用户往数据库写入数据后,如果数据库返回写入成功,那么数据就必须永久性的保存在磁盘上。此外作为一个系统,...

望月从良
HTTPNode.js缓存Java编程算法

个人简介

个人成就

扫码关注腾讯云开发者

领取腾讯云代金券