Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

Среди наших кто-нибудь балуется разработкой компилятора?   Найти похожие ветки 

 
oxffff ©   (2008-06-10 17:12) [0]

Сабж


 
Ricko ©   (2008-06-10 17:25) [1]

Владимир Кладов?


 
Alkid   (2008-06-10 17:31) [2]

Какого?


 
@!!ex ©   (2008-06-10 17:35) [3]

разработкой интрепретатора балуюсь. Для обработки игровых скриптов.


 
Mystic ©   (2008-06-10 18:37) [4]

Дальше синтаксического анализа не заходил. Был проект---компилятор асемблера.


 
grisme   (2008-06-10 18:38) [5]

я, наверное, не ваш, но было дело :) для микросхем делали, когда-то.


 
oxffff ©   (2008-06-10 20:00) [6]


> Alkid   (10.06.08 17:31) [2]
> Какого?


Pascal подобного.
А что ты занимаешься разработкой нескольких? :)


 
blackman ©   (2008-06-10 20:14) [7]

Не баловался, но участвовал в ...
Ну и что же ? Все проходит. Пройдет и это :-)


 
tesseract ©   (2008-06-10 20:18) [8]


> разработкой интрепретатора балуюсь. Для обработки игровых
> скриптов.


тогда тебе дорога в LUA.


 
oxffff ©   (2008-06-10 20:22) [9]


> Mystic ©   (10.06.08 18:37) [4]
> Дальше синтаксического анализа не заходил. Был проект---
> компилятор асемблера.


Это было собственная реализация Lex и yacc? :)


 
programania   (2008-06-10 20:30) [10]

разработкой интрепретатора баловался.
Сделал для языка типа javaScript, однако уже на java, зато с исходным текстом:
http://programania.com/j
интрепретатор прост и занимает около 500 строк


 
oxffff ©   (2008-06-10 20:42) [11]

Качну source free pascal. Посмотрю.


 
DVM ©   (2008-06-10 20:59) [12]


> oxffff ©   (10.06.08 20:42) [11]
>
> Качну source free pascal. Посмотрю.

Качни книгу дракона лучше, если уже не скачал.


 
DVM ©   (2008-06-10 21:06) [13]


> oxffff ©   (10.06.08 20:42) [11]

Название: Компиляторы. Принципы, технологии, инструменты
Автор: Альфред Ахо, Рави Сети, Джеффри Ульман
Издательство: Вильямс
Год: 2003
Страниц: 768
Формат: djvu
Размер: 5925 KB
ISBN: 5-8459-0189-8, 0-201-10088-6

http://www.infanata.org/computers/prog/1146096903-kompiljatory.-principy-tekhnologii.html


 
@!!ex ©   (2008-06-10 21:14) [14]

> [8] tesseract ©   (10.06.08 20:18)
> тогда тебе дорога в LUA.

Спасибо не надо.


 
tesseract ©   (2008-06-10 21:17) [15]


> Спасибо не надо.


Зря, тысячи разработчков игр в течении 15 лет ошибаться не могут.


 
@!!ex ©   (2008-06-10 21:22) [16]

> [15] tesseract ©   (10.06.08 21:17)

Тысячи используют, тысячи не используют.


 
tesseract ©   (2008-06-10 21:44) [17]


> Тысячи используют, тысячи не используют.


Baldur"s Gate, GTA, Scrapland  и тд - этот язык создан для GameDev. Зачем велосипед изобретать ?


 
@!!ex ©   (2008-06-10 21:54) [18]

> [17] tesseract ©   (10.06.08 21:44)

Source, SurMap и т.д. изобретают велосипед.
Зачем вообще что-то писать, все уже написано до нас.


 
oxffff ©   (2008-06-10 22:05) [19]


> DVM ©   (10.06.08 20:59) [12]
>
> > oxffff ©   (10.06.08 20:42) [11]
> >
> > Качну source free pascal. Посмотрю.
>
> Качни книгу дракона лучше, если уже не скачал.


Скачал давно.
Купил и перечитываю бумажный вариант на работе в свободное время. :)


 
oxffff ©   (2008-06-10 22:09) [20]


> DVM ©   (10.06.08 21:06) [13]


Уже даже нашел несколько опечаток. Хотя это может перевод такой русский.


 
DVM ©   (2008-06-10 22:32) [21]


> oxffff ©  

Еще вот такое есть: "Пишем компилятор" Д.Креншоу. Там вроде даже на паскале компилятор ваяется в течение всей книги.


 
oxffff ©   (2008-06-10 22:59) [22]


> DVM ©   (10.06.08 22:32) [21]
>
> > oxffff ©  
>
> Еще вот такое есть: "Пишем компилятор" Д.Креншоу. Там вроде
> даже на паскале компилятор ваяется в течение всей книги.
>


Спасибо.


 
modd   (2008-06-11 01:12) [23]


> Baldur"s Gate, GTA, Scrapland  и тд - этот язык создан для
> GameDev. Зачем велосипед изобретать ?


А где в GTA используется LUA?


 
@!!ex ©   (2008-06-11 07:49) [24]

> [23] modd   (11.06.08 01:12)

Вроде начиная с SA перешли на Lua.


 
Alkid   (2008-06-11 10:07) [25]


> Pascal подобного.
> А что ты занимаешься разработкой нескольких? :)

Сейчас нет, но вообще увлекался подобной тематикой. Восновном разные скиптовые интерпретаторы, один раз написал Java-подобный язык с комиляцией и байткод и вирт. машину для него. Недавно написал заготовочку небольшую для Пролог-подобного языка с Lisp-овским синтаксисом (он парсится проще :) ).
Все такие разработки вёл исключительно в плане хобби, на работе таких интересных задач не было никогда :(


 
oxffff ©   (2008-06-11 10:32) [26]


> Все такие разработки вёл исключительно в плане хобби, на
> работе таких интересных задач не было никогда :(


У меня к сожалению увы тоже на работе такого не будет.


 
Alkid   (2008-06-11 10:47) [27]


> У меня к сожалению увы тоже на работе такого не будет.

А с какой целью ты занимаешься подобными вещами?
Я сейчас размышляю над новым языком программирования и, возможно, буду делать некоторые прототипы. Но у меня цель не создать софт обладающий production quality, а самому понять некоторые вещи из области программирования. Т.е. цель - личное просветление.


 
grisme   (2008-06-11 11:46) [28]

на днях видел второе издание драконовской книги. интересно, что изменилось, кроме оформления.
цена ~1800 р. точно не помню, близко к 2k.


 
Mystic ©   (2008-06-11 11:55) [29]

По поводу Ахо и Ульмана, мне  больше нравится более старое издание (теория синтаксического анализа, перевода и компиляции). Там хоть все доказательства приведены :)

> Это было собственная реализация Lex и yacc? :)

Нет, это был проект с использованием LEX + YACC


 
oxffff ©   (2008-06-11 12:15) [30]


> Mystic ©   (11.06.08 11:55) [29]


Я уже удостоверился своими глазами. Издание 2003.
Перечитал около 10 раз раздел о преобразовании рег.выр. напрямую в ДКА. А именно 2 правила для выяснения followpos.
И реально написано неправильно стр 147.

Зашел на citforum вот там правильный вариант.

1. Пусть n - внутренний узел с операцией . (конкатенация), u и v - его потомки. Тогда для каждой позиции i, входящей в lastpos(u), добавляем к множеству значений followpos(i) множество firstpos(v).

2. Пусть n - внутренний узел с операцией * (итерация), u - его потомок. Тогда для каждой позиции i, входящей в lastpos(u), добавляем к множеству значений followpos(i) множество firstpos(u).


 
oxffff ©   (2008-06-11 12:20) [31]


> Alkid   (11.06.08 10:47) [27]
>
> > У меня к сожалению увы тоже на работе такого не будет.
>
>
> А с какой целью ты занимаешься подобными вещами?
> Я сейчас размышляю над новым языком программирования и,
> возможно, буду делать некоторые прототипы. Но у меня цель
> не создать софт обладающий production quality, а самому
> понять некоторые вещи из области программирования. Т.е.
> цель - личное просветление.


Сейчас исключительно для личного просветвления. :)


 
Alkid   (2008-06-11 17:14) [32]


> Сейчас исключительно для личного просветвления. :)

Просветление по части компиляторов или языков программирования?


 
oxffff ©   (2008-06-11 22:24) [33]


> Alkid   (11.06.08 17:14) [32]
>
> > Сейчас исключительно для личного просветвления. :)
>
> Просветление по части компиляторов или языков программирования?
>


Просветвление в области существующих подходов к процессу компилирования и языкостроению для дальнейшего развития существующих идей и синтеза новых приминительно преимущественно к языку Pascal.


 
ketmar ©   (2008-06-13 17:46) [34]

>[33] oxffff © (2008-06-11 22:24:00)
>Просветвление в области существующих подходов к процессу компилирования и
>языкостроению для дальнейшего развития существующих идей и синтеза новых
>приминительно преимущественно к языку Pascal.

omfb…

---
Understanding is not required. Only obedience.


 
oxffff ©   (2008-06-13 17:58) [35]


> ketmar ©   (13.06.08 17:46) [34]


Не затруднит перевести?


 
ketmar ©   (2008-06-13 18:14) [36]

>[35] oxffff © (2008-06-13 17:58:00)
>Не затруднит перевести?
вот именно это оно и значит. %-)

---
All Your Base Are Belong to Us


 
oxffff ©   (2008-06-13 18:26) [37]


> ketmar ©   (13.06.08 18:14) [36]


Все предельно просто.
И средств для .net я бы выбрал Oxynege от Remobjects.
А поскольку переход на .NET у меня в планах нет.
И новых выразительных средств в Object Pascal не вводят.
Я действительно не вижу смысла усложнять себе жизнь отсутствием
синтаксического сахара.
То придется варить сахар самому.


 
ketmar ©   (2008-06-14 16:43) [38]

>[37] oxffff © (2008-06-13 18:26:00)
>Я действительно не вижу смысла усложнять себе жизнь отсутствием
>синтаксического сахара.
>То придется варить сахар самому.

а зачем для этого компилятор? O_O
вполне достаточно (если хочется универсальности) расфигачить исходник на AST, и потом с AST развлекаться. а потом собрать назад и отдать компилятору.
в качестве инструмента взять тот же LISP, например. парзер пишется руками за пол-дня, а дальше уже пинаешь лисповые списки. делов…

я вот на Lua писал парзер Object Pascal. точнее, парзер констант, структур и определений функций. нужно было для генерации модулей импорта на той же Lua. ничего, windows.pas распарзило. собственно, туда дописать ещё чуть-чуть кода — и готовый генератор AST.

---
All Your Base Are Belong to Us


 
oxffff ©   (2008-06-14 16:52) [39]


> вполне достаточно (если хочется универсальности) расфигачить
> исходник на AST, и потом с AST развлекаться. а потом собрать
> назад и отдать компилятору.


Нечто подобное я и предполагаю.
Хотя подозреваю, что совсем скоро мне точно захочется капнуть поглубже.
Поэтому хочется прочуствовать весь процесс на собственной шкуре.


 
ketmar ©   (2008-06-14 17:06) [40]

>[39] oxffff © (2008-06-14 16:52:00)
ну вот с AST и начни. потом заменишь backend на вывод не исходного кода, а кода для какой-нибудь VM — будет компилятор. потом на вывод IR, например, а по IR — оптимизациям, а потом — код VM. и будет оптимизирующий компилятор. потом из IR можно формировать SSA и пускать оптимизатор на нём — получится «продвинутый» оптимизирующий компилятор.

а потом ты огладишь рукой седую патриаршью бороду и скажешь: «будь проклят тот день, когда я сел за баранку этого [censored]…»

---
Understanding is not required. Only obedience.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.008 c
11-1191046802
Vladimir Kladov
2007-09-29 10:20
2008.07.27
Версия 2.81


15-1213034385
cosinus
2008-06-09 21:59
2008.07.27
Подскажите идею по реализации задачи.


15-1212834620
Kostafey
2008-06-07 14:30
2008.07.27
С днем рождения ! 7 июня


4-1193385687
leonidus
2007-10-26 12:01
2008.07.27
Drag файла на TImage


15-1212446696
alex-drob
2008-06-03 02:44
2008.07.27
Где написать код, чтобы он выполнился после загрузки программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский