yacc
Ця стаття містить перелік джерел, але походження окремих тверджень у ній залишається незрозумілим через практично повну відсутність виносок. |
| Тип | LALR parser generatord |
|---|---|
| Розробник | Stephen C. Johnsond[1] |
| Перший випуск | 1970-ті |
| Версії | невідомо[1] |
| Мова програмування | C[2] |
| Ліцензія | невідомо[1] |
| Репозиторій | www.tuhs.org/cgi-bin/utree.pl?file=V6%2Fusr%2Fsource%2Fyacc |
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 [Архівовано 11 липня 2011 у Wayback Machine.]. Unix Programmer's Manual Vol 2b, 1979.
- Інтерв’ю Computerworld зі Стівеном Джонсоном про YACC [Архівовано 4 жовтня 2011 у Wayback Machine.]
- Теорія Lex та Yacc [Архівовано 10 липня 2011 у Wayback Machine.]
- Paper "Parsing Non-LR(k) Grammars with Yacc [Архівовано 15 жовтня 2012 у Wayback Machine.]" by Gary H. Merrill
- ML-Yacc [Архівовано 26 червня 2011 у Wayback Machine.] версія yacc для мови Standard ML.
- ocamlyacc [Архівовано 16 серпня 2019 у Wayback Machine.] версія yacc для Objective Caml.
- CL-Yacc [Архівовано 6 липня 2011 у Wayback Machine.], генератор LALR(1) парсерів для Common Lisp.
- PLY [Архівовано 10 березня 2015 у Wayback Machine.] версія yacc для Python
- Racc [Архівовано 24 вересня 2009 у Wayback Machine.] версія yacc для Ruby.
| Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |