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

18.01.10 18:46: Перенесено модератором из 'О работе' — AndrewVK
Re: Быстро превратить интерпретатор в компилятор
От: VovkaMorkovka  
Дата: 17.01.10 01:13
Оценка:
Здравствуйте, vbn2007, Вы писали:

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


А вопрос в форуме "о работе" потому, что большинство в другие редко заглядывает?
Re[2]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 07:50
Оценка:
Здравствуйте, VovkaMorkovka, Вы писали:

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


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


VM>А вопрос в форуме "о работе" потому, что большинство в другие редко заглядывает?


Нет. Просто иконка была открыта на этом форуме.
Иконки либо команды ВНЕ како-го-либо форума не нашел.
Исправлюсь.
Re: Быстро превратить интерпретатор в компилятор
От: Alex Dav Россия  
Дата: 17.01.10 08:59
Оценка:
Здравствуйте, vbn2007, Вы писали:

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


а чем интерпертатор отличается от компилятор?
+ интерпертатор куда?
Re[2]: Быстро превратить интерпретатор в компилятор
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 17.01.10 09:23
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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


AD>а чем интерпертатор отличается от компилятор?

AD>+ интерпертатор куда?

а какая разница? главное же чтобы быстро...
... << RSDN@Home 1.2.0 alpha 4 rev. 1253>>
Re[3]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 09:27
Оценка:
Здравствуйте, Sanik, Вы писали:

S>Здравствуйте, Alex Dav, Вы писали:


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


AD>>а чем интерпертатор отличается от компилятор?

AD>>+ интерпертатор куда?

S>а какая разница? главное же чтобы быстро...


Да. Главное — чтобы БЫСТРО В общем нахождение ЗДЕСЬ, в разделе РАБОТА,
обусловлено примерно тем же, чем знаменит некий анекдот.
Президенты MS и GM раговаривают: второй ехидно замечает первому:
— Если бы мы должны были прежде чем заглушить движок нажать клавишу ПУСК
Re[2]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 09:29
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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


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


AD>а чем интерпертатор отличается от компилятор?

AD>+ интерпертатор куда?

Коды берутся и НА ЛЕТУ превращаются в ОБЪЕКТНЫЕ
Медленно очень. ОООЧЕНЬ.
Система сбора и обработки информации.
Re[3]: Быстро превратить интерпретатор в компилятор
От: FR  
Дата: 17.01.10 09:44
Оценка:
Здравствуйте, vbn2007, Вы писали:

V>Коды берутся и НА ЛЕТУ превращаются в ОБЪЕКТНЫЕ

V>Медленно очень. ОООЧЕНЬ.
V>Система сбора и обработки информации.

То есть JIT используется?
Если нет то может будет проще его прикрутить к интерпретатору?
Re[3]: Быстро превратить интерпретатор в компилятор
От: Alex Dav Россия  
Дата: 17.01.10 09:44
Оценка: -3
Здравствуйте, vbn2007, Вы писали:

V>Коды берутся и НА ЛЕТУ превращаются в ОБЪЕКТНЫЕ

V>Медленно очень. ОООЧЕНЬ.
V>Система сбора и обработки информации.

вы меня извините — может я плохо учился в институте — зато сам делал интерпретатор и немного учил англ. — интерпретатор и компилятор — это одно и тоже — смысл перевода кода из одного языка в другой. Как я понимаю вы хотите что бы этим конечным языком был машиный кода, а еще точнее вам нужен исполняемый файл — вот от сюда и надо бежать — берем что у вас получается на конце — асемблерный код? берете компилятор ассемблера (tasm к примеру) и через ком. строку компилите. Тоже делаете для других языков.
Re[4]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 11:22
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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


V>>Коды берутся и НА ЛЕТУ превращаются в ОБЪЕКТНЫЕ

V>>Медленно очень. ОООЧЕНЬ.
V>>Система сбора и обработки информации.

AD>вы меня извините — может я плохо учился в институте — зато сам делал интерпретатор и немного учил англ. — интерпретатор и компилятор — это одно и тоже — смысл перевода кода из одного языка в другой. Как я понимаю вы хотите что бы этим конечным языком был машиный кода, а еще точнее вам нужен исполняемый файл — вот от сюда и надо бежать — берем что у вас получается на конце — асемблерный код? берете компилятор ассемблера (tasm к примеру) и через ком. строку компилите. Тоже делаете для других языков.


Поясняю. Мне нужен код не в виде объектного кода в файле, а в буфере.
Дело в том, что бесконечный повтор пуш-попов бессмыслен абсолютно — если объем кода исполнения немаленький.
Если я запишу в память исполняемый код и затем просто передам управление первой команде из списка —
у меня будет просто ДИКАЯ экономия. В общем-то, в данном случае есть уже кой-какой опыт.
Но речь о создании кода для ДРАЙВЕРА, а здесь малость не то.
Там не было ПРОИЗВОЛЬНЫХ выражений справа ранее.
Насчет того, что интерпретатор и компайлер — одно и то же — Вы не правы
Re[5]: Быстро превратить интерпретатор в компилятор
От: Alex Dav Россия  
Дата: 17.01.10 11:50
Оценка:
Здравствуйте, vbn2007, Вы писали:

V>Поясняю. Мне нужен код не в виде объектного кода в файле, а в буфере.

V>Дело в том, что бесконечный повтор пуш-попов бессмыслен абсолютно — если объем кода исполнения немаленький.
V>Если я запишу в память исполняемый код и затем просто передам управление первой команде из списка -
V>у меня будет просто ДИКАЯ экономия. В общем-то, в данном случае есть уже кой-какой опыт.
V>Но речь о создании кода для ДРАЙВЕРА, а здесь малость не то.
V>Там не было ПРОИЗВОЛЬНЫХ выражений справа ранее.
честно говоря ничего не понял Наверное я сильно отстал в этом деле

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

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

но вы я так понимаю имеете ввиду это
здесь

ну а на мой взгляд это просто попытка разделить подчасти одного и того же используя разные слова при переводе на русский (ИМХО)
Re[6]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 11:54
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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


V>>Поясняю. Мне нужен код не в виде объектного кода в файле, а в буфере.

V>>Дело в том, что бесконечный повтор пуш-попов бессмыслен абсолютно — если объем кода исполнения немаленький.
V>>Если я запишу в память исполняемый код и затем просто передам управление первой команде из списка -
V>>у меня будет просто ДИКАЯ экономия. В общем-то, в данном случае есть уже кой-какой опыт.
V>>Но речь о создании кода для ДРАЙВЕРА, а здесь малость не то.
V>>Там не было ПРОИЗВОЛЬНЫХ выражений справа ранее.
AD>честно говоря ничего не понял Наверное я сильно отстал в этом деле

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

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

AD>но вы я так понимаю имеете ввиду это

AD>здесь

AD>ну а на мой взгляд это просто попытка разделить подчасти одного и того же используя разные слова при переводе на русский (ИМХО)


Да аб чем базар-та?
Мне просто нужно к завтрему сделать бы код, который будет раз в 50 быстрее исполняться,
чем если без конца перекидывать токены туда-сюда
Re[4]: Быстро превратить интерпретатор в компилятор
От: techgl  
Дата: 17.01.10 17:02
Оценка:
Здравствуйте, Alex Dav, Вы писали:

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

Интерпретатор исполняет код, он не одно и тоже с компилятором.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Быстро превратить интерпретатор в компилятор
От: vbn2007 Россия  
Дата: 17.01.10 17:10
Оценка:
Здравствуйте, techgl, Вы писали:

T>Здравствуйте, Alex Dav, Вы писали:


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

T>Интерпретатор исполняет код, он не одно и тоже с компилятором.

Поясняю. Есть некий файл, содержащий команлы.
Интерпретатор — строку за строкой читает и в реальном времени выдает окончательный результат.
Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код путем передачи управления на начало.
Re[5]: Быстро превратить интерпретатор в компилятор
От: Alex Dav Россия  
Дата: 17.01.10 17:34
Оценка:
Здравствуйте, techgl, Вы писали:

T>Здравствуйте, Alex Dav, Вы писали:


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

T>Интерпретатор исполняет код, он не одно и тоже с компилятором.

код исполняет виртуальная машина Java, .net framework, OS, а интерпретатор — то что я сказал. Но как я понял автору нужен интерпретатор (компилятор) с пошаговым исполением.
Re[6]: Быстро превратить интерпретатор в компилятор
От: x64 Россия http://x64blog.name
Дата: 18.01.10 14:35
Оценка: +1
V>Интерпретатор — строку за строкой читает и в реальном времени выдает окончательный результат.
V>Компилятор же хитрее: он сначала компилирует тестовую прогпрорамму команд в некий объектный код, а затем уже выполняет уже откомпилированный код путем передачи управления на начало.

Тебе нужно написать транслятор, т.е. некий конвертер, который будет создавать исполняемый .exe-файл на основе твоего макроязыка. Но за день ты это не напишешь, даже и не думай. Мануалы интеловские читать, формат PE-файлов учить и так далее. Здесь тебе не помогут с этим, если только сможешь сформулировать конкретные вопросы и с ними целенаправленно идти уже в профильные форумы.
JID: x64j@jabber.ru
Re[7]: Быстро превратить интерпретатор в компилятор
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.01.10 15:49
Оценка:
Здравствуйте, x64, Вы писали:

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


Ну, если его устроит любая современная VM, то может и не надо. А можно и без, при помощи хотя бы моновсгого АОТ компайлера.
AVK Blog
Re: просто любопытно
От: Temoto  
Дата: 18.01.10 15:52
Оценка:
V>Есть уже отлаженный вполне интерпертатор. Для ускорения его работы мне нужно быстро-пребыстро переделать его в компилятор. Есть несколько функций для каждой parse: push, pop, reduce, shift, gotostate. Я обратился сюда, чтобы сэкономить время: возможно мне просто посоветуют, какие функции из перечисленных нужно изменить. Экономия времени порядка недели. yacc порождает порядка 25 штук вызовов упомянутых функций для простого синтаксического разбора "=0".

А какой язык интерпретируете?
Re[7]: Быстро превратить интерпретатор в компилятор
От: Lloyd Россия  
Дата: 18.01.10 15:53
Оценка:
Здравствуйте, x64, Вы писали:

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


Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.
Re[8]: Быстро превратить интерпретатор в компилятор
От: x64 Россия http://x64blog.name
Дата: 18.01.10 15:56
Оценка:
L>Не обязательно так глубоко лезть. Достаточно транслировать в какой-либо другой компилируемый язык, например в C. А уже потом компилировать C используя сторонний компилятор.

Как вариант. Тот же C# можно взять
JID: x64j@jabber.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.