1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
.. include:: links.rst
Credits
-------
- |TatSu| is the successor of Grako_, which was built by **Juancarlo Añez** and funded by **Thomas Bragg** to do analysis and translation of programs written in legacy programming languages.
- **Niklaus Wirth** was the chief designer of the programming languages
`Euler`_, `Algol W`_, `Pascal`_, `Modula`_, `Modula-2`_, `Oberon`_,
and `Oberon-2`_. In the last chapter of his 1976 book `Algorithms +
Data Structures = Programs`_, `Wirth`_ creates a top-down, descent
parser with recovery for the `Pascal`_-like, `LL(1)`_ programming
language `PL/0`_. The structure of the program is that of a `PEG`_
parser, though the concept of `PEG`_ wasn't formalized until 2004.
- **Bryan Ford** `introduced`_ `PEG`_ (parsing expression grammars) in
2004.
- Other parser generators like `PEG.js`_ by **David Majda** inspired
the work in |TatSu|.
- **William Thompson** inspired the use of context managers with his
`blog post`_ that I knew about through the invaluable `Python
Weekly`_ newsletter, curated by **Rahul Chaudhary**
- **Jeff Knupp** explains why |TatSu|'s use of `exceptions`_ is
sound, so I don't have to.
- **Terence Parr** created `ANTLR`_, probably the most solid and
professional parser generator out there. *Ter*, *ANTLR*, and the
folks on the *ANLTR* forums helped me shape my ideas about |TatSu|.
- **JavaCC** (originally `Jack`_) looks like an abandoned project. It
was the first parser generator I used while teaching.
- |TatSu| is very fast. But dealing with millions of lines of legacy
source code in a matter of minutes would be impossible without
`PyPy`_, the work of **Armin Rigo** and the `PyPy team`_.
- **Guido van Rossum** created and has lead the development of the
`Python`_ programming environment for over a decade. A tool like
|TatSu|, at under 10K lines of code, would not have been
possible without `Python`_.
- **Kota Mizushima** welcomed me to the `CSAIL at MIT`_ `PEG and
Packrat parsing mailing list`_, and immediately offered ideas and
pointed me to documentation about the implementation of *cut* in
modern parsers. The optimization of memoization information in
|TatSu| is thanks to one of his papers.
- **My students** at `UCAB`_ inspired me to think about how
grammar-based parser generation could be made more approachable.
- **Gustavo Lau** was my professor of *Language Theory* at `USB`_, and
he was kind enough to be my tutor in a thesis project on programming
languages that was more than I could chew. My peers, and then
teaching advisers **Alberto Torres**, and **Enzo Chiariotti** formed
a team with **Gustavo** to challenge us with programming languages
like *LATORTA* and term exams that went well into the eight hours.
And, of course, there was also the *pirate patch* that should be worn
on the left or right eye depending on the *LL* or *LR* challenge.
- **Manuel Rey** led me through another, unfinished, thesis project
that taught me about what languages (spoken languages in general, and
programming languages in particular) are about. I learned why
languages use `declensions`_, and why, although the underlying words
are in `English`_, the structure of the programs we write is more
like `Japanese`_.
- `Marcus Brinkmann`_ has kindly submitted patches that have resolved
obscure bugs in |TatSu|'s implementation, and that have made the
tool more user-friendly, specially for newcomers to parsing and
translation.
- `Robert Speer`_ cleaned up the nonsense in trying to have Unicode
handling be compatible with 2.7.x and 3.x, and figured out the
canonical way of honoring escape sequences in grammar tokens without
throwing off the encoding.
- `Basel Shishani`_ has been an incredibly throrough peer-reviewer of
|TatSu|.
- `Paul Sargent`_ implemented `Warth et al`_'s algorithm for supporting
direct and indirect left recursion in `PEG`_ parsers.
- `Kathryn Long`_ proposed better support for UNICODE in the treatment
of whitespace and regular expressions (patterns) in general. Her
other contributions have made |TatSu| more congruent, and more
user-friendly.
- `David Röthlisberger`_ provided the definitive patch that allows the
use of `Python`_ keywords as rule names.
- `Nicolas Laurent`_ researched, designed, implemented, and published the left recursion algorithm used in |TatSu|.
- `Vic Nightfall`_ designed and coded an implementation of left recursion that handles all the use cases of interest (see the `Left Recursion`_ topic for details). He was gentle enough to kindly take over management of the |TatSu| project since 2019.
.. _Left Recursion: left_recursion.html
|