Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Компилятор языка Pascal на С#

9.0K
01 декабря 2007 года
EuGenius
48 / / 12.01.2007
Есть у кого-нибудь примеры создания компилятора (необходимо только лексический, синтаксический, семантический анализаторы) Pascal-подобного языка на C++/C#? Желательно с комментариями...
Благодарю.
5
01 декабря 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: EuGenius
Есть у кого-нибудь примеры создания компилятора (необходимо только лексический, синтаксический, семантический анализаторы) Pascal-подобного языка на C++/C#? Желательно с комментариями...
Благодарю.


Советую смотреть в сторону Coco/R а также книжки Мозгового М. В. "Классика программирования: Алгоритмы, языки, автоматы, компиляторы. Практический подход", в которой автор в простой и понятной любому новичку форме рассказывает, как использовать регулярные выражения .net и утиллиту Coco/R для генерирования лексического и синтаксического анализатора по входной грамматике (синтаксис аналогичен таким утиллитам как yacc, bizon и пр.).

9.0K
01 декабря 2007 года
EuGenius
48 / / 12.01.2007
Спс. Почитаем...
HardCase, а ты с этим сталкивался? Не сможешь объяснить, что делает Coco? Я так понял: задаешь ему грамматики и в итоге он что-то должен выдать. Вот только что? Не пойму.:rolleyes:
5
01 декабря 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: EuGenius
Спс. Почитаем...
HardCase, а ты с этим сталкивался? Не сможешь объяснить, что делает Coco? Я так понял: задаешь ему грамматики и в итоге он что-то должен выдать. Вот только что? Не пойму.:rolleyes:


На вход Coco/R подается файл с описанием грамматики языка (одна из вариаций НФБН) YourLanguage.ATG, плюс для каждого правила прописывается на C# некоторая логика, связанная с семантикой того языка - это все в одном файле. Генератор на основе этого файла, а также файлов-шаблонов транслятора (на C#, прилагается к генератору) создает 2 класса - Parser и Scanner. Бизнесс-логику для правил грамматики генератор помещает в код класса Parser.

На сайте, чью ссылку я дал в предыдущем посте, есть пример грамматики для C#2.0 - посмотри ее. Также есть пример для некоторого языка Taste (типа чтобы войти во вкус ;)

370
02 декабря 2007 года
koval
443 / / 29.08.2005
Цитата: hardcase
На вход Coco/R подается файл с описанием грамматики языка (одна из вариаций НФБН) YourLanguage.ATG, плюс для каждого правила прописывается на C# некоторая логика, связанная с семантикой того языка - это все в одном файле. Генератор на основе этого файла, а также файлов-шаблонов транслятора (на C#, прилагается к генератору) создает 2 класса - Parser и Scanner. Бизнесс-логику для правил грамматики генератор помещает в код класса Parser.

На сайте, чью ссылку я дал в предыдущем посте, есть пример грамматики для C#2.0 - посмотри ее. Также есть пример для некоторого языка Taste (типа чтобы войти во вкус ;)



Очень веселая вещь. Получается что возможно создать первый в мире я зык программирования с синтаксисом русского языка, тем более, что вся документация по CLR открыта. К примеру Рус.NET. Вот это было бы прикольно :D

353
02 декабря 2007 года
Nixus
840 / / 04.01.2007
Цитата: koval
Получается что возможно создать первый в мире я зык программирования с синтаксисом русского языка... Вот это было бы прикольно :D


Язык программирования на кирилице будет уступать языку на латинице, т.к.
1) возможны проблемы с кодировакой, что в принципе не страшно, но
2) даже клавиатура не распологает вводить {} и [], без переключения на латиницу (будет очень-очень неудобно).
Поэтому языки на кирилице представляют лишь академический интерес.

370
02 декабря 2007 года
koval
443 / / 29.08.2005
Цитата: Nixus
Язык программирования на кирилице будет уступать языку на латинице, т.к.
1) возможны проблемы с кодировакой, что в принципе не страшно, но
2) даже клавиатура не распологает вводить {} и [], без переключения на латиницу (будет очень-очень неудобно).
Поэтому языки на кирилице представляют лишь академический интерес.



Я конечно точно не знаю, но помойму VB-ке не используются {}. Но это уже дело третье, можно обойтись без {}[], зменить это использвание ну скажем "\ /" или "ъ" А вообще, про академический интерес, это ты точно подметил.

5
02 декабря 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: koval
возможно создать первый в мире я зык программирования с синтаксисом русского языка


С синтаксисом ты конечно сильно сказал. LALR(1) анализатор (именно такой анализатор генерирует Coco/R) не в силах распознать естественный язык.
Но вот был такой компилятор Странник-Си-Модула-Паскаль, он позволял использовать в Модуле 2 и Паскале ключевые слова на русском языке.

63K
15 апреля 2011 года
2k9software
26 / / 09.03.2011
1С - уже на русском, опоздал, милок...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог