![](https://img-blog.csdnimg.cn/d2bf52b9351b477693dd71ac160fc869.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编译原理: 从手写PrattParser到懵逼
文章平均质量分 93
对编译原理前端工作原理最好的实践: 手写一个普拉特解析器, 欢迎点赞.
神经骚栋
IT界无底坑洞栋主
展开
-
手写一个PrattParser基本运算解析器4: 简述iOS的编译过程
通过这样的对比, 我们就对iOS编译过程以及在iOS编译过程中到底是模拟了哪个过程有了大体的了解.同时,PrattParser解析器点击查看基于Swift的PrattParser项目Swift编译器架构说明。原创 2023-10-23 16:49:41 · 1072 阅读 · 0 评论 -
手写一个PrattParser基本运算解析器1: 编译原理概述
编译原理是我们每一个程序猿必须要了解的技能, 编译原理实际上并没有啥高深的技术, 我们如果在做业务开发, 也很少会用到编译开发的知识, 但是编译原理又是我们必备的基础知识之一. 所以我们需要对编译原理的内容有一个大概的了解.其实我自己写这一个系列的起因, 一个是我恶补编译原理的相关内容, 另外一个就是看到了B站熊爷的技术去魅篇-手写一个普拉特解析器, 感觉这个对我辅助理解遍历原理的一个很好的方案. 所以才会有这一个系列的博客.首先就是编译过程中的基本组成结构单元. 如下图所示.原创 2023-10-17 16:47:52 · 708 阅读 · 0 评论 -
手写一个PrattParser基本运算解析器2: PrattParser概述
由于编译原理内容太过于枯燥, 所以当时我就在想能不能写一个编译过程, 这时候就在B站上看到了熊爷的技术去魅篇 -PrattParser解析器解析器主要的工作是把一系列的标记转换为树的表示形式. 例如线性代码的转换过程如下所示.想要实现如下的转换过程, 我们一般需要实现解析器, 而想要实现解析器一般有两种方式.使用(所有验证大部分来自CharGPT, 了解就好)手工实现解析器使用进行上面的转换过程, 用一种DSL (例如BNF) 来描述你的语法, 这时候,会变成什么样呢?如下所示.原创 2023-10-17 16:50:14 · 186 阅读 · 0 评论 -
手写一个PrattParser基本运算解析器3: 基于Swift的PrattParser的项目概述
前段时间一直想着手恶补编译原理的相关知识, 一开始打算直接读大学的编译原理, 虽然内容丰富, 但是着实抽象难懂. 无意间看到B站的熊爷关于普拉特解析器相关内容, 感觉是一个非常好的切入点.所以就写了基于Swift版本的下面是我整理的项目中各个类以及其中函数的作用.更加具体的请查看PrattParser解释器项目类与函数接下来, 我把整个项目UML图发出来, 大家可以借鉴查看.更加具体的请查看PrattParser的Swift项目UML图接下来, 我就以词法分析语法分析中间代码生成。原创 2023-10-17 16:52:28 · 544 阅读 · 0 评论