Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК по СПО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.79 Mб
Скачать

11.8.Генераторы лексических и синтаксических анализаторов на java

ANTLR

ANTLR 2.xx - полностью переработанная версия реализованная на Java и генерирующая программу на Java. ANTLR 2.xx включает все три инструмента PCCTS, обобщая понятие лексического, синтаксического анализа и обхода дерева в простое понятие применения грамматической структуры к входному потоку - независимо от того, что это может быть поток символов, токенов или узлов дерева. [http://www.antlr.org/]  

BYACC/JAVA

BYACC/Java является расширением Berkeley v 1.8 Yacc. Добавлен флаг "-j", позволяющий генерировать программу на Java. [http://sparc20.dsi.unimo.it/sparc20/byacc/byaccDoc.html]  

COCO/JAVA

Java версия CoCo, генератора лексических и синтаксических анализаторов.

[http://www.ssw.uni-linz.ac.at/Projects/Coco/Coco.html]  

CUP

LALR генератор синтаксических анализаторов  для Java.

[http://www.cs.princeton.edu/~appel/modern/java/CUP/why.html]  

GENERIC INTERPRETER

Производит автономные или встроенные интерпретаторы и компиляторы на Java. Язык определяется на лету и исходные потоки, написанные на этом языке, могут быть интерпретированы в любое время, даже по мере развития языка. Поддерживает LL(1), LR(0), SLR(1) и LR(1).

[http://www.csupomona.edu/~carich/gi/]  

JAVA COMPILER COMPILER

Генератор синтаксических анализаторов Sun. Создает анализаторы на Java из описания грамматики в стиле LEX/YACC. Полностью написан на Java. Нисходящий синтаксический анализ (рекурсивный спуск) c переменным заглядыванием вперед.

[http://www.metamata.com/JavaCC/]  

JACCIE

Jaccie - образовательный инструмент для визуализации техники компилирования. Состоит из генераторов лексических и синтаксических анализаторов. Пользователь может выбирать между LL(1), LR(0), SLR(1), LALR(1) и LR(1) анализаторами.

[http://www2.informatik.unibw-muenchen.de/Research/Tools/JACCIE/jaccie.html]  

JAX

Jax  генерирует лексические анализаторы из регулярных выражений, встроенных в скелет java файла. Jax не является [f]lex совместимым, и, в частности, не позволяет определять макросы или контекстно-зависимое сравнение выражений.

[http://www.meurrens.org/ip-Links/Java/codeEngineering/blackDown/jax.html]  

JAY

Версия BSD Yacc, генерирующая код Java.

[http://www.informatik.uni-osnabrueck.de/bernd/jay/]  

JB

Система JB берет синтаксические анализаторы, сгенерированные генератором синтаксических анализаторов Gnu Bison и транслирует их в Java (tm). JB берет выходной файл Bison на C и сканирует его для выделения таблиц и констант. Затем JB сканирует различные файлы шаблонов, указанные пользователем и вставляет полученную информацию в назначенные места шаблона. JB предоставляет два метода генерации соответствующих лексических анализаторов: (1) JB берет лексические анализаторы сгенерированные генератором Gnu flex и транслирует их в Java. (2) "Родной" лексический анализатор, который может быть модифицирован для получения лексических анализаторов типичных языков программирования.

[ftp://ftp.cs.colorado.edu/pub/cs/distribs/arcadia/jb.txt]  

JELL

Jell является генератором синтаксических анализаторов, генерирующий анализаторы, работающие по методу рекурсивного спуска из LL(1) грамматик. Вы можете также встраивать дополнительные директивы для  получения кроме стандартных и дополнительных возможностей, не присущих LL(1).

[http://www.meurrens.org/ip-Links/Java/codeEngineering/blackDown/jell.html]  

JFLEX

JFlex - генератор лексических анализаторов для Java с полной поддержкой Unicode и встроенной поддержкой CUP.

[http://www.jflex.de/]  

JLEX

JLex - генератор лексических анализаторов, который может быть использован в комбинации с CUP.

[http://www.cs.princeton.edu/~appel/modern/java/JLex/]  

JIKES PG

Jikes Parser Generator может быть использован для генерации синтаксических анализаторов для LALR(k) грамматик. Также предоставляет поддержку автоматической диагностики и восстановления после синтаксических ошибок.

[http://www10.software.ibm.com/developerworks/opensource/jikes/]  

JTB

Java Tree Builder используется совместно с генератором синтаксических анализаторов JavaCC. Он берет обычный грамматический файл JavaCC и автоматически генерирует следующее: набор классов синтаксического дерева; суперкласс Visitor, метод по умолчанию которого просто посещает дочерние узлы текущего узла; грамматику JavaCC с точной аннотацией для построения синтаксического дерева во время синтаксического анализа.

[http://www.cs.purdue.edu/jtb/]  

METAMATA PARSE

MetaMata Parse является инструментом продолжающим JavaCC от тех же самых авторов.

[http://www.metamata.com/products/parse_top.html]  

MUSKOX/JAVA

MUSKOX аннотирует классы в РБНФ для LR(k) грамматик. Он предоставляет наследование грамматик и переопределение правил. Также поддерживает множественные анализаторы, запись/воспроизведение журнала трассировки и т.д. 

[http://www.mastersys.com/]  

PAT

Пакет COM.stevesoft.pat позволяет java приложениям или аплетам компилировать и использовать регулярные выражения perl5. Также выполняет подстановку текста. Пакет работает конвертируя регулярные выражения в список связанных по одиночке объектов Pattern, каждый из которых знает как сопоставлять свой собственный кусочек текста. Поэтому можно расширить возможности сопоставления образцов этого пакета, создав свой собственный класс на основе Pattern.

[http://www.javaregex.com/]  

SABLE CC

SableCC - объектно-ориентированная среда, генерирующая компиляторы (и интерпретаторы) на Java. Она использует объектно-оринтированные методы для автоматического создания строго типизированного абстрактного синтаксического дерева, которое соответствует грамматике компилируемого языка и упрощает отладку. SableCC генерирует классы прохода дерева используя расширенную версию Visitor design pattern позволяющего выполнять действия над узлами абстрактного синтаксического дерева используя наследование.

[http://www.sable.mcgill.ca/sablecc/]