尝试再造python编译器:龙书重制版

一段时间前,我们用go编写了python的词法解析器。由于近一段时间事情繁多,同时囊中羞涩,因此更多的精力投入到了和“变现”相关的工作,对编译原理,数据库这些极为基础且底层的技术有所忽略,毕竟他们不像reactjs, javascript,后台开发等这些工程性技术那样容易挣钱,因此属于用爱发电的范畴。但是工程性工作做多了我也发现一个问题,那就像人吃多精细食品而没有适当摄入粗粮,这会使得人有气无力,气虚多汗,让人感觉到体内虚空,没有底层理论和技术支持,一切上层构建都搭承在脆弱的地基上,随时有坍塌的危险。

为此我再次回归到底层技术,这次希望能沉淀下来,把编译原理,数据库系统等底层技术的设计和算法思想说清楚,这些都是当前繁花乱眼的上层技术的根基,掌握好他们,我们就能在风云变幻的信息技术世界站稳了根基,无论各种流行的技术如何变迁,我们都能以万变不离其宗的姿态淡定面对。

我们上一次完成python语言的词法分析时匆匆而过,忽略了一个很重要的数据结构和算法概念,其实词法解析并不仅仅是对字符串的简单处理,它基于一个根本概念叫有限状态自动机,大家如果在云课堂上看过我的“自己动手用java写编译器”课程就会发现,那里我用了大量的篇幅和代码来说明这个东西。为了改变上次浮皮潦草的态度,这次我打算认认真真基于编译原理“圣经”,也就是在龙书的基础上,将编译原理的算法和理论慢慢展现出来,同时将它们以Python编译器的形式逐步实现,这样我们才能够“知行合一”,不仅仅将认知停留在似懂非懂的理论上,同时也能破除编译原理给人晦涩难懂的感觉。

进入正题。我们先了解编译器的基本结构。所谓编译实际上就是将一种语言所表述的内容用另一种语言说出来。因此编译器的基本功能在于“分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值