yacc
yacc - це комп'ютерна програма-генератор парсерів розроблена Стівеном С. Джонсоном в AT&T для операційної системи UNIX. Ім'я є акронімом до "Yet Another Compiler Compiler." Він генерує синтаксичний аналізатор (частина компілятора яка намагається побудувати синтаксичне дерево коду програми за формальною граматикою, записаною в нотації, подібній до БНФ).
Синтаксичний аналізатор що генерується yacc потребує лексичного аналізатора. Використовуються генератори лексичних аналізаторів такі як Lex чи Flex. Існує стандарт IEEE POSIX P1003.2 що описує функціональність та вимоги як до Lex, так і до Yacc.
Деякі версії AT&T Yacc перейшли у відкритий код. Код поширюється наприклад з стандартними дистрибутивами Plan 9 та OpenSolaris.
Див. також
- Парсер LALR: алгоритм на якому базується Yacc.
- GNU Bison: версія Yacc у проекті GNU.
- Lex (та Flex), лексичні аналізатори що зазвичай використовуються з yacc (та Bison).
- Нотація Бекуса — Наура, метасинтаксис для опису контекстно-вільної граматики.
Джерела
Посилання
- Стівен Джонсон. YACC: Yet Another Compiler-Compiler. Unix Programmer's Manual Vol 2b, 1979.
- Інтерв’ю Computerworld зі Стівеном Джонсоном про YACC
- Теорія Lex та Yacc
- Paper "Parsing Non-LR(k) Grammars with Yacc" by Gary H. Merrill
Версії для різних мов
- ML-Yacc версія yacc для мови Standard ML.
- ocamlyacc версія yacc для Objective Caml.
- CL-Yacc, генератор LALR(1) парсерів для Common Lisp.
- PLY версія yacc для Python
- Racc версія yacc для Ruby.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.