vkACL.jar, версия 5.10.3, программа на каждый день

Download vkACL-short.zip — 1.45 Mб, короткая версия целиком
Download vkACL.jar — 1.33 Mб, jar файл полной версии

Новая версия поставлена практически через год после предыдущей. В ней просто добавлено много мелких исправлений и дополнений. Эти исправления и дополнения я делал постоянно, просто не менял номер версии. И вот захотелось изменить. Программа находится на прежнем месте, но на этот раз обновились оба файла, интерпретатора и готовых программ. Более того, встроенное описание все же не полно соответствует программе. Со временем я вообще от него откажусь. Но и сейчас лучше читать описание в интернете на моем сайте. Только оно содержит полную информацию о новых изменениях.

Я использую систему работы с двумя версиями программы, короткой и длинной. Это связано с тем, что новые версии программы могут работать сразу в трех модификациях: как среда разработки и запуска готовых ACL программ, как интерпретатор одной ACL программы с внешним видом, и как интерпретатор одной ACL программы без внешнего вида. Для выбора нужного режима достаточно указать значение одного числа. Однако в двух последних режимах желательно иметь по возможности малый размер программы. Для этого вполне пригодится короткая версия. Длинная версия дополнительно содержит аппарат работы с pdf файлами. Из-за этого, она включает в себя относительно большую библиотеку java классов и ее размер примерно на 1 Мб больше. В остальных отношениях длинная версия полностью идентична короткой версии, но я ее еще мало тестировал.

Итак, сначала скачиваете архив короткой версии программы. В архиве два файла: vkACL.jar (сама программа) и vkACLa.zip (дополнительные файлы описания языка и готовых программ). То есть эта версия содержит все необходимые файлы для работы. При первом запуске она сама себя инициирует, то есть вынимает из архива все файлы, какие ей необходимы. С ней можно работать много и долго. Если же вам понадобится работа с pdf файлами, то в этом случае скачиваете файл vkACL.jar полной версии, то есть только программу. И можно заменить этим файлом аналогичный файл короткой версии. Либо поставить его в новую папку, добавить файл vkACLa.zip из котороткой версии и сделать вторую копию программы с самого начала.

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

Файл программы в полной версии имеет относительно большой объем, так как включает в себя библиотеку [iText] Java классов для создания и модифицирования PDF-файлов. Соотвественно в ACL существуют команды создания PDF документов из различных источников и модификации существующих pdf-файлов. Для тех, кто не может качать большие файлы и кому работа с pdf-файлами не нужна, достаточно короткой версии меньшего объема. Новые версии не содержат описания языка ACL на английском языке, зато описание на русском языке сделано более понятным и написано в виде книги, а также стоит в интернете, ссылку можно получить на моем личном сайте.

vkACL.jar -- это Java программа, написанная на языке программирования Java-1.6.4. Напомню, что любая Java-программа исполняется интерпретатором, то есть требует установки специальной программы, называемой Java Runtime Environment, или короче JRE, которая существует во всех операционных системах. Ее еще называют "виртуальная машина" или Java VM. В операционной системе Виндовс ее надо установить самостоятельно, скачав дистрибутив последней версии c вэб-страницы java.com/ru . Версию JRE 1.6u16 можно скачать кликая ЗДЕСЬ . Замечу, что JRE необходима также для проигрывания Java Апплетов в интернет браузерах. Однако, сейчас апплеты совсем почти запретили, но при желании можно настроить браузер и они будут работать. Сам я перешел на работу в последней версии JRE, что и всем желаю.

Программу vkACL.jar я пишу для себя, и я постоянно ее использую, так как она умеет решать почти все задачи на компьютере. Она может быть полезной и интересной широкому кругу пользователей компьютера от инженеров до компьютерных фанатов. Моя цель -- создание достаточно компактной, и в то же время универсальной программы, которая была бы способна выполнять любую работу по представлению, анализу и обработке научной, графической или любой другой информации. Я давно пришел к выводу, что писать компилируемую программу такого типа -- очень неблагодарная задача, главным образом, потому, что трудно разработать дизайн, который бы удовлетворял как меня, так и всех моих пользователей в течение какого-то времени. Программы постоянно развиваются и надо иметь возможность быстро и просто модифицировать как дизайн, так и структуру представления информации. Для этих целей больше подходит не компилируемая программа, а интерпретатор относительно простого, но достаточно развитого языка программирования. И хотя в мире существует очень много профессиональных программ с весьма широкими возможностями, я все же не нашел для себя ничего подходящего по всем параметрам.

Кроме того, многие программы стоят денег, и не все можно сделать бесплатно, как на ACL. Из программ аналогичного профиля, которые я знаю больше или меньше, могу отметить IDL, IGOR-Pro, Mathematica, MathLab и многие другие такого же типа. Но указанные программы -- это огромные и дорогие монстры, возможности которых намного превосходят потребности рядового пользователя. И пользоваться ими для создания собственных приложений не так уж и удобно. Из указанных программ я работал только с IGOR-Pro. Поначалу было интересно, но очень скоро программа перестала нравиться из-за невозможности сделать все именно так, как мне надо. Тем не менее, дизайн моей программы в некоторой степени копирует дизайн IGOR-Pro.

В конце концов, я решил сделать собственную программу -- интерпретатор собственного языка программирования, который я назвал ACL (advanced command language) по аналогии с IDL. Мне это было относительно просто по той причине, что этот язык в своем ядре очень мало отличается от того языка, который я разработал в начале 90-х годов прошлого века для персональных компьютеров первого поколения, работающих в ДОС, начиная с 086. Тогда почти ничего не было, и я очень удобно работал на своем языке, имея фактически быструю Windows среду на ДОС компьютере. В 2004 году мне осталось только перетранслировать интерпретатор с фортрана, усиленного асемблером, на Java. Естественно нельзя сделать все сразу, поэтому программа развивалась постепенно. Версия данной программы указана в заголовке. Ее смысл - просто дата создания, например 4.11.5 - это 5 ноября 2014 года. Такой подход легко позволяет различать версии. В отличие от указанных выше программ моя программа не ограничивается техническими расчетами, она способна делать все, что мне надо. И использует всю мощь Java. С 2014 года программы имеет разные модификации. Я предлагаю в интернете модификацию, которая требует минимум оперативной памяти, так как у нее массив r() имеет размер 7 миллионов. У меня есть версия, в которой этот массив имеет размер 101 миллион, но такую программу можно запустить не на всяком компьютере, и для этого нужен нестандартный способ запуска.

Язык программирования ACL -- это набор команд для исполнения, как в старом Бейсике или в любом командном файле операционной системы. Некоторые команды могут выполнять только одну операцию, другие команды выполняют любую из набора операций. Даже синтаксис языка оформлен в виде команд. Это означает, что по грамматике в языке нет различия между микро и макро командами. Команды можно организовывать в процедуры, а процедуры записывать либо в основном файле, либо в других файлах или даже временно в текстовом массиве памяти программы. Есть команды для выполнения элементарных математических вычислений и есть команды для выполнения макро-вычислений типа двумерного преобразования Фурье или конвертирования форматов изображений и даже показа автоматического слайд-шоу.

К основным командам относятся команда вычислений, команда чтения и записи данных любого формата, в том числе форматированного текста, команда для работы с файлами, а также команды для создания циклов, условий и процедур. Дополнительно к ним есть относительно развитый математический блок, команды для создания интерфейса и графики вплоть до анимации и звука. Возможности элементарной графики не ниже, чем у Java, так как из Java взято практически все. Есть градиент цвета, клип, сложный контур, заполнение областей фактурой. Однако данная версия имеет дополнительно много возможностей для быстрого создания графического файла любой степени сложности, включая квази-трехмерные графики двумерных зависимостей и трехмерные графики, то есть аксонометрические проекции объемных объектов, а также изображения матриц в виде карт почернения и возможность прозрачного сложения нескольких картинок.

С другой стороны, возможности создания интерфейса пока ограничены только наиболее распространенными потребностями, зато все делается намного проще, чем в любом визуал языке или на Java. Более того, процедуры, записанные в файлы, можно оформить таким образом, что они становятся суперкомандами и вызываются просто по имени файла. Это предельно упрощает написание головной программы, так как всю вспомогательную работу можно оформить в виде суперкоманд. Суперкоманды пишет сам пользователь, а определенный базовый набор я стал постепенно собирать в рамках базовой версии программы. Удобство суперкоманд еще и в том, что раз сделанная суперкоманда может долго быть полезной и с течением времени программировать становится все легче. Появляется супер-язык макросов, причем у каждого пользователя он может быть своим собственным, хотя возможен и обмен библиотеками. Они также являются хорошими примерами использования языка для начинающих. Набор суперкоманд увеличивается от версии к версии даже быстрее, чем сами команды. Тем не менее и команды улучшаются, так что советую следить за появлением новых версий и использовать их.

Некоторые относительно старые рекламные картинки можно посмотреть в левой колонке, но продемонстрировать все возможности новой версии невозможно. Сама программа имеет набор демонстраций, которые можно посмотреть после ее скачивания и установки. Язык ACL позволяет выполнять практически любую работу с картинками (фотографиями), файлами, zip-архивами, графикой, включая постскрипт и pdf, текстами и таблицами, двоичными данными и многое другое. Даже сама программа упакована в два файла "vkACL.jar" и "vkACLa.zip". При первом запуске она сама себя распаковывает. У команды #file есть опция навигации по всей файловой структуре компьютера и возможность делать предварительный просмотр файлов с картинками. Есть возможность показа вэб-страниц, написанных на языке HTML с помощью встроенного браузера. Появились первые версии постскрипт-генератора для автоматического создания постскрипт графики и pdf-генератора для создания pdf-графики. Такие графики весьма полезны для подготовки научных статей и для печати на постскрипт принтерах. Попутно замечу, что для постскрипт графики у меня есть старая и очень развитая программа VKPS (см. описание на сайте kohnvict.ucoz.ru/main.htm), но она написана на фортране и у нее свой язык. Здесь аналогичная работа программируется на ACL.

Программа-интерпретатор дополнена большой серией готовых программ на языке ACL. При первом запуске программы она записывает на жесткий диск несколько папок c файлами, которые затем использует. Часть из этих программ можно запускать на исполнение прямо из меню главного окна. Более того, есть аппарат настройки меню программы для вызова других ACL программ. Так в меню "Run" есть кнопка "Build-in ACLpro". Эта кнопка позволяет запустить в работу серию готовых программ, для которых изучение языка ACL уже не требуется. Эти программы позволяют сделать очень много работы вообще не изучая язык ACL, а с другой стороны, служат хорошими примерами ACL кода. С кнопкой меню "Run/User's ACLpro" можно связать программы, разрабатываемые самими пользователями, а можно просто расширить основное меню. Так как из любой программы можно вызывать любые другие программы, то интерпретатор может выполнять бесконечную ACL программу, выполняющую практически все, что нужно, наподобие интернета, впрочем ACL программы, размещенные в интернете он тоже может выполнять при большом желании, хотя я сам это не практикую. Естественно, что я и свои собственные научные программы также пишу на ACL и их достаточно много. Например, у меня есть много презентаций, оформленных в виде квази-кино по фотографиям, сделанным в разных поездках. Кадры сменяют друг друга автоматически под фоновую музыку и закадровые звуковые комментарии. Звуковые комментарии записывает сама программа с помощью команды #sound.

А есть и научная программа, которая в таком же режиме показывает серию рентгеновских изображений записанных с помощью детектора в формате 16-битных матриц. Есть еще программа, которая умеет моделировать такие изображения и рассчитывать числовые матрицы размером 1024 на 1024 пиксела. Есть и другие программы. Но это все уже выходит за рамки массовой версии и разработано только на меня. Соответственно в программе есть встроенные процедуры, которые не описаны в документации и работают только на меня. Впрочем при необходимости их тоже можно описать. Фактически я все расчеты научного моделирования физических процессов делаю в одной программе, мне так удобно. Размер программы от этого растет незначительно, потому что речь идет только о голых вычислениях, все остальное делается на языке ACL. Но если кому-то нужно связать программу со своими собственными расчетами, то ACL способен вызывать другие программы и использовать результаты их расчетов. Внешние программы могут быть написаны на любом языке программирования.

Небольшое замечание касается того, что в меню "Run/User's ACLpro" показаны иконки моих программ, которые в поставке этого сайта не работают. Это мои личные программы и я просто не включил их в поставку, так как они нужны только мне. Но меню менять не стал. Меню стоит как у меня на компьютере. Каждый может переписать его под себя.

Описание языка ACL встроено в оболочку программы в меню "Help" как набор вэб-страниц, оформленных в виде книги. Эти вэб-страницы можно вызывать параллельно с редактированием или написанием ACL программы во встроенном редакторе. Я сам так постоянно делаю, так как запомнить все конструкции языка практически невозможно. Важно знать и понимать только общие принципы. Сами htm файлы находятся в папке "hdata". Там есть общее описание, описание команд и параметров, а также некоторых приемов программирования. Описание написано как на русском, так и на английском языке, но в стандартную поставку описание на английском не входит. Есть также красивое описание языка ACL онлайн, его можно посмотреть кликнув на ссылке ACL-online.

Установить программу очень просто. Сначала проверяете, есть ли JRE на вашем компьютере. Это делается запуском команды в командной строке

. . . .>java -version

Правда в системе Виндовс-8 JRE надо устанавливать специальным образом, иначе программу java она не видит. Я это не делаю и у меня команда java просто так не запускается. Надо указать системе путь, где ее надо искать. Если виртуальной машины нет, то ее надо установить (см. об этом в начале статьи). Затем кликаете на ссылке [Download] в верхней части этой страницы и скачиваете zip-архив короткой программы, внутри которого есть два файла "vkACL.jar" и "vkACLa.zip". Ставите файлы в какую-нибудь пустую папку, с любым названием, например, vkACL и запускаете jar-файл. В системе Виндовс достаточно просто кликнуть иконку файла (или запустить его другим способом). Там, где это не проходит, можно использовать общий способ. Общий способ состоит в запуске команды

. . . .>java -jar vkACL.jar

из командной строки (bat файл, терминал, Total Commander или любой другой способ). Такой способ хорош тем, что в случае нестандартной ошибки, которую не блокирует интерпретатор, вы получаете диагностику от Java виртуальной машины. Иногда бывает полезно указать путь к файлу java.exe. В системе Виндовс-8 я постоянно указываю путь.

Если будут проблемы, пишите мне на e-mail адрес kohnvict@yandex.ru.


Виктор Кон, 5.10.2015


































  Внимание! Сайт оптимизирован под браузер Google Chrome.