history.txt
来自「本工具提供一个词法分析器和语法分析器的集成开发环境」· 文本 代码 · 共 187 行
TXT
187 行
The History of PCCTS The Purdue Compiler-Construction Tool Set Terence Parr Parr Research Corporation Minneapolis, Minnesota and University of Minnesota Army High Performance Computing Research Center [Updated 8-7-94] The PCCTS project began as a parser-generator project for a gra-duate course at Purdue University in the Fall of 1988 taught by HankDietz- translator-writing systems. Under the guidance of ProfessorDietz, the parser generator, ANTLR (originally called YUCC), continuedafter the termination of the course and eventually became the subjectof Terence Parr's Master's thesis. Originally, lexical analysis wasperformed via ALX which was soon replaced by Will Cohen's DLG in theFall of 1989 (DFA-based lexical-analyzer generator, also an offshootof the graduate translation course). The alpha version of ANTLR was totally rewritten resulting in1.00B. Version 1.00B was released via an internet newsgroup(comp.compilers) posting in February of 1990 and quickly gathered alarge following. 1.00B generated only LL(1) parsers, but allowed themerged description of lexical and syntactic analysis. It had rudimen-tary attribute handling similar to that of YACC and did not incor-porate rule parameters or return values; downward inheritance was veryawkward. 1.00B-generated parsers terminated upon the first syntaxerror. Lexical classes (modes) were not allowed and DLG did not havean interactive mode. Upon starting his Ph.D. at Purdue in the Fall of 1990, TerenceParr began the second total rewrite of ANTLR. The method by whichgrammars may be practically analyzed to generate LL(k) lookaheadinformation was discovered in August of 1990 just before his return.Version 1.00 incorporated this algorithm and included the AST mechan-ism, lexical classes, error classes, and automatic error recovery;code quality and portability were higher. In February of 1992 1.00was released via an article in SIGPLAN Notices. Peter Dahl, Ph.D.candidate, and Professor Matt O'Keefe (both at the University of Min-nesota) tested this version extensively. Dana Hoggatt (Micro DataBase Systems, Inc.) came up with the idea of error grouping (stringsattached to non-terminals) and tested 1.00 heavily. Version 1.06 was released in December 1992 and represented alarge feature enhancement over 1.00. For example, rudimentary seman-tic predicates were introduced, error messages were significantlyimproved for k>1 lookahead and ANTLR parsers could indicate that loo-kahead fetches were to occur only when necessary for the parse Page 1 PCCTS(normally, the lookahead "pipe" was constantly full). Russell Quongjoined the project in the Spring of 1992 to aid in the semantic predi-cate design. Beginning and advanced tutorials were created andreleased as well. A makefile generator was included that sets updependencies and such correctly for ANTLR and DLG. Very few 1.00incompatibilities were introduced (1.00 was quite different from 1.00Bin some areas). 1.10 was released on August 31, 1993 and incorporated bug fixes,a few feature enhancements and a major new capability - an arbitrarylookahead operator (syntactic predicate), (alpha)?beta. This featurewas co-designed with Professor Russell Quong also at Purdue. To sup-port infinite lookahead, a preprocessor flag, ZZINF_LOOK, was createdthat forced the ANTLR() macro to tokenize all input prior to parsing.Hence, at any moment, an action or predicate can see the entire inputsentence. The predicate mechanism of 1.06 was extended to allow mul-tiple predicates to be hoisted; the syntactic context of a predicatewas also moved along with the predicate. In February of 1994, SORCERER (a simple tree-parser generator)was released. This tool allows the user to parse child-sibling treesby specifying a grammar rather than building a recursive-descent treewalker by hand. Work towards a library of tree transformations isunderway. Aaron Sawdey at The University of Minnesota became a secondauthor of SORCERER after the initial release. On April 1, 1994, PCCTS 1.20 was released. This was the firstversion to actively support C++ output. It also included importantfixes regarding semantic predicates and (..)+ subrules. This versionalso introduced token classes, the "not" operator, and token ranges. On June 19, 1994, SORCERER 1.00B9 was released. Gary Funck ofIntrepid Technology joined the SORCERER team and provided very valu-able suggestions regarding the "transform" mode of SORCERER. On August 8, 1994, PCCTS 1.21 was released. It mainly cleaned upthe C++ output and included a number of bug fixes. From the 1.21 release forward, the maintenance and support of allPCCTS tools will be primarily provided by Parr Research Corporation,Minneapolis MN---an organization founded on the principles of excel-lence in research and integrity in business; we are devoted to provid-ing really cool software tools. Please see file PCCTS.FUTURE for moreinformation. All PCCTS tools currently in the public domain will con-tinue to be in the public domain. Looking towards the future, a graphical user-interface is in thedesign phase. This would allow users to view the syntax diagramrepresentation of their grammars and would highlight nondeterministicproductions. Parsing can be traced graphically as well. This systemwill be built using a multiplatform window library. We also antici-pate the introduction of a sophisticated error handling mechanismcalled "parser exception handling" in a near future release. Page 2 PCCTS Currently, PCCTS is used at over 1000 known academic, government,and commercial sites in 37 countries. Of course, the true number ofusers is unknown due to the large number of ftp sites. Credits__________________________________________________________________________________________________________________________________________________________|ANTLR 1.00A Terence Parr Hank Dietz ||ALX Terence Parr Hank Dietz ||ANTLR 1.00B Terence Parr Hank Dietz, Will Cohen ||DLG 1.00B Will Cohen Terence Parr, Hank Dietz ||NFA Relabelling Will Cohen ||LL(k) analysis Terence Parr Hank Dietz ||ANTLR 1.00 Terence Parr Hank Dietz, Will Cohen ||DLG 1.00 Will Cohen Terence Parr, Hank Dietz ||ANTLR 1.06 Terence Parr Will Cohen, Russell Quong, Hank Dietz||DLG 1.06 Will Cohen Terence Parr, Hank Dietz ||ANTLR 1.10 Terence Parr Will Cohen, Russell Quong ||ANTLR 1.20 Terence Parr Will Cohen, Russell Quong ||ANTLR 1.21 Terence Parr Russell Quong ||DLG 1.10 Will Cohen Terence Parr ||DLG 1.20 Will Cohen Terence Parr ||DLG 1.21 Terence Parr ||Semantic predicates Terence Parr Russell Quonq ||Syntactic predicates Terence Parr Russell Quonq ||SORCERER 1.00A Terence Parr ||SORCERER 1.00B Terence Parr Aaron Sawdey ||SORCERER 1.00B9 Terence Parr Aaron Sawdey, Gary Funck ||___________________________________________________________________________| Page 3
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?