[align=center][b]ANTLR 之父-Terence John Parr[/b]
[url]http://www.cs.usfca.edu/~parrt/[/url][/align][align=center][img]http://www.iteye.com/upload/picture/pic/21695/c5404369-6917-37eb-a349-1a8efcc7a506.jpg[/img][/align]
“自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真的很难,也恭喜他成为副教授。
课程链接:[url]http://www.antlr.org/wiki/display/CS652/CS652+Home[/url]
English Version(I translate it myself):
[align=center][b]Father of ANTLR--- Terence John Parr[/b]
[url]http://www.cs.usfca.edu/~parrt/[/url][/align]
"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:[url]http://www.antlr.org/wiki/display/CS652/CS652+Home[/url]