教程总共分为十章,每一章包含不同的主题,各章之间属于循序渐进的关系,各章相关的代码,也是通过增量修改实现的。如下所示,为各章的主题与内容简介。
第1章 - Kaleidoscope 与词法分析器。介绍了目标以及实现的基本功能。词法分析器是为一门编程语言构建解析器的基础,我们使用 C++ 实现一个简单的词法分析器。
第2章 - AST 与解析器。介绍了解析器相关技术,以及抽象语法树的构造。关于解析技术,本教程使用的是递归下降分析法和算符优先级分析法。
第3章 - LLVM IR 代码生成。介绍了如何基于 AST 生成 LLVM IR,通过一种简单的方法将 LLVM 引入到编译器实现中。
第4章 - JIT 与优化器支持。基于 LLVM 为 Kaleidoscope 实现 JIT 编译功能,同时加入对于优化器的支持。
第 5 章 - 语言扩展:控制流。对 Kaleidoscope 进行语言扩展,实现控制流能力(if 语句和 for 语句)。同时,简单介绍了 SSA 的构造。
第6章 - 语言扩展:自定义运算符。对 Kaleidoscope 进行语言扩展,实现自定义运算符能力,允许用户自定义一元运算符和二元运算符(支持运算符优先级)。
第7章 - 语言扩展:可变变量。对 Kaleidoscope 进行语言扩展,实现局部变量和赋值操作符。同时,介绍了一种隐式的方法让 LLVM 自动构造 SSA。
第8章 - 目标文件编译。介绍了如何基于 LLVM IR 编译生成目标文件。
第9章 - 调试信息。支持调试器,添加调试信息,允许在 Kaleidoscope 函数中设置断点,打印参数变量和调用函数。
第10章 - 总结。主要讨论语言扩展的进阶内容,比如指针、垃圾回收、异常、调试等。
Apple 安全工程与架构 (SEAR) 团队发布公告,宣布开放 2024 年度 iPhone 安全研究设备计划(SRDP)的资格申请,通过申请的参与者将获得一台名为 SRD 的官方改装 iPhone。
这台设备运行经过定制的特殊固件,安全研究人员可在其不受限的软件环境中运行任何工具,甚至可以加载经过修改的操作系统内核。
借助设备这台设备,安全研究人员可以更快、更方便的发现 iOS 乃至 iPhone 硬件上的漏洞,所有提交的漏洞都有机会获得来自 Apple 的安全赏金。
特点:免费、无任何限制、支持文字渲染,据称工程团队包括来自Google Brain的专家。
游戏《星空》今日在 Steam 平台为预购玩家开启了游戏预载,不包含首日补丁的预载体积为 86.4GB,解压后需要硬盘有至少 116.21GB 的剩余空间。
游戏的标准版将在 9 月 6 日 上午 8 点解锁,购买高级版与典藏版的玩家则能提前 5 天,在 9 月 1 日抢先开玩。
专注于页面速度的可视化 WordPress CSS 编辑器
适用于 WordPress 的点击式 CSS 编辑器插件,可为初学者提供精细控制并帮助开发人员更快地进行设计。
创建拖放 CSS 网格布局,推迟“折叠下”CSS 以获得最大页面速度,实时编写 Sass 代码,并利用形状和蒙版发挥创意。
Microthemer | #编辑器
适用于 WordPress 的点击式 CSS 编辑器插件,可为初学者提供精细控制并帮助开发人员更快地进行设计。
创建拖放 CSS 网格布局,推迟“折叠下”CSS 以获得最大页面速度,实时编写 Sass 代码,并利用形状和蒙版发挥创意。
Microthemer | #编辑器
一个做的比较专业的 AI Chatbot,MindOS,mindos.com,平台提供了一系列 AI 伴侣可以直接对话,具备较为强大的 AI 副驾驶定制化能力,包括 APIs、Workflows、Knowledge 和 Memory。
APIs 是一系列集成的三方接口,包括 Google 内容搜索、天气查询、Youtube 视频查询等,甚至还包括 LLM as a Service 的服务接入,也支持自定义接入。
Workflows 类似一个低代码编辑器,允许定义各种 Nodes 节点,例如抓取、分析和处理数据等,包括对数据的重新排列组合,还支持编程方式处理数据,每个 Node 都是一个 Prompt 驱动的任务执行器。
Knowledge 解决了幻觉问题,而 Memory 可以用来缓存和读取数据,它有点类似一个 Prompt 驱动的 Database。
docs | home
APIs 是一系列集成的三方接口,包括 Google 内容搜索、天气查询、Youtube 视频查询等,甚至还包括 LLM as a Service 的服务接入,也支持自定义接入。
Workflows 类似一个低代码编辑器,允许定义各种 Nodes 节点,例如抓取、分析和处理数据等,包括对数据的重新排列组合,还支持编程方式处理数据,每个 Node 都是一个 Prompt 驱动的任务执行器。
Knowledge 解决了幻觉问题,而 Memory 可以用来缓存和读取数据,它有点类似一个 Prompt 驱动的 Database。
docs | home