Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Немного о языках программирования (http://forum.oszone.net/showthread.php?t=29982)

Alekssej 19-01-2004 18:19 206591

Здравствуйте, уважаемые коллеги!
У меня появилась идея создать свой очень маленькое подобие языка программирования... Возможно ли это сделать в одиночку???
Вопрос №2 :
Как создать программу компилятор?
И, опять же, возможно ли это в одиночку???
Заранее спасибо!
:oszone:

Добавлено:

ПЛИИИЗ =)

mar 19-01-2004 19:27 206592

Alekssej
сейчас есть достаточно развитые средства для создания языков программирования. Посмотри документацию по бизону (одно из них)

Alekssej 19-01-2004 19:30 206593

mar

А что такое "бизон" ???

mar 19-01-2004 19:36 206594

bison http://www.gnu.org/software/bison/bison.html
еще посмотри YACC
на вскидку сейчас больше не вспомню. Дома посмотрю - мы в прошлом году вставляли свой бейсик =) в программу, чтобы дать пользователям возможности втроенного языка для управления этой самой программой

[s]Исправлено: mar, 19:37 19-01-2004[/s]

Alekssej 19-01-2004 19:37 206595

mar

Огромное ФНКС :up:

mar 19-01-2004 19:41 206596

http://www.linux.org.ru/books/GNU/bison/bison_toc.html
ну и так далее, ссылок должно быть более ...
одно предупреждение - это все счастье изначально существует под *nix, но под win тоже можно работать, ну и главное принципы работы в сети описаны =)

Alekssej 19-01-2004 19:42 206597

mar

А где её скачать???

ivank 19-01-2004 20:31 206598

mar
Бизон - тот же як :) Только гнутый. Учитывая, что yacc продукт коммерческий, а так что в 100% виденных мной юнихов (и не только, просто там это как бы встречается почаще) yacc - всего лишь симлинк на bison, то упоминать о нём особого смысла не было, во всяком случаек после Бизона.

Alekssej
По первой ссылке, данной mar, есть сайты с которых можно утянуть сырцы.

Кстати, что бы этим всем делом пользоваться надо знать C. Достаточно неплохо знать.

К тому же, синтаксический анализатор - далеко не всё что нужно компилятору/интерпретатору. Советую почитать соответствующюю литературу. "Книга Дракона" - "Компиляторы: принципы, технологии, инструменты". Или как-то так, не является моей настольной книгой, а идти в соседнюю комнату уточнять лениво. *Так же неплохо б яндекс поспрашать о "теории и практике построения трансляторов", ну и схожие вопросы.

mar 19-01-2004 20:46 206599

ivank
не-а, только не симлинк =) у меня
yacc и bison - отдельные самостоятельные бинарники, причем разные
(специально сейчас проверила на linux (alt, debian, redhat) и freeBSD благо можно ходить ssh, а не ногами =))
А если найдешь точную ссылку, буду очень тхенкфул
Alekssej
насчет С - это вообще по умолчанию  =) ivank абсолютно прав.


Добавлено:

ага! вот:
Ахо А., Сети Р., Ульман Дж.
Компиляторы. Принципы, технологии, инструменты
http://citforum.muravlenko.ru/book/compiler/index.shtml

mar 20-01-2004 16:27 206600

я нашла эту книгу в электронном виде и выложила у себя на складе =) для желающих
http://www.bio.pu.ru/~mar/up.shtml
NB объем порядка 6 Мб, формат djv, те для просмотра требуется плагин. (адрес для плагинов и тд по этому формату указан там же, на всякий случай там же выложен плагин под вин)
А прошлогодних своих материалов что-то пока не найду =(

Добавлено:

нашла кучу всякого для виндов по этой теме, выкладывю по адресу: http://www.bio.pu.ru/~mar/basic/ может что кому и пригодится -)

ivank 20-01-2004 19:47 206601

Alekssej
Да, кстати, если лень учить Си и знаком с шеллом, то милости просим: http://ivank.ru/blog/1072648801 :) Это от нефиг делать было написано...

mar
О yacc'е и bison'е немного попозже.

Guest 18-02-2004 18:47 206602

mar, мое огромное спасибо за книгу. Да еще на русском... :up:


WFrag

mar 19-02-2004 13:52 206603

Guest
не за что - мне саймой было интересно ее найти =) давно хотелось

Guest 19-02-2004 22:25 206604

Вообще, чтобы создать язык программирования (только формальный язык), нужно сделать для него лексический и синтаксический анализатор. Здесь понадобится теория формальных грамматик. Подробно это описано на сайте SoftCraft.ru. Далее по выбору - интерпритатор (прога запускается из программы-интерпритатора) или компилятор (создается исполняемый файл). Интерпритатор можно создать самому на основе выполнения команд программы на Вашем языке. Компилатор сделать сложнее - здесь нужна генерация кода... Вообще в сети много материалов по этому делу. Рекомендую прочитать книгу Ахо, Ульман, Сети "Компиляторы:разработка,...,...  "

Lex-генератор лексических анализаторов, а YACC-то ли синтаксических, то ли всего вместе...


Время: 13:31.

Время: 13:31.
© OSzone.net 2001-