Коко/Р
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Оригинальный автор(ы) | Ханспетер Мессенбёк и другие. |
---|---|
Первоначальный выпуск | 2005 |
Платформа | Кросс-платформенный |
Тип | Генератор парсера/сканера |
Лицензия | GPL2 |
Веб-сайт | юго-запад |
Coco/R — это генератор компилятора , который принимает синтаксическую нотацию. [ 1 ] : 6 [ примечание 1 ] грамматики исходного языка и генерирует сканер и парсер для этого языка. [ 1 ]
Сканер . работает как детерминированный конечный автомат Он поддерживает Юникода символы в кодировке UTF-8 и может быть настроен с учетом или без учета регистра. Он также может распознавать токены на основе их правого контекста. Помимо терминальных символов сканер может также распознавать прагмы , которые являются токенами, которые не являются частью синтаксиса, но могут встречаться в любом месте входного потока (например, директивы компилятора или символы конца строки).
Анализатор использует ; спуск рекурсивный Конфликты LL(1) могут быть разрешены либо путем многосимвольного просмотра, либо с помощью семантических проверок. Таким образом, классом принятых грамматик является LL(k) для произвольного k. Нечеткий анализ поддерживается так называемыми ЛЮБЫМИ символами, которые соответствуют дополнительным наборам токенов. Семантические действия пишутся на том же языке, что и сгенерированные сканер и парсер. Обработку ошибок парсера можно настроить, указав точки синхронизации и «слабые символы» в грамматике. Coco/R проверяет грамматику на полноту, согласованность, отсутствие избыточности, а также на наличие конфликтов LL(1).
Существуют версии Coco/R для Java , C# , C++ , Pascal , Modula-2 , Modula-3 , Delphi , VB.NET , Python , Ruby и других языков программирования. Последние версии Университета Линца предназначены для C#, Java и C++. Для версии Java существует подключаемый модуль Eclipse , а для C# — подключаемый модуль Visual Studio. Также имеются примеры грамматик для Java и C#.
Первоначально Coco/R был разработан в ETHZ и переехал вместе с Ханспетером Мессенбеком в Университет Линца, когда он получил там свое назначение. Coco/R распространяется на условиях слегка смягченной лицензии GNU General Public License .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Однако в руководстве он называется с L-атрибуцией синтаксисом расширенной формы Бэкуса – Наура (EBNF).
- ^ Jump up to: а б Мессенбёк, Ханспетер; Кеплер, Иоганнес. «Руководство пользователя компилятора-генератора Coco/R» (PDF) . Университет Иоганна Кеплера, Линц , Институт системного программного обеспечения. Архивировано (PDF) из оригинала 19 июня 2012 г.
Библиография
[ редактировать ]- Терри, Пэт (2005). Компиляция с помощью C# и Java . Эддисон Уэсли . (Книга об использовании Coco/R для создания компилятора.)
- Рехберг, Питер [на немецком языке] ; Мессенбёк, Ханспетер [на немецком языке] (1985). Компилятор-генератор для микрокомпьютеров - основы, приложения, программирование в Модуле-2 (на немецком языке) (1-е изд.). Мюнхен, Германия: Карл Хансер Верлаг . ISBN 3-446-14495-1 . (NB. В книге описана конструкция Коко в Модуле-2 .)