Re[9]: Быстро превратить интерпретатор в компилятор
От: Lloyd Россия  
Дата: 18.01.10 16:00
Оценка:
Здравствуйте, x64, Вы писали:

L>>Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.


x64>Как вариант. Тот же C# можно взять


Ну это смотря какая платформа у программы. Если .Net, то можно и шарп взять.
Re[2]: просто любопытно
От: vbn2007 Россия  
Дата: 18.01.10 16:46
Оценка:
Здравствуйте, Temoto, Вы писали:

V>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".


T>А какой язык интерпретируете?


Свой. Си-подобный. В принципе, проблема уже снЯта.
Re[9]: Быстро превратить интерпретатор в компилятор
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.01.10 16:54
Оценка:
Здравствуйте, x64, Вы писали:

x64>Как вариант. Тот же C# можно взять


C# не надо, IL удобнее.
AVK Blog
Re[7]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 18.01.10 17:08
Оценка:
Здравствуйте, x64, Вы писали:

V>>Интерпретатор — строку за строкой читает и в реальном времени выдает окончательный результат.

V>>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код путем передачи управления на начало.

x64>Тебе нужно написать транслятор, т.е. некий конвертер, который будет создавать исполняемый .exe-файл на основе твоего макроязыка. Но за день ты это не напишешь, даже и не думай. Мануалы интеловские читать, формат PE-файлов учить и так далее. Здесь тебе не помогут с этим, если только сможешь сформулировать конкретные вопросы и с ними целенаправленно идти уже в профильные форумы.


Чудак ты Мне ниечего не нужно... Транслятор, что ты говоришь, я ужЕ давным-давно написал.
Ему уже лет с 20. Сейчас САМ высказался, что смогу увеличить скорострельность раз в 50.
Эту самолетная индустрия.
Re[9]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 18.01.10 17:11
Оценка:
Здравствуйте, x64, Вы писали:

L>>Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.


x64>Как вариант. Тот же C# можно взять


Слушай. А чьл ты имеешь в виду под ПРОФИЛЬНЫМИ форумами?
Я-то по глупости думал, что именно ЭТО и есть профильный форум.
Конференции что-ли? Англоязычные?
Сори — я весьма занят
Re[8]: Быстро превратить интерпретатор в компилятор
От: x64 Россия http://x64blog.name
Дата: 18.01.10 17:34
Оценка: +1
V>Мне ниечего не нужно...

Когда человеку ничего не нужно, ему остаётся только умереть.
JID: x64j@jabber.ru
Re[3]: просто любопытно
От: Temoto  
Дата: 18.01.10 17:35
Оценка:
V>>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".

T>>А какой язык интерпретируете?


V>Свой. Си-подобный. В принципе, проблема уже снЯта.


Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.
Re[10]: Быстро превратить интерпретатор в компилятор
От: x64 Россия http://x64blog.name
Дата: 18.01.10 17:36
Оценка:
V>Сори — я весьма занят

Сорри, я тоже.
JID: x64j@jabber.ru
Re[4]: просто любопытно
От: vbn2007 Россия  
Дата: 18.01.10 18:01
Оценка:
Здравствуйте, Temoto, Вы писали:

V>>>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".


T>>>А какой язык интерпретируете?


V>>Свой. Си-подобный. В принципе, проблема уже снЯта.


T>Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.


Документация, само собой, есть. Но ЗАЧЕМ ОНО вам? Языки сочиняются элементарно.
Тока подумай насчет того, что должен он выполнять. Например, здесь есть встроенные спец-функции,
это MARK(номер панели) = выдающая номер точки маркера, или SPNT(номер точки) = выдает вольтаж в заданной точке,
SELO(номер зоны) — номер точки начала заданной зоны.

В 1984 году к нам в институт прибыла машина PDP 11/23. Англичанин, продавший нам машину, приложил бесплатно 5-дюймовый диск с неким новым компайлером. Это был язык С. ЦЕ — как выражался тогда мой начальник отдела
Так вот, я восстановил этот компайлер и переписал его на Си. Кроме того, сразу же сделан был кросс-ассемблер на 8 языков микропроцессоров. Сори — слишком много воды с тех пор утекло Где они все — текстА???
Re[5]: просто любопытно
От: Temoto  
Дата: 18.01.10 18:11
Оценка:
T>>Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.

V>Документация, само собой, есть. Но ЗАЧЕМ ОНО вам? Языки сочиняются элементарно.

V>Тока подумай насчет того, что должен он выполнять. Например, здесь есть встроенные спец-функции,
V>это MARK(номер панели) = выдающая номер точки маркера, или SPNT(номер точки) = выдает вольтаж в заданной точке,
V>SELO(номер зоны) — номер точки начала заданной зоны.

Ясно, по уровню си-подобный. Такие не интересно.
Re: Быстро превратить интерпретатор в компилятор
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.01.10 18:37
Оценка:
Здравствуйте, vbn2007, Вы писали:

V>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор.


Есть такой подход "partial evaluation". Но для него нужно использовать язык поддерживающий метапрограммирование.
Например:
http://nemerle.org/Partial_evaluation
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Быстро превратить интерпретатор в компилятор
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.01.10 18:45
Оценка: +3
Здравствуйте, Alex Dav, Вы писали:

AD>вы меня извините — может я плохо учился в институте


100%!

AD>интерпретатор и компилятор — это одно и тоже — смысл перевода кода из одного языка в другой.


Полнейшая чушь!
Пруфлинк

Разница между компилятором и интерпретатором в том, что компилятор никогда не выполняет программу, а интерпретатор никогда ее не компилирует .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Быстро превратить интерпретатор в компилятор
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.01.10 18:48
Оценка: +2
Здравствуйте, Alex Dav, Вы писали:

V>>Насчет того, что интерпретатор и компайлер — одно и то же — Вы не правы

AD>ваше право так думать
AD>здесь

И что ты там нашел? Можно цитату?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Быстро превратить интерпретатор в компилятор
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.01.10 18:51
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>C# не надо, IL удобнее.


Удобнее?

Быстрее, гибче — возможно. Но не удобнее — это 100%.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Быстро превратить интерпретатор в компилятор
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.01.10 19:31
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Удобнее?


VD>Быстрее, гибче — возможно. Но не удобнее — это 100%.


Я писал компилятор — мне показалось удобнее. Хотя бы потому что стековая запись намного более удобна, нежели линейная у исходников на шарпе. В большинстве случаев там прям по мере обхода дерева генерятся инструкции в линейный список.
AVK Blog
Re[5]: Быстро превратить интерпретатор в компилятор
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 19.01.10 01:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Разница между компилятором и интерпретатором в том, что компилятор никогда не выполняет программу, а интерпретатор никогда ее не компилирует .


Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.
Re[6]: Быстро превратить интерпретатор в компилятор
От: ArtDenis Россия  
Дата: 21.01.10 15:47
Оценка:
Здравствуйте, vbn2007, Вы писали:

V>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код

Э-э... С каких это пор компиляторы выполняют скомпилированный код?
... << RSDN@Home 1.2.0 alpha 4 rev. 1324>>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[6]: Быстро превратить интерпретатор в компилятор
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.01.10 16:34
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.


Не не нужно. Это интерпретатор чистой воды. То что интерпретируется не исходный код, а промежуточное представление ничего не меняет.

На будущее. Интерпретация — это исполнение программы другой программой, а не процессором (железякой).
Вот компиляцией можно назвать и преобразование текста в байткод. Но если говорят о интерпретирующих и компилирующих ЯП или средах, то под компилятором обычно понимают нечто транслирующее код в нэйти-код процессора.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 21.01.10 19:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, D. Mon, Вы писали:


DM>>Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.


VD>Не не нужно. Это интерпретатор чистой воды. То что интерпретируется не исходный код, а промежуточное представление ничего не меняет.


VD>На будущее. Интерпретация — это исполнение программы другой программой, а не процессором (железякой).

VD>Вот компиляцией можно назвать и преобразование текста в байткод. Но если говорят о интерпретирующих и компилирующих ЯП или средах, то под компилятором обычно понимают нечто транслирующее код в нэйти-код процессора.

1) Сори, я не успел к сегодня: очень много работы. Основная книга — Руководство по Сопроцессору.
2) Насчет московского Гуггля — я не шутил о зарплатах. Им-то начхать ГДЕ платить. Было бы за что
3) Насчет московского не-Гуггля — кудата пропала инфа!
А я хотел и продолжить мысль. Ну пусть сейчас мы получаем копейки.
Но у нас в руках Советского качества ФОНДЫ. А это не есть уши от мертвого осла,
сами понимаете. Когда в помещении остались ты да я да мы с тобой — веселья маловато.
Но все же в НАШИХ руках Зарплата в 200 тыс. РУР в месяц — не за горами.
А сейчас что? Ну пусть 20 штук в месяц. На жизнь — вроде хватает.
Re[7]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 21.01.10 19:32
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, vbn2007, Вы писали:


V>>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код

AD>Э-э... С каких это пор компиляторы выполняют скомпилированный код?

А МОЙ — выполняет
Если всерьез — Вы правы, конечно же, ели строго.
Но я просто передаю управление на начало программы в буфере.
Как она завершается — уже не до компиляций
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.