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.
|
![]() |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |