yacc
![]() | Ця стаття містить перелік джерел, але походження окремих тверджень у ній залишається незрозумілим через практично повну відсутність виносок. |
Yacc | |
Дата створення / заснування |
1970 ![]() |
---|---|
Названо на честь |
yet anotherd ![]() |
Замінений на |
GNU Bison і Berkeley Yaccd ![]() |
Розробник |
Stephen C. Johnsond[1] ![]() |
Мова програмування |
C[2] ![]() |
Репозиторій сирцевого коду |
tuhs.org/cgi-bin/utree.pl?file=V6/usr/source/yacc ![]() |
Версія | невідомо[1] |
Ліцензія |
невідомо[1] ![]() |
Статус авторських прав |
захищено авторським правомd ![]() |
Змінна середовища для читання |
LANGd[3], LC_ALLd[3], LC_CTYPEd[3], LC_MESSAGESd[3] і NLSPATHd[3] ![]() |
Має опцію командного рядка |
b[3], d[3], l[3], p[3], t[3] і v[3] ![]() |
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.
![]() |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |