Компилятор языка Pascal на С#
Благодарю.
Благодарю.
Советую смотреть в сторону Coco/R а также книжки Мозгового М. В. "Классика программирования: Алгоритмы, языки, автоматы, компиляторы. Практический подход", в которой автор в простой и понятной любому новичку форме рассказывает, как использовать регулярные выражения .net и утиллиту Coco/R для генерирования лексического и синтаксического анализатора по входной грамматике (синтаксис аналогичен таким утиллитам как yacc, bizon и пр.).
HardCase, а ты с этим сталкивался? Не сможешь объяснить, что делает Coco? Я так понял: задаешь ему грамматики и в итоге он что-то должен выдать. Вот только что? Не пойму.:rolleyes:
HardCase, а ты с этим сталкивался? Не сможешь объяснить, что делает Coco? Я так понял: задаешь ему грамматики и в итоге он что-то должен выдать. Вот только что? Не пойму.:rolleyes:
На вход Coco/R подается файл с описанием грамматики языка (одна из вариаций НФБН) YourLanguage.ATG, плюс для каждого правила прописывается на C# некоторая логика, связанная с семантикой того языка - это все в одном файле. Генератор на основе этого файла, а также файлов-шаблонов транслятора (на C#, прилагается к генератору) создает 2 класса - Parser и Scanner. Бизнесс-логику для правил грамматики генератор помещает в код класса Parser.
На сайте, чью ссылку я дал в предыдущем посте, есть пример грамматики для C#2.0 - посмотри ее. Также есть пример для некоторого языка Taste (типа чтобы войти во вкус ;)
На сайте, чью ссылку я дал в предыдущем посте, есть пример грамматики для C#2.0 - посмотри ее. Также есть пример для некоторого языка Taste (типа чтобы войти во вкус ;)
Очень веселая вещь. Получается что возможно создать первый в мире я зык программирования с синтаксисом русского языка, тем более, что вся документация по CLR открыта. К примеру Рус.NET. Вот это было бы прикольно :D
Язык программирования на кирилице будет уступать языку на латинице, т.к.
1) возможны проблемы с кодировакой, что в принципе не страшно, но
2) даже клавиатура не распологает вводить {} и [], без переключения на латиницу (будет очень-очень неудобно).
Поэтому языки на кирилице представляют лишь академический интерес.
1) возможны проблемы с кодировакой, что в принципе не страшно, но
2) даже клавиатура не распологает вводить {} и [], без переключения на латиницу (будет очень-очень неудобно).
Поэтому языки на кирилице представляют лишь академический интерес.
Я конечно точно не знаю, но помойму VB-ке не используются {}. Но это уже дело третье, можно обойтись без {}[], зменить это использвание ну скажем "\ /" или "ъ" А вообще, про академический интерес, это ты точно подметил.
С синтаксисом ты конечно сильно сказал. LALR(1) анализатор (именно такой анализатор генерирует Coco/R) не в силах распознать естественный язык.
Но вот был такой компилятор Странник-Си-Модула-Паскаль, он позволял использовать в Модуле 2 и Паскале ключевые слова на русском языке.