Что такое PaxCompiler

zNk

Турист
Собсно вопрос: Что такое PaxCompiler?

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

Собственно ещё по нему вопросы:
1. Это компилятор программ?
2. Для чего его исползуют/можно использовать?

Заранее спасибо за ответы на мои вопросы...
 

sparta

Турист
Да, забавный вопрос.
Если в своих неких разработках не пытаетесь ввести обработку скриптов (язык - выбор), не стоит вопрос с учетом мнения начальства - вытащщщить данные, где еще отчеты не были предусмотрены, то в принципе любой транслятор - это не для ВАС. Трансляторы - это некая свобода уйти от ограничения исполняемых файлов (учитывая, что на чем-то полную версию даже Вашего продукта установить Вы не можете).

Забавно, день не задался - краткий ответ - :)))
 
  • Like
Reactions: zNk

sparta

Турист
А вообще в чем плюс интерпретаторов: возможность сохранения вызова формы, отчета или некоей процедуры обработки данных в текстовом поле в базе данных (для пользования конкретным пользователем скажем в зависимости от уровня доступа, обученности и т.д.).
Минус - естественно ограниченность в использовании сторонних объектов, сторонних расширенний языка (а ведь есть и такие). Как-то вот так.
Считаю - ИНТЕРПРЕТАТОРЫ в теле вашей программы имеют право на жизнь. Они не продлевают, а расширяют возможности и увеличивают прикладность ваших программ.
Понимайте как надо оооооо:)))
 

Ognev

Premium
Premium
Если кто-то может написать расширенное описание по этому поводу, то это было бы полезно всем. Все остальное - пожалуйста во флейме.

Спасибо за понимание.
 

sparta

Турист
К сожалению, сил хватает только на общие рассуждения.
Сам шел по пути наследования форм. Сейчас нет времени - "СЛОЖНО ЖИТЬ СТАЛО - МОЖЕТ ПОСЛЕДНИЙ РАЗ ПЬЕМ" ((С)"Теория запоя"). Извините за флуд и отсутствие конкретики.
 

Sacrator

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

Дело в том, что в своей программе использую FastScript. Сейчас скрипт разросся до примерно 20 тыс. строк и его компиляция происходит оооочень медленно (примерно 5 мин. на достаточно производительном компьютере). После загрузки скрипта он висит в памяти и код выполняется быстро. Но затяжной старт программы напрягает.
В связи с этим задумываюсь последнее время над переводом своей программы на другой скриптовый компонент. Процесс перевода сам по себе очень не простой: придётся перевести сам скрипт на другой язык + каким то образом подключить к новому скриптовому компоненту несколько десятков функций, хранящихся в dll-ках. Чтобы эта работа не прошла в пустую хотелось бы услышать мнения людей о других скриптовых компонентах - насколько быстро они работают со скриптами больших размеров.
 

Shevyakov

Турист
Про PaxCompiler

Ну как всегда на форумах - конкретный вопрос, а в ответ масса флудеров вообще слабо понимающих о чем идет речь.
Особо припечатало:
Считаю - ИНТЕРПРЕТАТОРЫ в теле вашей программы имеют право на жизнь. Они не продлевают, а расширяют возможности и увеличивают прикладность ваших программ.
Так и хочется спросить: кто кого продлил и куда расширил и что у него из за этого увеличилось???

Ну а теперь про PaxCompiler и FastScript.
Являясь зарегистрированным пользователем и того и другого, поработав с данными продуктами не один год, написав при этом массу полезного и не очень кода, по существу могу заявить следующее:
во-первых, PaxCompiler является полноценным КОМПИЛЯТОРОМ, а не интерпретатором как FastScript, встроенный язык 1C и иже с ними. Для тех, кто не понял в чем тут фишка - поясню. Интерпретатор работает следующим образом:
- производит парсинг полученного скрипта
- создает промежуточный P-код в понятной для себя последовательности инструкций
- а за тем выполняет (интерпретирует) эти команды СРЕДСТВАМИ ЯЗЫКА ПРОГРАММИРОВАНИЯ на котором был написан.

в отличие от него компилятор делает следующее:
- производит парсинг полученного скрипта
- создает набор команд для CPU вашего компьютера
- далее полученный двочный код выполняет процессор, так же, как он выполняет команды содержащиеся в EXE файле.

Так вот, FastScript это интерпретатор, а PaxCompiler компилятор (что вроде как и следует из названий данных продуктов). Поэтому сравнивать их всё равно что сравнивать Хаммер с Запорожцем. Ну раз просили, извольте. Возьмем простой Pascal script:
------------------------------------
var
i, j: integer;
c: TComponent;
begin
c := TComponent.Create(nil);
for i := 0 to 500000 do
if c.Tag = 0 then
begin
c.Tag := 0;
c.Name := 'a';
end;
c.Free;
end.
---------------------------------------
Как видите, ничего особого он не делает, но зато в цикле выполняет полмиллиона итераций подгружая работой процессор вашего компьютера. Выполним этот скрипт с помощью Delphi, PaxCompiler и FastScript и измерим время выполнения в тактах CPU.
На моем компьютере (Pentium IV Core Duo 2.2Ггц ) результаты следующие:
Delphi 2009 - 15 тактов
PaxCompiler - 78 тактов
FastScript - 1625 тактов
на мой взгляд, в плане производительности, PaxCompiler побеждает FastScript накаутом.

Но это еще не все. Очень важно не только то, насколько быстро работает тот или иной продукт, но и что он при этом может делать.

Вот официальное описание возможностей FastScript с сайта производителя:

поддержка OLE
variant массивы
мультиязычная архитектура, позволяющая использовать множество языков (в настоящее время - PascalScript, C++Script, JScript, BasicScript). Можете добавлять любые другие процедурно-ориентированные языки (их описание хранится в XML-формате)
возможность создания и исполнения многоязычных скриптов
стандартный языковой набор: переменные, константы, процедуры, функции (с возможностью вложенности) с переменными/постоянными/умалчиваемыми параметрами, все стандартные операторы и объявления (включая case, try/finally/except, with), типы (целый, дробный, логический, символьный, строковый, многомерные массивы, множество, универсальный тип), классы (с методами, событиями, свойствами, индексами и свойствами по умолчанию).
проверка совместимости типов.
доступ к любому объекту вашего приложения. Стандартные библиотеки для доступа к базовым классам, контролам, формам и БД. Легко расширяемая архитектура библиотеки.

Звучит вроде бы неплохо.... Но тут вопрос не в том что может FastScript, а в том чего он не может. А не может он следующее:
- объявлять в теле скрипта собственные типы (классы и record записи)
- не работает с типом Pointer
- не поддерживает множества
И НИКОГДА этому не научится. Потому что создавался как прикладуха для FastReport, всё что для этого продукта требовалось разработчики в FastScript уже воплотили и дальше развивать его не видят смысла. По крайней мере так меня официально заверил представитель компании FastRepot на одной из презентаций Delphi 2007. Оснований ему не доверять у меня нет, так как почитай второй год пошел, а в FastScript не одной существенной доделки так и не появилось.

Законный вопрос, ну а что может PaxCompiler?
Отвечу вопросом на вопрос: C Delphi 7 работали? Так вот, PaxCompiler может ровно всё то, что реализовано в языке Object Pascal данной версии и даже немного более.
Например поддерживает инструкции пространства имен (NameSpace) в Delphi данное объявление появилось только с версии Delphi 2005.
Кроме того, умеет загружать DFM файлы, что позволяет включать в скрипты формы написанные в Delphi, но это уже пожалуй не скрипты а полноценные программы....

Ну а лучше самим один раз увидеть, чем десять раз услышать:
FastScript - www.fast-report.ru
PaxCompiler - www.paxcompiler.com

Кстати, разработчиком PaxCompiler является Барановский Александр проживающий в городе Донецке ныне самостийной Украины. Мовой не балуется, русский разумеет в полном объеме, в связи с чем способен оказывать техподдержку зарегистрированных пользователей на всем нам хорошо понятном РУССКОМ языке.

Ну вот и все. Если у кого возникли вопросы, милости просим: vlad@coolman.ru
 
Last edited by a moderator:

coolfox

Турист
это забавно всё, и делая вывод то можно понять что не нада толком и дельфин если можно сделать под себя компилятор?)))

Добавлено через 3 минуты
это конешно же была шутка, но компонент то что надо=)
 
Last edited by a moderator:

AlexPirate

Турист
Позвольте поднять тему.

Можно ли с помощью PaxCompiler скомпилировать DLL с формой? Кто вкурсе?
 

mc_vlad2000

Турист
с помошью paxcompiler делать можно почти все особено класно делать маленькие игры РПГные
 

AlexPirate

Турист
Меня все-таки интересует, как с помощью PaxCompiler'а скомпилировать DLL с включенной в нее формой. Брал пример из демо (DemoDLL) - длл-ка компилируется и работает отлично. Но стоит только включить в нее модуль с формой, так сразу лезут ошибки и никак тольком не могу скомпилировать ее. Методом тыка дошел до того, что в модуле надо прописать конструктор для формы - только тогда худо-бедно получается скомпилировать длл. Но при выгрузке длл-ки валятся AV.
Кто может позсказать/помочь в этом вопросе, может есть у кого простой пример кода компиляции длл с формой? Буду весьма признателен. (На форуме оф.сайта пока тишина).
 

basa1995

Турист
возможность сохранения вызова формы, отчета или некоей процедуры обработки данных в текстовом поле в базе данных (для пользования конкретным пользователем скажем в зависимости от уровня доступа, обученности и т.д.)
 

nikatinch

Турист
под XE8 совершенно не рабочий продукт, элементарный пример вызывает access violation. поддержка продукта только на словах, очень не советую!
 
Top