Что такое PaxCompiler

  • Автор темы zNk
  • 7451
  • Обновлено
  • 08, May 2009
  • #1
Собсно вопрос: Что такое PaxCompiler? Это конечно глупый вопрос, но и тем не менее я с английским плохо дружу и меня интерисует этот компонент.
Собственно ещё по нему вопросы: 1. Это компилятор программ? 2. Для чего его исползуют/можно использовать?
Заранее спасибо за ответы на мои вопросы...

zNk


Рег
05 Aug, 2007

Тем
1

Постов
3

Баллов
13
  • 08, May 2009
  • #2
Да, забавный вопрос. Если в своих неких разработках не пытаетесь ввести обработку скриптов (язык - выбор), не стоит вопрос с учетом мнения начальства - вытащщщить данные, где еще отчеты не были предусмотрены, то в принципе любой транслятор - это не для ВАС.

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

sparta


Рег
05 Oct, 2008

Тем
0

Постов
5

Баллов
5
  • 15, Jun 2009
  • #3
А вообще в чем плюс интерпретаторов: возможность сохранения вызова формы, отчета или некоей процедуры обработки данных в текстовом поле в базе данных (для пользования конкретным пользователем скажем в зависимости от уровня доступа, обученности и т.д.).

Минус - естественно ограниченность в использовании сторонних объектов, сторонних расширенний языка (а ведь есть и такие). Как-то вот так.

Считаю - ИНТЕРПРЕТАТОРЫ в теле вашей программы имеют право на жизнь.

Они не продлевают, а расширяют возможности и увеличивают прикладность ваших программ.

Понимайте как надо оооооо:-)))
 

sparta


Рег
05 Oct, 2008

Тем
0

Постов
5

Баллов
5
  • 15, Jun 2009
  • #4
Если кто-то может написать расширенное описание по этому поводу, то это было бы полезно всем. Все остальное - пожалуйста во флейме. Спасибо за понимание.
 

Ognev


Рег
20 Aug, 2004

Тем
8

Постов
99

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

sparta


Рег
05 Oct, 2008

Тем
0

Постов
5

Баллов
5
  • 16, Jun 2009
  • #6
Если вдруг найдутся люди, которые возьмутся за "расширенное описание по этому поводу", хотелось бы увидеть сравнительные характеристики различных компонентов для создания скриптов. Дело в том, что в своей программе использую FastScript.

Сейчас скрипт разросся до примерно 20 тыс.

строк и его компиляция происходит оооочень медленно (примерно 5 мин.

на достаточно производительном компьютере). После загрузки скрипта он висит в памяти и код выполняется быстро.

Но затяжной старт программы напрягает. В связи с этим задумываюсь последнее время над переводом своей программы на другой скриптовый компонент.

Процесс перевода сам по себе очень не простой: придётся перевести сам скрипт на другой язык + каким то образом подключить к новому скриптовому компоненту несколько десятков функций, хранящихся в dll-ках.

Чтобы эта работа не прошла в пустую хотелось бы услышать мнения людей о других скриптовых компонентах - насколько быстро они работают со скриптами больших размеров.
 

Sacrator


Рег
19 May, 2009

Тем
0

Постов
2

Баллов
2
  • 18, Jun 2009
  • #7
Про 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]
 

Shevyakov


Рег
18 Jun, 2009

Тем
1

Постов
2

Баллов
12
  • 03, Sep 2009
  • #8
это забавно всё, и делая вывод то можно понять что не нада толком и дельфин если можно сделать под себя компилятор?)))
это конешно же была шутка, но компонент то что надо=)
 

coolfox


Рег
19 Apr, 2009

Тем
0

Постов
2

Баллов
2
  • 14, Jan 2011
  • #9
Позвольте поднять тему. Можно ли с помощью PaxCompiler скомпилировать DLL с формой? Кто вкурсе?
 

AlexPirate


Рег
27 Oct, 2008

Тем
1

Постов
6

Баллов
16
  • 20, Jan 2011
  • #10
с помошью paxcompiler делать можно почти все особено класно делать маленькие игры РПГные
 

mc_vlad2000


Рег
13 Jun, 2007

Тем
0

Постов
2

Баллов
2
  • 24, Jan 2011
  • #11
Меня все-таки интересует, как с помощью PaxCompiler'а скомпилировать DLL с включенной в нее формой.

Брал пример из демо (DemoDLL) - длл-ка компилируется и работает отлично.

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

Но при выгрузке длл-ки валятся AV. Кто может позсказать/помочь в этом вопросе, может есть у кого простой пример кода компиляции длл с формой? Буду весьма признателен.

(На форуме оф.сайта пока тишина).
 

AlexPirate


Рег
27 Oct, 2008

Тем
1

Постов
6

Баллов
16
  • 09, Jun 2015
  • #13
возможность сохранения вызова формы, отчета или некоей процедуры обработки данных в текстовом поле в базе данных (для пользования конкретным пользователем скажем в зависимости от уровня доступа, обученности и т.д.)
 

basa1995


Рег
09 Jun, 2015

Тем
1

Постов
2

Баллов
12
  • 30, Sep 2015
  • #15
под XE8 совершенно не рабочий продукт, элементарный пример вызывает access violation. поддержка продукта только на словах, очень не советую!
 

nikatinch


Рег
09 May, 2015

Тем
1

Постов
4

Баллов
14
  • 07, Jul 2016
  • #16
zNk, post: 703292:
Собсно вопрос: Что такое PaxCompiler?

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

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

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

Kustarnik


Рег
21 Sep, 2007

Тем
0

Постов
6

Баллов
6
  • 31, Jul 2016
  • #18
Sacrator, post: 703297:
Если вдруг найдутся люди, которые возьмутся за "расширенное описание по этому поводу", хотелось бы увидеть сравнительные характеристики различных компонентов для создания скриптов.
Дело в том, что в своей программе использую FastScript. Сейчас скрипт разросся до примерно 20 тыс. строк и его компиляция происходит оооочень медленно (примерно 5 мин. на достаточно производительном компьютере)...
Слишком большой объем скрипта. На что ни меняй, все будет тормозить. Сам сижу на FastScript. Надо дробить единый скрипт на части и загружать динамически по мере необходимости
 

kouvaev


Рег
23 Mar, 2009

Тем
2

Постов
16

Баллов
36
Тем
49554
Комментарии
57426
Опыт
552966