Здравствуйте, x64, Вы писали:
L>>Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.
x64>Как вариант. Тот же C# можно взять
Ну это смотря какая платформа у программы. Если .Net, то можно и шарп взять.
Здравствуйте, Temoto, Вы писали:
V>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".
T>А какой язык интерпретируете?
Свой. Си-подобный. В принципе, проблема уже снЯта.
Re[9]: Быстро превратить интерпретатор в компилятор
Здравствуйте, x64, Вы писали:
V>>Интерпретатор — строку за строкой читает и в реальном времени выдает окончательный результат. V>>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код путем передачи управления на начало.
x64>Тебе нужно написать транслятор, т.е. некий конвертер, который будет создавать исполняемый .exe-файл на основе твоего макроязыка. Но за день ты это не напишешь, даже и не думай. Мануалы интеловские читать, формат PE-файлов учить и так далее. Здесь тебе не помогут с этим, если только сможешь сформулировать конкретные вопросы и с ними целенаправленно идти уже в профильные форумы.
Чудак ты Мне ниечего не нужно... Транслятор, что ты говоришь, я ужЕ давным-давно написал.
Ему уже лет с 20. Сейчас САМ высказался, что смогу увеличить скорострельность раз в 50.
Эту самолетная индустрия.
Re[9]: Быстро превратить интерпретатор в компилятор
Здравствуйте, x64, Вы писали:
L>>Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.
x64>Как вариант. Тот же C# можно взять
Слушай. А чьл ты имеешь в виду под ПРОФИЛЬНЫМИ форумами?
Я-то по глупости думал, что именно ЭТО и есть профильный форум.
Конференции что-ли? Англоязычные?
Сори — я весьма занят
Re[8]: Быстро превратить интерпретатор в компилятор
V>>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".
T>>А какой язык интерпретируете?
V>Свой. Си-подобный. В принципе, проблема уже снЯта.
Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.
Re[10]: Быстро превратить интерпретатор в компилятор
Здравствуйте, Temoto, Вы писали:
V>>>>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".
T>>>А какой язык интерпретируете?
V>>Свой. Си-подобный. В принципе, проблема уже снЯта.
T>Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.
Документация, само собой, есть. Но ЗАЧЕМ ОНО вам? Языки сочиняются элементарно.
Тока подумай насчет того, что должен он выполнять. Например, здесь есть встроенные спец-функции,
это MARK(номер панели) = выдающая номер точки маркера, или SPNT(номер точки) = выдает вольтаж в заданной точке,
SELO(номер зоны) — номер точки начала заданной зоны.
В 1984 году к нам в институт прибыла машина PDP 11/23. Англичанин, продавший нам машину, приложил бесплатно 5-дюймовый диск с неким новым компайлером. Это был язык С. ЦЕ — как выражался тогда мой начальник отдела
Так вот, я восстановил этот компайлер и переписал его на Си. Кроме того, сразу же сделан был кросс-ассемблер на 8 языков микропроцессоров. Сори — слишком много воды с тех пор утекло Где они все — текстА???
T>>Си-подобный по синтаксису или по семантике и уровню? Есть какая-то документация? Изучаю языки, интересно.
V>Документация, само собой, есть. Но ЗАЧЕМ ОНО вам? Языки сочиняются элементарно. V>Тока подумай насчет того, что должен он выполнять. Например, здесь есть встроенные спец-функции, V>это MARK(номер панели) = выдающая номер точки маркера, или SPNT(номер точки) = выдает вольтаж в заданной точке, V>SELO(номер зоны) — номер точки начала заданной зоны.
Здравствуйте, vbn2007, Вы писали:
V>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор.
Есть такой подход "partial evaluation". Но для него нужно использовать язык поддерживающий метапрограммирование.
Например: http://nemerle.org/Partial_evaluation
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Быстро превратить интерпретатор в компилятор
Здравствуйте, VladD2, Вы писали:
VD>Удобнее?
VD>Быстрее, гибче — возможно. Но не удобнее — это 100%.
Я писал компилятор — мне показалось удобнее. Хотя бы потому что стековая запись намного более удобна, нежели линейная у исходников на шарпе. В большинстве случаев там прям по мере обхода дерева генерятся инструкции в линейный список.
Здравствуйте, VladD2, Вы писали:
VD>Разница между компилятором и интерпретатором в том, что компилятор никогда не выполняет программу, а интерпретатор никогда ее не компилирует .
Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.
Re[6]: Быстро превратить интерпретатор в компилятор
Здравствуйте, vbn2007, Вы писали:
V>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код
Э-э... С каких это пор компиляторы выполняют скомпилированный код?
Здравствуйте, D. Mon, Вы писали:
DM>Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.
Не не нужно. Это интерпретатор чистой воды. То что интерпретируется не исходный код, а промежуточное представление ничего не меняет.
На будущее. Интерпретация — это исполнение программы другой программой, а не процессором (железякой).
Вот компиляцией можно назвать и преобразование текста в байткод. Но если говорят о интерпретирующих и компилирующих ЯП или средах, то под компилятором обычно понимают нечто транслирующее код в нэйти-код процессора.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Быстро превратить интерпретатор в компилятор
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, D. Mon, Вы писали:
DM>>Тогда срочно нужно новое слово для Питона, Руби 1.9, Луа и кучи других. Ибо они сперва компилируют (в байткод), а потом выполняют.
VD>Не не нужно. Это интерпретатор чистой воды. То что интерпретируется не исходный код, а промежуточное представление ничего не меняет.
VD>На будущее. Интерпретация — это исполнение программы другой программой, а не процессором (железякой). VD>Вот компиляцией можно назвать и преобразование текста в байткод. Но если говорят о интерпретирующих и компилирующих ЯП или средах, то под компилятором обычно понимают нечто транслирующее код в нэйти-код процессора.
1) Сори, я не успел к сегодня: очень много работы. Основная книга — Руководство по Сопроцессору.
2) Насчет московского Гуггля — я не шутил о зарплатах. Им-то начхать ГДЕ платить. Было бы за что
3) Насчет московского не-Гуггля — кудата пропала инфа!
А я хотел и продолжить мысль. Ну пусть сейчас мы получаем копейки.
Но у нас в руках Советского качества ФОНДЫ. А это не есть уши от мертвого осла,
сами понимаете. Когда в помещении остались ты да я да мы с тобой — веселья маловато.
Но все же в НАШИХ руках Зарплата в 200 тыс. РУР в месяц — не за горами.
А сейчас что? Ну пусть 20 штук в месяц. На жизнь — вроде хватает.
Re[7]: Быстро превратить интерпретатор в компилятор
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, vbn2007, Вы писали:
V>>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код AD>Э-э... С каких это пор компиляторы выполняют скомпилированный код?
А МОЙ — выполняет
Если всерьез — Вы правы, конечно же, ели строго.
Но я просто передаю управление на начало программы в буфере.
Как она завершается — уже не до компиляций