“自1980年以来,我手工编写了大量语言识别和翻译的代码,机械的过程让我开始尝试将这个过程自动化。”ANTLR之父--Terence John Parr 在ANTLR的介绍中如是说。分析器的自动化是编译理论研究中的一个重要方向。早期、程序员一般是手动编写分析器,不仅费时费力,而且写出的分析器往往不够稳定,维护与移植也很成问题。然而随着ANTLR这一里程碑式的自动分析器出现,这种局面得到了彻底改变。
Terence于1964年8月出生于美国加利福尼亚,小时候他对各种泥土特别感兴趣,非常喜欢用泥浆将自己全身涂遍,并引以为乐。1970 年,Terence随着全家搬到科罗拉多,开始了他的求学生涯,在一个天主教小学里学到了不少关于企鹅与其他鸟类的知识。读书时的Terence并非一帆风顺。上大学时,他申请了很多学校,最终都被拒绝了。最后只能进入普渡大学学习人文学科。不过令大家大跌眼镜的是,最终他却在普渡大学取得了计算机科学的学士学位。1987年,大学毕业后的Terence又申请到普渡大学的机电专业攻读硕士学位。在普渡大学读了一学期的研究生后,Terence突然突发奇想要去法国巴黎,于是学业暂时中断了。一年后,他最终还是选择回到学校继续读书。经过三年的努力,他于1990拿到了硕士学位。
Terence读硕士期间,师从当时大名鼎鼎的编译器研究大师Hank Dietz。在Hank Dietz教授的一门课程“翻译程序编写系统”中,Terence参与到了PCCTS(普渡大学编译器构件工具集)项目的研究当中,这个项目是ANTLR 的前身。Hank Dietz的课程结束后,Terence也在这门课程中找到了乐趣。于是在Hank Dietz教授的指导下,她开始了自己的研究课题--构造自动化的分析器,这个课题让ANTLR诞生,Terence也因此顺利取得了硕士学位。
在取得硕士学位后,Terence选择了继续师从于Hank Dietz攻读博士学位。在此期间,Terence开始对ANTLR进行第二次完全重写。1993年,Terence通过了博士论文答辩,并于同年,发布了ANTLR 1.10版。在接下来的一年中,他作为博士后研究人员在美国军方的高性能计算研究中心工作,并有极大的收获。博士后研究结束后,Terence成立了 Parr研究机构,主要从事软件开发,并提供语言翻译咨询,为美国军方提供了诸如NeXT、Tandem、CDC和Taligent等产品。
1995年,看到Java语言的良好形势,Terence与Tom Burns、Mel Berman共同成立了MageLang研究所,提供Java语言培训与咨询服务,并同时提供ANTLR支持服务,继续开发和维护ANTLR。 MageLang后来发展成为jGuru网站,为Java开发者提供许多专业服务。从1995年到现在,jGuru一直是最大的Java开发者网站之一。在过去十多年中,jGuru得到了500多万美元的投资,雇员达到了20多人。Terence一直担任jGuru的首席科学家。Terence说,虽然当时他在MageLang一天工作“26小时”,但那确实是一段美妙的时光。
除了打理jGuru的事情外,Terence一直坚持改进和维护ANTLR。发展到现在,ANTLR功能增强了很多。除了可以为程序员提供构造自己的识别器、编译器和转换器时,需要的基本构架外,还提供了对Java、C#、Python、C++等语言的良好支持。作为一个开源的项目,几乎所有知名 Java应用中都可以看到ANTLR的身影,包括WebLogic Server和Hibernate也都利用ANTLR来解析HQL。据统计,每月ANTLR的下载量达到5000次,遥遥领先于同类组件。这就是 ANTLR--简单、容易扩展、开放源代码。从技术角度来看,ANTLR生成的代码与使用递归下降法(构造手工分析器的主要方法)产生的代码非常相似,便于程序员阅读和理解,与著名的YACC产生的晦涩代码相比进步了很多。虽然ANTLR是如此的优秀,但是它的垢病也不少。不少人抱怨ANTLR的性能不够好、代码结构不清晰等。针对这些问题,在不久前Terence对ANTLR进行了第三次的完全重写,这就是即将到来的ANTLR 3。可以说,从ANTLR发布到今天,Terence一直致力于ANTLR的维护与发展工作之中。
2003年,年过40的Terence加入了旧金山大学担任教授,并开始着手写如何实现类似ANTLR的分析工具,希望将他在ANTLR中获得的经验与更多人分享。也许在Terence看来,是应该开始培养接班人的时候了。P.S: 他教的Programming Languages真的很难,也恭喜他成为副教授。
课程链接:
http://www.antlr.org/wiki/display/CS652/CS652+Home English Version(I translate it myself):
"Since 1980, I have manually written a lot of codes of language recognition and translation, the process of mechanization make me try to realize the process of automation.” Father of ANTLR---Terence John Parr says in the introduction of ANTLR. Automated analyzer is an important direction in the study of compiler theory. Early programmers usually manually write analyzer, it is not only time-consuming but also laborious, and often the written analyzer is not stable enough, maintenance and transplants are also very problematic. However, with the appearance of this milestone--- the automatic analyzer ANTLR, the situation is radically changed.
Terence was born in California in August 1964, when he was young, he used to pay various special interests on the soil and he was very fond of covering his whole body with mud. In 1970, Terence moved to Colorado State with his family, began his career as a student. In a Catholic Elementary School he learned a lot of knowledge about penguins and other birds. Terence’s study career was not that smooth. He applied for a lot of universities, but ultimately rejected by most of them. Finally he can only enter Purdue to study the humanities. Surprisingly, however, he finally accomplished the Computer Science bachelor in Purdue. In 1987, after graduating from university Terence applied to electromechanical studying in Purdue for master’s degree. Unpredictably, after one semester as a graduate student, Terence suddenly came to Paris, France, so his study career temporarily suspended. A year later, he finally chose to return to school. After three years’ effort, he received his master's degree in 1990.
While Terence was pursuing his master’s degree, he studied under the famous compiler-research master Professor Hank Dietz. In the curriculum "translation programming system," which was taught by Professor Hank Dietz, Terence participated in the PCCTS project (Purdue compiler component tool sets), the project was the predecessor of ANTLR. At the end of the course, Terence found lots of fun in it. So under the direction of Professor Hank Dietz, he began his own research topic -- build automated analyzers, the birth of the topic made Terence smoothly achieved his master's degree.
After obtaining his master's degree, Terence chose to study for a doctorate under the guidance of Hank Dietz. In the meantime, Terence began to completely rewrite ANTLR. In 1993, Terence passed his doctoral dissertation, and in the same year, he released version 1.10 of ANTLR. In the following year, during his post-doctoral research in the United States military's high-performance computing research center, he got the great harvest. After postdoctoral research, Terence set up Parr research institute, mainly engaged in software development, also provided language translation advice, and provide the US military products such as NeXT, Tandem, CDC and other products.
In 1995, seeing the good situation of Java, Terence, Tom Burns and Mel Berman founded the MageLang Research Institute. They provided training and advisory services of Java and support services of ANTLR and continued to develop and maintain ANTLR. MageLang later became the jGuru website which provided many professional services for Java developers. From 1995 until now, jGuru has been the biggest Java developers’ website. In the past 10 years, jGuru got more than 500 million dollars in investment, and the employees reached more than 20 people. Terence has served as the chief scientist in jGuru. Although he worked in MageLang "26 hours" a day, that is indeed a wonderful time, Terence said,
In addition to managing things of jGuru, Terence has always insisted on improving and maintaining ANTLR. Development until now, the function of ANTLR has been much enhanced. In addition to providing the programmers the own structure for recognition, compiler and converters with the basic framework, also provided a pair good support of Java, C #, Python, C + + and other languages. As an open-source project, we could see the scene of ANTLR almost in all the famous Java application, including WebLogic Server and Hibernate, which used ANTLR to parse HQL. According to statistics, the monthly downloads of ANTLR exceeded 5,000 times, far ahead of other similar components. This is ANTLR--simple, easy to expand, open source code. From a technical point of view, codes generated by ANTLR are the equivalent codes with the use of recursive descent method (the main method of manual analyzer structure), which make the programmer easy to read and understand. Compared with the renowned YACC which generate obscure codes, ANTLR gains a lot of progress. Although the ANTLR is of that good, it also has many defects. Many people complained that the performance of ANTLR is not good enough and the code structure is not that clear, and so on. In light of these problems, Terence recently completely rewrote ANTLR for the third time. This is the upcoming ANTLR 3. It can be said that from the published day of ANTLR, Terence has been committed to the maintenance and development work of ANTLR.
In 2004, Terence joined the University of San Francisco as a professor. He began writing analytical tools which are similar as ANTLR. He hoped that the experience of ANTLR he gained could be shared with more and more people. Perhaps in Terence’s prospect, it is the suitable time for him to begin developing the successors to come into his work. P.S: His "Programming Languages" course is pretty tough
Congratulations on his promotion to Associate Professor.
Course link:
http://www.antlr.org/wiki/display/CS652/CS652+Home
相关推荐
### 计算机科学与数学的关系 #### 一、引言 计算机科学是一门综合性很强的学科,它不仅涉及硬件的设计与制造,还包括软件的开发与应用等多个方面。在这个领域中,数学扮演着极其重要的角色。本文将深入探讨计算机...
在这一背景下,《计算机牛人——编程牛人的生活》这本书,为热爱计算机技术的年轻人提供了一部充满启示与鼓舞的传记。 书中叙述了一位编程爱好者的成长经历,从初中对计算机的好奇探索,到大学时期对技术的深入钻研...
一位计算机牛人的心得,谈计算机和数学 转一位计算机牛人的心得,谈到计算机和数学,很实用~ 计算机科学与技术反思录 计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有 近三年了,自己也做...
计算机科学领域,被誉为“牛人”的群体,往往不只因为其掌握了一门或几门编程语言,而是因为其对技术有着深厚的理解,以及在解决问题的过程中展现出的非凡创造力和坚持不懈的精神。今天,我们将一同走进这样一位...
首先,标题《一位计算机牛人的心得,谈计算机和数学.pdf》揭示了本文的中心议题:一位在计算机领域有深刻见解的专业人士,分享其对于计算机科学与数学间关系的心得体会。在描述中,同样的内容被重复提及,这表明文档...
1. 计算机科学与数学的关系:文档中提到“计算机牛人的心得之谈计算机和数学”,这表明了计算机科学与数学之间存在着深刻的联系。在计算机科学的发展过程中,数学提供了逻辑基础和计算模型,如算法分析、数据结构...
计算机科学与技术是一门综合性极强的学科,它与数学有着密不可分的关系。计算机科学不仅需要实践操作,更依赖于坚实的理论基础。数学作为计算机科学的基石,无论是算法设计、体系结构理解还是解决复杂问题,都发挥着...
一牛人谈计算机,主是是介绍计算机专业学习的整个结构与方法
牛人计算机考研复习计划.pdf
标题“牛人的软件”暗示了我们正在探讨的是一款或一系列被技术高手广泛使用或高度推荐的软件工具。这些软件可能因为其高效性、创新性或者在特定领域的专业性而受到“牛人”的青睐。通常,技术牛人会选择那些能够提升...
【标题】"CSDN 牛人 项目代码 大全"所涵盖的知识点非常广泛,这是一份集合了CSDN社区内高手们分享的项目源代码合集,旨在帮助新手快速学习和提升编程技能。这个压缩包可能包含各种类型的项目,涉及到不同的编程语言...
介绍百度老总李彦宏的故事 搜索百度李彦宏 牛人牛人 百度发展史
计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
【标题】:“转载牛人文章学习” 这篇标题表明我们即将探讨的是某位业内专家或博主的文章,关于IT行业的某个主题,特别是与Android相关的技术。在IT领域,"牛人"通常指的是那些在某一技术领域有深厚造诣的人,他们...
华为牛人 在华为 工作十年的感悟