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).
- Нотація Бекуса-Наура, метасинтакс для опису КВ-граматики.
Посилання [ред.]
- Stephen C. Johnson. YACC: Yet Another Compiler-Compiler. Unix Programmer's Manual Vol 2b, 1979.
- Computerworld Interview with Stephen C. Johnson on YACC
- ML-Yacc a yacc version for the Standard ML language.
- CL-Yacc, a LALR(1)parser generator for Common Lisp.
- PLY a yacc version for Python
- Yacc theory
- ocamlyacc a yacc version for Objective Caml.
- Racc a yacc version for Ruby.
- Paper "Parsing Non-LR(k) Grammars with Yacc" by Gary H. Merrill
