首页 > 其他分享 >从0开始自制解释器——综述

从0开始自制解释器——综述

时间:2023-03-04 11:36:20浏览次数:49  
标签:教程 综述 Python 自制 解释器 编译 编译器

作为一个程序员,自制自己的编译器一直是一个梦想。之前也曾为了这个梦想学习过类似龙书、虎书这种大部头的书,但是光看理论总有一些云里雾里的感觉。看完只觉得脑袋昏昏沉沉并没有觉得有多少长进。当初看过《疯狂的程序员》这本书,书里说,真正能学会编译原理并不是靠看各种书然后通过相关考试,而是有一天你的领导找到你对你说:“小X啊,你是我们公司技术能力最强的人,咱们现在用的编译器性能有点跟不上,要不你看看能不能改进一下”。所以想要学习编译原理相关的知识首先要做的还是实践——实现一个自己的编译器。

之前也看过类似的教你如何自制编译器,但是他们有一个共同的问题就是在很大程度上都借助第三方工具,隐藏了一些底层的细节。我希望的是每一行代码都是自己的完成的。所以一直怀揣着这个梦想直到最近我找到了一篇教程。一起写一个简单的编译器——魔力Python。这篇教程是实用Python完成的,但是这里我不打算使用Python,我打算实用最纯粹的C 语言来完成这个任务,我考虑使用C主要基于以下几个原因:

  1. Python 有一些封装的细节,不方便全方位的展示相关算法。
  2. 原教程使用的就是Python,还用一样的话思路会受到教程的影响,要真正的理解需要自己一行行的敲代码,最好的方式就是用另一种语言来实现同样的算法
  3. 现在市面上大多数都是用c来实现编译器,如果后续想要更近一步学习编译原理可以考虑在我完成的这版中很方便的加入一些新学的知识点
  4. 自己有使用C的能力,而且用C写编译器自带装B属性

基于以上理由,我准备开始跟着教程使用C来实现自己的解释器。

这并不是一篇教程什么的,更多的是作为一篇实践笔记。而且根据我之前写的Vim专栏的经验来说,将它已专栏的形式发布出来之后鸽的可能性更小,更有动力来完成它。当然如果各位能从专栏中学到什么那就更好了。

总之后面让我们一起进入学习编译原理的路程吧

标签:教程,综述,Python,自制,解释器,编译,编译器
From: https://www.cnblogs.com/lanuage/p/17177939.html

相关文章

  • 正点原子IMX6ULL开发板-烧写自制系统-启动kernel后显示“No working init found”问题
    环境VMware17.0.0Ubuntu16NXP提供的U-boot与Linux版本:u-boot:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2linux:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2开发板:......
  • 解释器模式
    解释器模式是一种行为型设计模式,它可以用来定义和解释一种语言的文法,并根据文法对句子进行解释。解释器模式通常用于编译器,表达式计算,正则表达式,机器人等领域。它的基本思......
  • #创作者激励#【FFH】自制ArkUI组件-文件管理器(二)悬浮小球!
    【本文正在参加2023年第一期优质创作者激励计划】前言交互设计UI整体设计UI自适应布局悬浮窗改造效果图GIFEND前言经过重重的改造封装,这一版的FilerBall组件基本......
  • 【FFH】自制一款ArkUI组件-应用文件管理器(一)
    前言介绍使用示例1.实现思路1.1接口函数1.2代码思路效果图GIF前言在涉及应用内部存储的开发时,常常翻阅手机自带的文件管理检查。正好在学习文件管理的接口,想着......
  • 0x07_自制操作系统My-OS实现输出字符到屏幕
    接上一课class04,这是他的运行结果 收到了键盘的中断,现在想的当然是怎么把输入的文字显示到屏幕上,做成一个最简单的IO 这是class04的目录结构,现在我们把他换成clas......
  • 结构光自标定方法综述
    来源:《传感器与微系统》作者:张美航,张华,鄢威编辑:东岸因为@一点人工一点智能原文:​​结构光自标定方法综述​​00 引言三维重构是计算机视觉核心问题之一,相机-投影仪结构光......
  • ACP云原生容器题目整理 -- 容器综述
    Pivotal定义的云原生四要素:DevOps,持续交付,容器,微服务CNCF对云原生定义:容器,服务网格,微服务,不可变基础设施,声明式API登陆进入容器内部的方式:dockerexec,dockerattach,ssh,n......
  • 定时任务原理方案综述
    定时任务原理方案综述https://mp.weixin.qq.com/s/u6EFPVql4IuoG9-NJLDhsA定时任务原理方案综述原创 肖明睿 京东技术 2023-02-2319:00 发表于北京 Tech导读......
  • K-NN和K-Means算法综述
    第一章 K-NN和K-Means算法理论基础1.1 K-NN算法研究的背景和意义随着信息技术的快速发展,大数据时代已经到来,人们迫切需要研究出更加方便有效的工具对收集到的......
  • python的GIL全局解释器锁
    globalinterpreterlock--全局解释器锁CPython 解释器所采用的一种机制,它确保同一时刻只有一个线程在执行Python bytecode。此机制通过设置对象模型(包括 dict 等......