Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.019 c
2-1214540511
alex810
2008-06-27 08:21
2008.07.27
Ошибка при подключении


2-1214401410
Makaveli
2008-06-25 17:43
2008.07.27
WinInet и HttpSendRequest


2-1214466122
programmer90
2008-06-26 11:42
2008.07.27
импорт из Excel


15-1212514820
olevacho_
2008-06-03 21:40
2008.07.27
инструменты создания отчетов для полиграфии


15-1213178784
Омлет
2008-06-11 14:06
2008.07.27
Программа для работы с гениалогическим древом