Что такое PaxCompiler

zNk

Member
Joined
Aug 5, 2007
Messages
55
Reaction score
17
Собсно вопрос: Что такое PaxCompiler?

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

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

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

Sparta

Member
Joined
Oct 5, 2008
Messages
14
Reaction score
4
Age
33
Да, забавный вопрос.
Если в своих неких разработках не пытаетесь ввести обработку скриптов (язык - выбор), не стоит вопрос с учетом мнения начальства - вытащщщить данные, где еще отчеты не были предусмотрены, то в принципе любой транслятор - это не для ВАС. Трансляторы - это некая свобода уйти от ограничения исполняемых файлов (учитывая, что на чем-то полную версию даже Вашего продукта установить Вы не можете).

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

Sparta

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

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Если кто-то может написать расширенное описание по этому поводу, то это было бы полезно всем. Все остальное - пожалуйста во флейме.

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

Sparta

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

Sacrator

Member
Joined
May 19, 2009
Messages
6
Reaction score
4
Age
45
Если вдруг найдутся люди, которые возьмутся за "расширенное описание по этому поводу", хотелось бы увидеть сравнительные характеристики различных компонентов для создания скриптов.

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

Shevyakov

New member
Joined
Jun 18, 2009
Messages
1
Reaction score
28
Age
56
Про 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 является Барановский Александр проживающий в городе Донецке ныне самостийной Украины. Мовой не балуется, русский разумеет в полном объеме, в связи с чем способен оказывать техподдержку зарегистрированных пользователей на всем нам хорошо понятном РУССКОМ языке.

Ну вот и все. Если у кого возникли вопросы, милости просим: [email protected]
 
Last edited by a moderator:

coolfox

New member
Joined
Apr 19, 2009
Messages
3
Reaction score
0
Age
34
это забавно всё, и делая вывод то можно понять что не нада толком и дельфин если можно сделать под себя компилятор?)))

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

AlexPirate

Member
Joined
Oct 27, 2008
Messages
6
Reaction score
0
Позвольте поднять тему.

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

megaevgen

Member
Joined
May 5, 2009
Messages
17
Reaction score
0
Age
34
Очень даже можно. Но только с версии 2.7 вроде
 

mc_vlad2000

Member
Joined
Jun 13, 2007
Messages
10
Reaction score
0
Age
42
Location
Cherkassy
с помошью paxcompiler делать можно почти все особено класно делать маленькие игры РПГные
 

AlexPirate

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

basa1995

New member
Joined
Jun 9, 2015
Messages
2
Reaction score
0
возможность сохранения вызова формы, отчета или некоей процедуры обработки данных в текстовом поле в базе данных (для пользования конкретным пользователем скажем в зависимости от уровня доступа, обученности и т.д.)
 

nikatinch

New member
Joined
May 9, 2015
Messages
4
Reaction score
0
под XE8 совершенно не рабочий продукт, элементарный пример вызывает access violation. поддержка продукта только на словах, очень не советую!
 

Kustarnik

Member
Joined
Sep 21, 2007
Messages
8
Reaction score
0
Собсно вопрос: Что такое PaxCompiler?

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

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

Заранее спасибо за ответы на мои вопросы...
Это компилятор кода. Удобно использовать например для гибкой обработки данных, массивов данных, реализацией новых функций по обработке данных без перекомпиляции основного приложения.
 
Top