Беркли Якк - Berkeley Yacc
Оригинальный автор (ы) | Роберт Корбетт |
---|---|
Разработчики) | Томас Дики |
изначальный выпуск | 2 сентября 1989 г.[1] |
Стабильный выпуск | 20200330/30 марта 2020 г. |
Репозиторий | |
Написано в | ANSI C89 |
Операционная система | Unix-подобный |
Тип | Генератор парсеров |
Лицензия | всеобщее достояние |
Интернет сайт | остров-невидимка |
Беркли Якк (byacc) это Unix генератор парсеров разработан, чтобы быть совместимым с Yacc. Первоначально он был написан Робертом Корбеттом и выпущен в 1989 году.[2] Из-за своей либеральной лицензии и того, что он был быстрее, чем AT&T Yacc, он быстро стал самой популярной версией Yacc.[3] У него есть преимущества написания на ANSI C89 и быть всеобщее достояние программного обеспечения.
Он содержит функции, недоступные в Yacc, такие как повторный вход, который реализован способом, который в целом совместим с GNU Bison.[4][5]
История
В 1985 году Роберт Корбетт разработал оригинальный Генератор парсера LALR основан на статье Де Ремера и Пеннелло 1982 года.[6] Корбетт написал это как часть своего исследования, направленного на докторскую степень. он получил от Калифорнийский университет в Беркли в июне 1985 г.[7][8] Первоначально он назывался Байсон и несовместим с Yacc но впоследствии он был переименован в Bison и стал основой GNU Bison.
Позже, в 1985 году, Корбетт создал еще один Yacc-совместимый генератор парсеров LALR, первоначально названный Zeus, но впоследствии переименованный в Zoo.[9] Корбетт опубликовал исходный код Zoo в Группа новостей Usenet но в основном это оставалось незамеченным до тех пор, пока в сентябре 1989 года Корбетт не опубликовал в группе новостей comp.compilers о размещении исходного кода на FTP сервер.[1] Была дискуссия о переименовании его, и к октябрю 1989 года он стал известен как Berkeley Yacc (byacc).[10]
В 1995 году Крис Додд разработал BtYacc, возврат производная от Berkeley Yacc для поддержки синтаксического анализа контекстно-зависимые языки подобно C ++,[11][12] основан на статье Merrill 1993 года, описывающей аналогичные модификации AT&T Yacc.[13][14] Это предлагает возврат и семантическое устранение неоднозначности для синтаксического анализа неоднозначная грамматика. Правило, проанализированное, но отклоненное семантической информацией, можно откатить, чтобы синтаксический анализатор мог попробовать другое правило.[15][16] Тем не менее, его также критиковали за необходимость пробных действий без побочных эффектов и за негибкое управление конфликтами смены-сокращения.[17]
В 1997 году Вадим Маслов взял на себя обслуживание BtYacc для поддержки КОБОЛ парсер, разработанный его компанией.[18] К 1999 году последняя версия 3.0 была преобразована в C ++, больше не поддерживает C.[19]
В 2000 году Томас Э. Дики портировал Беркли Якка на VMS чтобы облегчить перенос банка в VMS. Не сумев найти другого сопровождающего, Дики поддерживает Berkeley Yacc с февраля 2002 года.[20] Значительным обновлением стала конверсия из K&R C к ANSI C89.[20]
В 2014 году Том Шилдс интегрировал отслеживание BtYacc в Berkeley Yacc, эффективно включив BtYacc и снова поддерживая C (вместо только C ++) в выпусках Dickey с апреля 2014 года.[21]
Смотрите также
- GNU Bison - еще одна бесплатная замена для Yacc, написанная тем же автором, что и Berkeley Yacc.
Рекомендации
- ^ а б Корбетт, Роберт (2 сентября 1989 г.). "Генератор парсера PD LALR (1)". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2017-08-26.
- ^ Дуг Браун; Джон Левин; Тони Мейсон (октябрь 1992 г.), lex & yacc (2-е изд.), O'Reilly Media
- ^ Джон Левин (август 2009 г.), Flex & Bison, O'Reilly Media
- ^ "Беркли Якк". invisible-island.net. В архиве из оригинала на 2020-10-19. Получено 2020-11-10.
... поддержка реентерабельного кода, который в byacc развился до такой степени, что его можно сравнивать и настраивать с bison.
- ^ "Журнал изменений Berkeley Yacc, см. Запись" 2010-06-07 Andres.Meji"". 2010-06-07. В архиве с оригинала на 2020-11-10. Получено 2020-11-10.
- ^ ДеРемер, Франк; Пеннелло, Томас (октябрь 1982 г.). «Эффективное вычисление LALR (1) Look-Ahead Sets» (PDF). ACM Trans. Программа. Lang. Syst. ACM. 4 (4): 615–649. Дои:10.1145/69622.357187. ISSN 0164-0925. Получено 2017-08-26.
- ^ Корбетт, Роберт (24 сентября 1998 г.). "Re: Кто-нибудь расширял MAXTABLE в парсерах yacc?". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2017-08-26.
- ^ Корбетт, Роберт Пол (июнь 1985 г.). Статическая семантика и восстановление ошибок компилятора (Кандидат наук.). Калифорнийский университет в Беркли. DTIC ADA611756.
- ^ Корбетт, Роберт (6 сентября 1989 г.). "Назовите этот генератор парсера PD". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2017-08-26.
- ^ Корбетт, Роберт (3 октября 1989 г.). "Беркли Як (новая версия)". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2017-08-26.
- ^ Додд, Крис (7 марта 1995 г.). "BTYACC - yacc с возвратом и унаследованными атрибутами". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2020-05-18.
- ^ "README.txt". BtYacc: BackTracking Yacc. Сибирские Системы. Получено 2020-05-14.
- ^ "README.BYACC". Возврат yacc. GitHub. Получено 2020-05-14.
- ^ Меррилл, Гэри Х. (1 августа 1993 г.). "Анализ не-LR (k) грамматик с помощью yacc". Софтв. Практик. Опыт. 23 (8): 829–850. CiteSeerX 10.1.1.14.1958. Дои:10.1002 / spe.4380230803. ISSN 0038-0644. Получено 2020-05-14.
- ^ "btyacc (1)". Debian stretch - Debian Manpages.
- ^ Додд, Крис (13 февраля 2019 г.). "ChrisDodd / btyacc". GitHub.
- ^ Терстон, Адриан Д .; Корди, Джеймс Р. (2006). «Алгоритм обратного отслеживания LR для анализа неоднозначных контекстно-зависимых языков» (PDF). В Эрдогмусе, Хакане; Струля, Элени; Стюарт, Дарлин А. (ред.). Материалы конференции 2006 г. Центра перспективных исследований в области совместных исследований, 16-19 октября 2006 г., Торонто, Онтарио, Канада. CASCON 2006. С. 39–53. CiteSeerX 10.1.1.518.7094. Дои:10.1145/1188966.1188972. Получено 2020-05-14.
- ^ Маслов, Вадим (8 октября 1997 г.). "Доступна версия 1.1 BtYacc (Backtracking Yacc)". Группа новостей: comp.compilers. Usenet: [email protected]. Получено 2020-05-18.
- ^ "BtYacc: Генератор парсера Yacc BackTracking". Сибирские Системы. Получено 2020-05-18.
- ^ а б «BYACC - БЕРКЛИ ЯКЦ». invisible-island.net. В архиве из оригинала от 06.04.2002. Получено 2020-11-10.
- ^ "Выпуск t20140407". ThomasDickey / byacc-снимки. GitHub. Получено 2020-05-18.
внешняя ссылка
Этот Unix -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |