BY Blog

jiuguang home

C++ 对象模型

<<深度探索C++对象模型>> 读后总结

前言 重温了一遍«深度探索C++对象模型»,多了一些自己的思考,本文做一些记录 什么是”类”? 站在纯编码的角度上看,类就是组织数据结构的一种方式,那么下列都可以称为”类”: C语言种的struct,甚至uion Erlang 中的复合结构:Term=>Tuple,list,map等 Lua 中的table C#/Java 中的Class C++ 中的cla...

Lua Stack

Lua源码分析——Stack

前言 Lua 栈是LuaState的核心,它维护了Lua函数调用的上下文信息,充当C与Lua通信的”桥梁“,本文介绍Lua Stack结构,核心相关function实现。 Lua Stack内存结构 LuaState 是一个Luavm的实例,不同的LuaState拥有不同的调用栈,而其中的调用栈实现就是:Lua Stack。Stack的实现是一个TValue数组,索引从0开始递增,每次...

Lua string

Lua源码分析——string

前言 string几乎是所有语言的基础建设,在lua中无byte类型&&需要高效地内存复用,基于这两点形成了lua 使用原始char*+string内存化的设计方案。Lua的所有类型设计都是基于简单,高效的原则,不参杂复杂的数据类型,但是足够精巧,可以实现各种高级用法 Lua string 结构定义 string核心实现在lstring.lua,它的定义如下: /* *...

Lua数据类型

Lua源码分析——前言&数据类型

前言 接触lua近4年了,一直断断续续读相关源码,这次计划把lua源码整体分析一遍,基于最新版本(Lua 5.3.5), 完成如下文章(顺序可能不一致): 基本数据类型 string/table 剖析 luavm 分析 lexer/ast/gencode 词法分析/语法树/生成字节码 lua周边支持:debug/continue等 lua源码简介 可以从lu...

Lua Table

Lua源码分析——table

前言 table 是lua中是lua中唯一的复合结构, 大多数高级语言中具有的:Array/Map/Class/Struct 数据组织结构均可通过table去实现。table核心的实现主要有: Array part: 存储数组部分数据结构 Hash part: 存储Map相关数据 metatable: 实现核心func以及运算符重载逻辑,class的数据模式也是利用这个机制...