Бинарная совместимость Free Pascal с Delphi

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Бинарная совместимость Free Pascal с Delphi

Сообщение Softwarer » 27.04.2007 18:25:45

Джентльмены, прошу консультации по продукту.

Ситуация такова: есть старое приложение, написанное на Delphi, с большим количеством скриптового кода, исполняемого через полусамодельный интерпретатор. Скрипты активно используют VCL: строят и наполняют формы итп. Это приложение готовится к кардинальной переделке, в частности, стоит задача ускорения работы скриптов.

Проблему ускорения хочется решить кардинально, перейдя к runtime компиляции. Для этого рассматриваются разные варианты, натыкающиеся на разные проблемы. Один из вариантов - остаться на W32, найдя или доработав подходящий встраиваемый компилятор.

Собственно вопрос: может ли Free Pascal выступить в таком качестве? Cможет ли он сгенерировать код, совместимый с дельфовым, обращающийся к дельфовым компонентом, наследующийся от дельфовых форм итп? Подразумевается возможность применения некоторого разумного количества сил - скажем, в пределах человеко-месяца - на "доработку напильником".
Softwarer
незнакомец
 
Сообщения: 2
Зарегистрирован: 27.04.2007 18:03:46

Сообщение Sergei I. Gorelkin » 27.04.2007 20:05:17

Интересный вопрос... Ответ "в лоб" - нет. У FPC отличается структура RTTI и совершенно другой рантайм.
С другой стороны - если оставить в стороне лицензионную чистоту вопроса - то VCL компилируется из исходников с помощью FPC после буквально получасовой доработки. И потом работает.
С третьей стороны - структура RTTI Дельфей не является тайной за семью печатями, и, например, в JVCL есть модули, которые занимаются построением RTTI в рантайме.

Наконец - лично я вообще с трудом представляю себе использование полноценного компилятора для работы со скриптами. Ему ведь надо, считай, всю VCL плюс исходники собственной программы на вход скормить, чтобы он сгенерировал правильный код для чего-то типа Form1.Visible := True
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Slavikk » 28.04.2007 09:23:02

Скрипты работать будут, но интерпретатор придется переписывать с нуля :-))). А ускорение работы - это дела прямых рук. пары чертежей и тонны литературы :-)))
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

Сообщение Softwarer » 28.04.2007 11:30:32

Sergei I. Gorelkin писал(а):С другой стороны - если оставить в стороне лицензионную чистоту вопроса

Оставить ее в стороне не удастся. Да и полностью переходить на новый компилятор - вопрос, требующий аккуратности; более вероятно, что в этом случае перейдем на Delphi for .NET

Sergei I. Gorelkin писал(а):С третьей стороны - структура RTTI Дельфей не является тайной за семью печатями,

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

Sergei I. Gorelkin писал(а):Наконец - лично я вообще с трудом представляю себе использование полноценного компилятора для работы со скриптами.

Альтернативы не лучше. Транслятор - такая вещь, что надо или садиться и делать хорошо, или не делать. Со "сделанным быстро" здесь уже помучались.

Sergei I. Gorelkin писал(а):Ему ведь надо, считай, всю VCL плюс исходники собственной программы на вход скормить,

Ну, не всю VCL, только интерфейсы нужных частей.
Softwarer
незнакомец
 
Сообщения: 2
Зарегистрирован: 27.04.2007 18:03:46

Сообщение Sergei I. Gorelkin » 28.04.2007 20:21:42

Softwarer писал(а):
Sergei I. Gorelkin писал(а):С третьей стороны - структура RTTI Дельфей не является тайной за семью печатями,

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

Нууу... перепилить компилятор не реально, понятное дело. Я имел в виду создание прослойки, которую можно будет использовать как из FPC, так и из VCL.

Softwarer писал(а):Альтернативы не лучше. Транслятор - такая вещь, что надо или садиться и делать хорошо, или не делать. Со "сделанным быстро" здесь уже помучались.


Сложно рассуждать, не имея представления о том, с какой скоростью работает сейчас, и о том, какую хочется получить. К примеру, тот же Перл не компилирует в машинный код, но при этом обладает вполне приемлемым (для своих задач) быстродействием. Если подобный подход приемлем для данного случая, то от FPC можно взять front-end (парсер + анализатор, они достаточно хорошо отделены от кодогенератора).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru