从awk到perl,ruby

165 篇文章 0 订阅
32 篇文章 0 订阅

从awk到perl,ruby
昨天看电脑时间长了,今天眼睛疼,于是就只能回忆代码了。所以不停的回忆数据结构的内容。
昨天读rubygem algorithms0.0.1中tree_map后,其实好象是红黑树,于是我就把数据结构的内容好好回忆。红黑树没学过。
先要学习下,再试着读其中的C代码了。
忽然想到,数据结构中,讲到线性表时,如果用数组实现顺序表,其中结构定义如下:
STRUCT ARR{
INT LEN;//实际存储了数据,使用了的数组长度。里面存储是的真实的数据
INT FENPEI;//意思是给数组实际分配的空间,可能没用完。
NODE *PTR;

忽然就想到,我不是对ruby049中,RArray中,len,capa两个表示长度的字段不理解吗?现在想,这不就是数据结构中实际动态数组的吧。
越想越有可能。
再想起RUBY中有String,这也可以说是线性表,不过每个位置存储的是字母。
而hash只不过是数组概念的扩大,而且也有哈希的定义。
STRUCT NOTE{
ZHI  DATA;
struct node *next;

struct node *hash[20];
这就是数组结构上哈希表的实现结构。
而ruby049中每种结构上都有许多的方法,这些方法呢,其实可以归结为:增、删、改查等几类。另外,就是初始化和删除的方法了。
这样一想,就把ruby核心中几种标准数据类型想通了。

接着,我想,ruby049的代码和gawk1.0的代码很像的。其中所用的regex包,其中都用bison进行写语法分析,并且都没用flex进行词法分析。
另外,象awk中有BEGIN,END结构,而ruby中也有。我想,这就是留下的最后一点返祖现象吧。

据perl的发明者说,他是用awk做事时,发现awk做不了某事,于是就发明了perl,弥补其不足。这样,可以说awk启发了perl,而perl又启发了ruby。
所以,awk真是一种让人很受启发的软件。
其实,使用flex的过程中,感觉其形式和写awk程序差不多,都是进行模式匹配,匹配上再进行处理。
甚至bison都模仿了awk的使用,只不过是,先进行语法匹配,匹配上进行处理而已。
这一样,我就忍住眼睛疼,再写了这一篇博文。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值