如何在大脑中模拟代码运行

如何在大脑中模拟代码运行
昨天,终于在笔记本上安装好了ubuntu,这次没有使用虚拟机。这样,可以在ubuntu中使用图形界面相关功能了。在win10下通过wsl使用ubuntu,不能使用图形界面,感觉功能很受限。
心里一想起这事,就觉得很兴奋。
但睡在床上,不想起床,于是就把自己读过的代码在大脑中进行回忆。
我比较喜欢的是oz写的grep程序,因为有一本书《精通正则表达式》,这本书,讲得很透,我当时就有了读正则表达式源码的想法。
再想起grep.c调regex.c文件中,的程序。
在regex.c中实现了,把正则表达式先翻译中中间伪码,再后再用中间伪码去进行匹配。匹配的过程是贪心法。像'a[1=9]*b'去匹配'ax1987b'时,[1-9]*能匹配完'1987b',但'b'无法匹配,于是要回退。我再想regex.c中那个remactch是如何实现的,我不记得代码的具体逻辑,但想个大概,心里觉得无比充实。
接着就想gawk1.10,因为这个程序同样矮小精悍,awk1.c,awk2.c,awk3.c,awk.y,awk.h,regex.c等几个核心文件。其中awk.h中定义了语法树和变量存储的一些核心数据结构。而awk.y中,是进行语法分析的bison文件。真正进行逻辑处理的,就是awk1.c,awk2.c,awk3.c这几个文件。其中awk1.c建立了一个程序处理的框架。先处理begin块,再读入一行,处理,直到处理完文件,最后处理end块。而具体的处理逻辑在awk2.c的一个函数中。至于awk3.c主要是一些内部函数的实现。
于是,又细细的思考每个文件的内容。心想,这些牛人真厉害

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值