自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(537)
  • 资源 (7)
  • 收藏
  • 关注

原创 自己动手写编译器:实现命令行模块

本文给出了 GoLex 词法解析器程序实现中的命令行模块实现

2023-10-01 16:16:40 287

原创 自己动手写数据库:规划器(Planner)的实现

本文给出了数据库系统中,规划器模块的基本实现

2023-09-25 12:59:04 244

原创 自己动手写数据库:关系代数和查询树执行效率的推导

理解 sql 语句执行对应的查询树极其效率计算

2023-09-19 12:15:02 415

原创 自己动手写数据库:实现一个小型 SQL 解释器(下)

以上代码的调试演示过程请在 B 站搜索 coding 迪斯尼查看相关视频。本节我们完成 SQL 解释器的最后一部分,它涉及到数据的删除和更改,首先我们看删除语句的解析。

2023-09-01 17:12:08 1301 1

原创 区块链系统化探索:什么是”交易“

区块链中“交易”数据结构的解析和实现

2023-08-22 20:34:47 204

原创 自己动手写数据库系统:实现一个小型SQL解释器(中)

本文描述了如何对 sql 语言中以 create 开头的语句进行语法解析

2023-08-16 19:47:46 1413

原创 区块链系统探索之路:私钥的压缩和WIF格式详解

在前面章节中,我们详细介绍了公钥的压缩,在比特币网络中,一个私钥可以对应两个地址,一个地址是由未压缩公钥所生成的地址,另一个就是由压缩公钥所创建的地址,从公钥到区块链地址的转换算法,我们在这里给出详细描述和代码实现,本节我们看看私钥的压缩以及相关的WIF数据格式。搞笑的是私钥”压缩“后,其长度反而比压缩前增加了一个字节。而“压缩”方法也相当简单,就是在私钥末尾增加一个字节01,例如如果私钥的数据为...

2023-08-12 09:30:54 1551

原创 区块链系统探索之路:钱包地址的实现

在区块链,特别是比特币网络,一个非常关键的组件是钱包。它主要用来实现“价值转移”,既然要转移,那就必须要有转移人和接收人,在转移过程中,我们必须确保转移的发送必须由资产的所有者发起,这就是私钥的作用,一笔交易要生效必须由资产的所有人使用它的私钥确认后才能发起,同时要有办法准确找到价值的正确接受者,这就是公钥的作用,公钥类似于银行账号用于接收转移的资产。在前面章节我们介绍过,私钥是一个随机数,而公钥...

2023-07-02 14:16:00 1455 1

原创 区块链系统探索之路:比特币核心的编译和探索

本文描述了比特币核心的编译与交互方法

2023-06-24 12:46:48 1697

原创 自己动手写数据库系统:实现一个小型SQL解释器(上)

本文给出了SQL语言解析的部分实现

2023-06-18 12:46:38 1801

原创 区块链系统探索之路:基于椭圆曲线的私钥与公钥生成

本文描述了比特币椭圆曲线的实现原理,同时给出了如何计算公钥以便创建钱包地址

2023-05-01 17:32:55 3057 2

原创 自己动手做chatgpt:解析gpt底层模型transformer的输入处理

剖析chatgpt算法中输入预处理

2023-04-21 09:30:00 2333

原创 自己动手写编译器:DFA跳转表的压缩算法

本文描述了编译原理算法中DFA跳转表的两种压缩算法

2023-04-09 17:11:55 631

原创 自己动手写chatGPT:神经网络的神经元和损失函数

本文介绍了神经网络中两个重要的基本概念

2023-03-27 10:57:17 3647

原创 区块链系统探索之路:椭圆曲线上点”+“操作的代码实现

上面情况就对应点"0”,虽然上面直线跟曲线没有第三个交点,但是我们可以“定义”这条直线跟曲线在“无限远”处相加,而那个交点就是"0",于是这种情况下直线跟曲线的两个交点互为“相反数”,如果我们把上面交点记作a,那么下面的那个交点就对应为-a, 当曲线上两个点的连线与y轴平行时,我们把这两个点的“+“运算结果记作"0”。在椭圆曲线上选择任意两点,他们执行"+"操作后,第三点在哪里从数学上是无法预料的,这就形成了椭圆曲线能加密的基础。在区块链应用中,首先需要选定曲线上一个特定点G,然后产生集合{1。

2023-03-19 13:13:57 629 3

原创 自己动手做chatGPT:向量的概念和相关操作

介绍深度学习算法中最基本单元向量,为开发chatGPT模型大小基础

2023-03-16 09:30:00 8099

原创 自己动手写编译器:DFA状态机最小化算法

实现DFA跳转表的精简和优化

2023-03-03 09:30:00 1129

原创 自己动手写数据库:SQL查询处理的基础准备工作

为sql语言的解析和执行做基础准备

2023-02-24 22:16:40 808 1

原创 区块链的系统探索之路:椭圆曲线之有限域

系统的,从底层开始,对区块链技术进行详实的学习与研究

2023-02-06 10:00:00 1232

原创 大数据下的高级算法:hyperloglog,统计海量数据下不同元素的个数

redis中hyperloglog算法和数据结构的原理

2023-01-20 20:22:34 1840

原创 自己动手写编译器:从NFA到DFA

前面我们看到,一个DFA节点本质上对应一组NFA节点,因此当我们使用move 和epsilon闭包操作得到一组NFA节点后,我们需要看看是不是已经有DFA节点对应到了生成的NFA节点集合,如果有了,说明对应的DFA节点已经生成,这个操作由函数compareNfaSlice和hasDfaContainsNfa完成,如果当前得到的NFA节点集合没有对应的DFA节点,那么就使用addDfaState函数去创建一个新的DFA节点,然后将其加入到dstates数组中。上一节我们完成了使用NFA来识别字符串的功能。

2023-01-07 21:57:29 1191 1

原创 自己动手写数据库:视图元数据管理,统计元数据管理

实现数据库系统中的元数据管理器

2022-12-18 19:43:42 313

原创 自己动手写数据库:实现数据库表的元数据管理

实现数据库系统中表的元数据管理

2022-12-13 19:38:24 905

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

在前面章节中我们构建了NFA状态机,现在我们看看如何使用它来识别给定字符串是否合法。首先我们先构造如下正则表达式对应的NFA,在input文件的表达式部分输入:({D}.{D} | {D}.{D})这个表达式的目的是识别浮点数,用我们前面做好的代码生成的NFA状态机如下:这里我们需要引入两个个概念及其对应操作,首先是epsilon-clousure操作, 它表示给定一系列初始状态后,然后找到从这些...

2022-11-28 09:30:54 454

原创 自己动手写编译器:使用NFA识别字符串

本文给出了如何使用构建的NFA状态机识别输入字符串是否满足给定正则表达式定义的规则

2022-11-28 09:30:00 719 1

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

使用count-min-sketch算法解决海量数据的统计难题

2022-11-13 14:37:26 1188 1

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

实现数据库系统的表扫描功能

2022-10-23 15:00:26 508 1

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

在数据库中,数据以”记录“作为一个单元来存储,例如一个表的“一行”就对应一条记录。假设我们有一个表叫STUDENT,其中有name, age, sex, class等字段,那么一条记录的信息就由这四个字段对应的信息合成。一条记录如何存储并不是一个简单的事情,例如我们需要考虑如下因素:1,一条记录是否应该全部存储在一个区块中2,一个区块存储的记录是否应该全部来自同一张表3,记录中每个自动的大小是否应...

2022-10-21 16:29:43 348

原创 动手写数据库:实现记录管理

本文介绍了数据库系统中记录管理器的设计与实现

2022-10-21 16:13:35 796

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

在编译器开发中有两个非常重要的工具名为lex和yacc,他们是编译器的生成器。本质上我们不需要一行行去完成编译器的代码,只需要借助这两个工具,同时制定好词法解析和语法解析的规则后,这两个工具就会自动帮我们把代码生成,我们后续的任务就是使用go语言将这两个工具实现。为了更好的理解我们要开发的GoLex,我们先熟悉一下lex工具的使用。在Centos上安装lex的命令为:yum install fle...

2022-09-27 09:00:33 964

原创 自己动手写编译器:代码实现正则表达式到NFA状态机

代码实现正则表达式到NFA有限状态自动机

2022-09-26 20:35:21 1211

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

本节我们的目的是,在给定正则表达式后,将其转换为非确定性有限状态自动机数据结构,后者会进一步生成一个跳转表,从而实现字符串匹配的功能。我们首先看输入,输入是一个后缀名为lex的文件,基本内容如下:%{ FCON = 1 ICON = 2%}D [0-9]%%(e{D}+)?%%在编译器开发中有一系列工具链,链条中第一个叫lex, 它的作用是你可以将字符串识别对应的正则表...

2022-09-22 14:29:32 234

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

GoLex,一个基于go语言的词法解析生成器基本介绍

2022-09-22 14:26:24 620

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

编译原理中非常重要的数据结构和算法:有限状态机和汤普森构造

2022-09-12 21:21:56 1046

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

数据库系统如何在多并发情况下确保数据读写的正确性

2022-09-06 14:01:47 490

原创 自己动手写编译器:词法解析的系统化研究

系统介绍编译原理中词法解析的基本理论

2022-08-30 23:12:35 564

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

实现高并发调度中的互斥锁和共享锁

2022-08-14 19:53:25 473

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

简要介绍数据库中并发管理得劲基本原理

2022-07-31 19:02:23 592

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

编译原理,实现循环体的代码生成,本节处理的语法结构为有:while, do...while和break

2022-06-19 12:00:41 972

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

编码实现数据库系统的交易功能以及完成系统自动恢复功能

2022-05-30 16:52:57 287

一个java实现的简易编译器

这是一个用java实现的简易的编译器,他能将一个具有加法和乘法的算术表达式编译成类汇编语言,这是我博文对应的代码,具体请参看我的博文: http://blog.csdn.net/tyler_download/article/details/50668983 例如输入 1+2*3+4; end end是必须的,表示输入结束,然后程序输出: t0 = 1 t1 = 2 t2 = 3 t1 *= t2 t0 += t1 t1 = 4 t0 += t1

2016-02-18

一个android 文本比对app的实现代码

这是一个android版的beyond comparer, 它的功能是找出两个文本的最大共同子串,其算法思想是LCS, 但我利用Hirschberg 的动态规划算法将存储复杂度由O(n^2)改为O(n), 具体详情请参看我的博文: http://blog.csdn.net/tyler_download/article/details/49820515

2015-11-16

Android 4.4 App Development Essential

亚马逊上五星级的android开发入门书,它将android开发的概念,流程娓娓道来,详细讲解了开发环境的搭建,调试,并逐步讲解开发的各个知识点,并提供动手实践的实例和程序,极大地降低了学习曲线,是想进入android移动开发的绝佳入门资料

2014-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除