仓酷云
标题:
Linux制作之AWK之父访谈录仓酷云
[打印本页]
作者:
透明
时间:
2015-1-18 11:29
标题:
Linux制作之AWK之父访谈录仓酷云
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
登录/注册后可看大图
2146421X5-0.jpg
(17.8 KB, 下载次数: 2)
下载附件
保存到相册
Linux制作之AWK之父访谈录仓酷云
2015-1-18 11:29 上传
<br>
AlfredAho
盘算机迷信家、编译器专家AlfredV.Aho一向紧盯盘算机迷信研讨前沿。Aho传授一向努力于编程言语开辟,曾任贝尔实行室盘算机迷信研讨中央副主任,现为哥伦比亚年夜学LawrenceGussman盘算机迷信系传授。
Aho传授不但是“龙书”系列的作者之一,并且在上世纪70年月同BrainKernighan和PeterWeinberger一同开辟了形式婚配言语AWK。
克日,《盘算机天下》有幸约请到Aho传授谈一谈AWK的开辟。
问:您为何要开辟AWK言语?
和年夜部分言语一样,AWK是应实践必要而生的。上世纪80年月初,我仍是贝尔实行室的研讨员。当时我必要追踪经费预算。同时由于我在邻近的一所年夜学兼职,追踪先生的成就同样成了一件辣手的事变。
我想要一种玲珑的言语,能让我只写一两行代码就完成这些事情。可巧BrianKernighan也有这类需求,因而我俩一同开辟了一个专门针对浅易数据处置的形式婚配言语。
GREP对我们的影响很年夜,它是UNIX下一个很盛行的字串婚配工具。GREP也是我们研讨中央开辟的。GREP能够依据某个正则表达式查找文本文件中特定的行,然后输入它们。
我们想进一步扩大它,使得数字也能向字串那样处置。我们还想在打印以外供应一些盘算功效。
开辟AWK仅仅是用来满意我们,或是那些对盘算机不是很懂的人,处置惯例数据的必要。它接纳“婚配形式——实行举措”的体例事情。
问:在你们开辟AWK时有无哪一种程序或是言语已具有了这些功效?
我们最后是以GREP为原型(开辟AWK的)。可是GREP在“形式——举措”处置上有一些范围,以是我们想扩大它。事先,我还在研讨字串婚配算法和编译器里的高低文有关文法,盲目不盲目地自创了一些LEX和YACC(机关编译器的工具)里的工具。
LEX用于词法剖析,而YACC用于语法剖析。它俩都是机关编译器的主要工具,事先在贝尔实行室很盛行。厥后传播开来,用来开辟了良多小言语。BrianKernighan事先用它们来开辟数学排版和图形处置言语。
LEX用来分拣输出文本中的词法单位(词元)。词元是一串能够组成逻辑寄义的字符,好比,编程言语中的关头字“then”就是一个词元。我们对字母‘t’不感乐趣,对‘h’也不感乐趣,我们感乐趣的是‘then’这个组合。编译器的第一个部分就是词法处置单位,它读进源程序,剖析出个中的词元。
AWK受这类词法剖析体例的影响(很年夜),但AWK的定位是数据处置,并且对用户的盘算机背景请求很少。
问:您能冗长地向《盘算机天下》的读者们先容一下AWK言语吗?
AWK是一门处置文本文件的言语。它把文件看做一串纪录(record),缺省情形下一行即为一个纪录。每行又被拆成多少域(field)。我们能够把一行中的第一个词看做第一域,第二个词看做第二域,以此类推。一个AWK程序就是连续串“形式——举措”语句。AWK一次读进一行,然后对比程序中的各个形式举行扫描。一旦婚配乐成就实行响应的操纵(action)。
举个例大概更分明一些。假定我们有一个文件,它的每行都是一个名字后跟一个德律风号码。我们假定个中一举动“Pope15193741273”。AWK言语把第一域记作$1,第二域记作$2,。如今我们想查Pope的德律风号码,只需一行AWK语句:$1=="Pope"{print$2}
这条语句的意义是:若我们找到一行,其第一域为Pope,则输入其第二域(即德律风号码)。如今你已算是AWK程序员了^_^
AWK程序一样平常由一组“形式——举措”语句组成。形式能够是字串或数字的真假判别;举措是一组相似C言语的语句。
AWK跟着成为UNIX的标配而盛行起来。
问:在AWK的开辟过程当中,您最满意的是甚么?
AWK是由BrianKernighan、PeterWeinberger和我三团体开辟的。当时,PeterWeinberger很猎奇Brian和我成天在忙甚么。我们写好了AWK的语律例范,但短少一个完全的运转情况。Weinberger跑来对我们说“这看起来很像我写过的一个言语”,然后就在一个礼拜内写好了AWK的运转情况。我们用这个原始版原本处置我们感乐趣的数据,很称手。更主要的是,它为AWK供应了一个能够不休扩大的平台。
对我来讲,最主要的是这个项目让我懂得了Kernighan和Weinberger是怎样思索言语计划的——这真是一次很受害的互助!有了这个乖巧的编译器机关工具,我们就能够完整掌控我们的开辟了。我们很快到场了一些新的语法来改善AWK。整整一年,我们都在剧烈地会商哪些特征应当加进AWK,哪些应当抛弃。
言语计划是一项十分随性的举动,每一个计划者城市把他们必要的特征到场到言语当中,这些特征大概来自他们必要办理的成绩,大概来自他们办理成绩的体例。在开辟AWK的过程当中,我失掉了很多兴趣,而和Kernighan、Weinberger他们同事是我的职业生活中最安慰的事变。我可不想和他们那样的计划者合作。他们的编程才能无与伦比。
说来也成心思,最入手下手我们并没有想到,除我们三个之外还会有人用它。但很快我们发明,良多人无数据处置的需求,而这恰是AWK所善于的。人们不肯写几百行的C程序来做数据处置,而一样的事情只需几行AWK代码。因而愈来愈多的人入手下手利用AWK。
良多年后,AWK仍旧是UNIX下很经常使用的一个命令。时至昔日,即便已呈现了一多量相似的言语,但AWK仍旧终年坚持在编程言语盛行排行榜上25至30名的模样。而这统统都起于我们仨为了满意本人的必要开辟的一个小工具。
<spanstyle="padding-bottom:0px;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;font-weight:b
常用的linux命令,尤其是一些能帮你提高开发效率的命令,(eg:grep,awk,sed,split等);
作者:
透明
时间:
2015-1-21 07:47
甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
作者:
若相依
时间:
2015-1-25 11:15
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
作者:
飘灵儿
时间:
2015-2-2 21:48
直到学习Linux这门课以后,我才知道,原来我错了。?
作者:
简单生活
时间:
2015-2-4 22:36
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
作者:
飘飘悠悠
时间:
2015-2-9 17:59
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
作者:
再现理想
时间:
2015-2-11 13:04
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
作者:
精灵巫婆
时间:
2015-2-11 19:55
查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
作者:
不帅
时间:
2015-3-2 17:51
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者:
灵魂腐蚀
时间:
2015-3-11 04:50
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
作者:
深爱那片海
时间:
2015-3-17 20:52
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
作者:
第二个灵魂
时间:
2015-3-25 01:20
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2