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 + -
显示快捷键?