Coco/R

Coco/R

Сосо/R — автоматизированный генератор компиляторов. На вход Сосо/R подаётся файл с описанием структуры языка, который будет входным языком компилятора. Обычно это файл с расширением .ATG, в котором описаны символы, допускаемые языком, лексемы, состоящие из этих символов, продукции языка, описывающие структуру компилируемого языка, вставки на языке, на котором будет писаться компилятор (обычно С#).

Сосо/R генерирует классы сканера и парсера на языке, на котором пишется компилятор, для синтаксического анализа, которые затем добавляются в основную программу. (Scanner.cs, Parser.cs) Так же автоматически создаётся обработчик ошибок (он входит в состав Parser.cs), что впоследствии позволяет выводить при анализе программ пользователя список ошибок с указанием их мест. Таким образом, программа автоматизированной генерации компиляторов Сосо/R значительно облегчает процесс создания компиляторов.

Пример

В данном случае Сосо/R описывает грамматики вида:

S -> aU | bV
U -> bV | bS | e
V -> a | b
COMPILER CLN //название языка
 
public System.Windows.Forms.Textextox text; //имя текст-бокса в нашем компиляторе на языке, на котором он пишется (Си-шарп) 
public string Production=""; //переменная в программе компилятора с продукциями
public string Conditions="";
public string dd; //промежуточная строка
 
 
CHARACTERS //раздел, в котором описываются допустимые символы, разбитые на группы
Blet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ". //большие буквы 
Slet = "abcdefghijklmnopqrstuvwxyz". //маленькие..))
 
 
TOKENS //токены, они же лексемы. Структурные единицы, из которых состоит описываемый входной язык компилятора
Unterminal = Blet. //например, нетерминалы могут быть любой буквой и группы, описанной выше как Blet, т.е. все большие буквы
Product = Slet {Blet|Slet}. //аналогично, продукции состоят из одной маленькой буквы и далее энное колво больших и маленьких букв (эн от 0 до бесконеч)
Cr = '\r'|'\n'. //возможные варианты конца строки
goto = "->". //стрелочка
Divider = "|". //разделитель продукций
 
 
COMMENTS FROM "//" TO '\n' //комментарии - будет игнорироваться
 
 
IGNORE '\t'+' ' //список игнорируемых символов, в данном случае табуляция и пробелы
 
 
PRODUCTIONS раздел с описанием структуры входного языка компилятора, в данном случае - грамматики)
 
CLN = //начало описания, описывается в виде набора описанных выше токенов. в фигурных скобках, как и выше - значит что кусок может не быть, а может быть от 1 до много раз)
//в квадратных скобках (здесь нету..) - либо 0, либо 1 раз)
{
 
Unterminal (. Conditions+=t.val; .) 
goto 
Product (. Production+=t.val+" "; .) 
{
Divider 
Product (. Production+=t.val+" "; .)
} 
 
(. Production+='\n'; .) //в (. .) идут вставки на конечном языке (си шарпе), которые без изменения будут перенесены в парсер и сканер
{Cr}
 
}.
 
 
END CLN.//конец описания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Coco/R" в других словарях:

  • coco — coco …   Dictionnaire des rimes

  • Coco — Coco, CoCo, Co Co or similar can mean: Co Co locomotives, a code for a locomotive wheel arrangement with two six wheeled bogies with all axles powered, with a separate motor per axle Co Co (band), a British pop group Co co! Magazine, a Hong Kong… …   Wikipedia

  • Coco — bezeichnet: Coco (Volk), ausgestorbenen nordamerikanischen Indianerstamm Isla del Coco, auch Kokos Insel, vor der Küste Costa Ricas Río Coco, Fluss in Nicaragua und Honduras in Südamerika Coco (Musik), Rhythmus und Tanz der brasilianischen Musik… …   Deutsch Wikipedia

  • Coco d'Or — is a jazz band, fronted by Hiroko Shimabukuro. Hiroko, also known as hiro, was a member of the popular Okinawan group SPEED. Coco d Or s debut self titled album was released on 4 August 2004. A companion album entitled Coco d Or Parfait, which… …   Wikipedia

  • coco — 1. (ko ko) s. m. 1°   Le fruit du cocotier. Le coco fournit un lait et une amande fort agréables au goût. •   Le soleil ne sait pas sur leurs arbres profanes Mûrir le doux coco, les meilleures bananes, A. CHÉN. 228.    Coco de mer, nom donné à… …   Dictionnaire de la Langue Française d'Émile Littré

  • Coco/R — Maintainer: Institut für Systemsoftware, Johannes Kepler Universität Linz Kategorie: Parser Generator Lizenz: GNU GPL http://ssw.jku.at/Coco/ …   Deutsch Wikipedia

  • coco — sustantivo masculino 1. Cocotero. 2. Fruto del cocotero, del que se come la pulpa, bañada por un líquido lechoso muy dulce: coco rallado, batido de coco. agua* / leche de coco. 3. Uso/registro: coloquial. Cabeza humana, mente: Éste tiene el coco… …   Diccionario Salamanca de la Lengua Española

  • CoCo — Pays d’origine Japon Genre musical Jpop Années d activité 1989 1994 Labels Pony Canyon Membres Rieko Miura • Mikiyo Ōno • Erika Haneda …   Wikipédia en Français

  • coco — COCO. subst. m. Espece de Palmier qui croist aux Indes, qui porte des noix qu on appelle aussi Cocos, & qui est beaucoup plus haut que les autres. On appelle aussi, Coco, Le fruit, & l escorce de cet arbre qui est gros comme un melon &… …   Dictionnaire de l'Académie française

  • coco — COCO. s. m. Fruit du cocotier. Ce fruit est gros comme un melon, et quelquefois davantage. Une tasse de coco. Un chapelet de coco. Les Indiens tirent du fil de la première écorce du coco, et en font de la toile. La chair du coco est agréable. Il… …   Dictionnaire de l'Académie Française 1798

  • Coco d'Or — es un proyecto de música jazz japonés de Hiroko Shimabukuro, ex miembro de SPEED. Ese también fue el nombre del primer disco publicado en 2004 mientras que Coco d Or 2 es el segundo Álbum publicado en 2006. Coco d Or El primer disco contiene las… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»