vkACL.jar, программа на каждый день

программа является интерпретатором моего языка программирования ACL (advanced command language), она также выполняет
очень много разной работы с помощью набора готовых программ, написанных на нем. Интепретатор написан на языке
программирования Java.

Download ACLp.zip — 9.11 Mб, архив последней версии проигрывателя с примерами работы программ (13-03-2024)
Download ACLm.zip — 3.52 Mб, архив самой последней версии программы (06-11-2023)
Большая статья — с рассказом о программировании на ACL. Первые шаги и обзор возможного. (15.04.24)
Download vktot.zip — 1.40 Mб, архив словаря для проверки правописания в редакторе текстов
Download vkacl-m4b.zip — 1.77 Mб, архив старой версии программы (12-04-2023)
Download vkACLa.zip — 2.16 Mб, архив файлов к старой версии программы (16-04-2023)
Репозиторий научных ACL программ — Список ссылок для скачивания архивов некоторых из моих научных программ
Большая статья — с рассказом о программировании на ACL. Заметки на разные темы.
Youtube видео — с рассказами о программе, 8 роликов, которые можно сразу смотреть.
Презентация программы — pdf файл, содержащий список ссылок для скачивания видео c рассказами о программе.

Что нового. Самые последние новости теперь публикуются тут . Появилась самая последняя версия основной программы ACLm. Она скачивается одним архивом и просто папка из архива копируется на компьютер. Запускается файл _ACLm.jar. Эта версия программы развивается в сторону оптимизации и полного перехода на новые технологии. Из нее выброшено все лишнее и старое. Готовые программы запускаются из меню. Все описания работы с ней находятся только в интернете, и в ней постепенно исправляются те ошибки, которые удается зафиксировать. Вместе с тем в процессе оптимизации могут быть допущены новые ошибки. Если кто их обнаружит, то сообщайте мне. Или пробуйте более старую версию программы. В этой версии все суперкоманды вызываются только по номеру. Папка proc отсутствует. Появилась разновидность программы в виде проигрывателя с названием ACLp, она может исполнить любую ACL программу, не имеет своего окна и может использоваться в автоматических расчетах совместно с другими программами. Кроме того, у нее есть простой и быстрый вызов 50 готовых программ, написанных автором. Все эти программы переделаны так, что имеют один и тот же дизайн, все протестированы и имеют вариант демонстрации, который позволяет увмдеть их в работе.

В старой версии vkACL варианта m4b сама программа и дополнительные файлы к ней даются раздельно. Эта весия больше не развивается. Она дается для тех, кто пользуется старыми программами. Для тех же, кто только начинает, пробуйте программы ACLm или ACLp. Вторая удобнее для готовых программ, первая -- для изучения языка и написания собственных программ.

Исключены научные программы. Сейчас их можно скачивать из репозитория, в котором для каждой отдельной программы имеется свой архив. В репозитарии программы старые и для них может понадобиться старая версия интерпретатора. Соответственно размер старой версии программы стал меньше. Как обычно, в новой версии программы больше возможностей, но я исключил кое-какой мусор в виде процедур, которые редко используются. По этой причине какие-то из старых программ могут не пройти и их код нужно откорректировать. Все старые процедуры есть в репозитарии. У кого будут такие проблемы, напишите мне и я все исправлю.

Что надо делать тем, кто тут впервые. Скачиваете архивы программы, то есть файлы (vkacl-m4b.zip) и (vkACLa.zip). В первом архиве сама программа: vkACL.jar. Там же есть инструкция и лицензия. Второй архив: vkACLa.zip -- это дополнительные файлы готовых программ общего назначения. Файлы надо скопировать в ПУСТУЮ папку. Это обязательно. При первом запуске программа сама себя устанавливает. Она вынимает из архивов все файлы, какие ей необходимы для работы.

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

Краткое описание программы. В последней версии программы сделана попытка работать с текстовыми файлами, в которых концы строк отмечаются как символом 10 (Java, Unix), так и символами 13 и 10 (Windows). Раньше символ 13 в текстовых файлах просто уничтожался, теперь он остается, если он был. Но это может привести к неадекватной работе некоторых уже написанных старых программ. По этой причине я сохранил старую версию, где этого не было, и предлагаю ее желающим по требованию. В новой версии дополнительно появились двухбуквенные переменные. Поэтому новые программы не пройдут в старой версии. Дата версии записывается 3 буквами, сначала год, потом месяц и потом число. Буквы означают следующее: 1, 2, ..., 9 -- то, что написано, 0 -- 10, a -- 11, и так далее по латинскому алфавиту. Год указывается для 21 века. Век не указывается.

В последней версии слегка обновлен основной код интерпретатора, а также обновлены или добавлены новые ACL программы общего назначения, а научные программы даются отдельно. Тем, кому они не нужны для дела, может просто ничего не делать или посмотреть их ACL код, чтобы использовать как образец написания программ на ACL. Описание самого языка ACL дается только в интернете, вот ссылка . Там же есть раздел, где описываются последние изменения в языке и программе. Тем, у кого проблемы с интернетом, можно просто скачать описание себе на компьютер один раз или распечатать его.

Особенности программы. Программа может работать в трех модификациях: (1) как среда разработки и запуска готовых ACL программ, (2) как интерпретатор одной ACL программы с внешним видом, и (3) как интерпретатор одной ACL программы без внешнего вида. Для выбора нужного режима достаточно указать значение одного числа. Программа имеет аппарат работы с pdf файлами и это часто бывает полезно. В данной версии основной массив чисел r() имеет размер 26 миллионов, и с таким размером программа не пройдет в 32 битной ОС или с 32 битной JRE. Раньше размер был 7 миллионов. Если кому надо маленький размер массива r(), то пишите мне по е-почте и я вышлю. Сам я работаю именно с такой версией, но могу очень легко сделать версию на любой размер массива r().

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

vkACL.jar -- это Java программа, написанная на языке программирования Java версии 1.6.4. Напомню, что любая Java-программа исполняется интерпретатором, то есть требует установки специальной программы, называемой Java Runtime Environment, или короче JRE, которая существует во всех операционных системах. Ее еще называют "виртуальная машина" или Java VM. В операционной системе Виндовс ее надо установить самостоятельно, скачав дистрибутив последней версии c вэб-страницы . Более подробно написано в файле readme.txt архива программы. Сам я перешел на работу в одной из последних версий JRE, что и всем желаю. Хотя для работы программы это не обязательно. Важно, что нужно устанавливать только 64-битную версию JRE.

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

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

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

Естественно нельзя сделать все сразу, поэтому программа развивалась постепенно. Версия программы указана в заголовке. Такой подход легко позволяет различать версии. В отличие от указанных выше программ моя программа не ограничивается техническими расчетами, она способна делать все, что мне надо. И использует всю мощь языка Java. С 2014 года программа имеет разные модификации. Я предлагаю в интернете модификацию, которая требует умеренный размер оперативной памяти, так как у нее массив r() имеет размер 26 миллионов. У меня есть версия, в которой этот массив имеет размер 150 миллионов, но такую программу можно запустить не на всяком компьютере. В любом случае для работы программы нужна 64-битная операционная система и 64-битная JRE.

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

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

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

Презентация программы. Некоторые рекламные картинки экрана компьютера во время работы с программой можно посмотреть в левой колонке, но продемонстрировать все возможности новой версии невозможно. Сама программа имеет набор демонстраций, которые можно посмотреть после ее скачивания и установки. Язык ACL позволяет выполнять практически любую работу с картинками (фотографиями), файлами, zip-архивами, графикой, включая постскрипт и pdf, текстами и таблицами, двоичными данными и многое другое. Даже сама программа упакована в три файла. При первом запуске она сама себя распаковывает. У команды #file есть опция навигации по всей файловой структуре компьютера и возможность делать предварительный просмотр файлов с картинками.

Есть возможность показа вэб-страниц, написанных на языке HTML с помощью встроенного браузера, хотя он очень старый и возможности самые простые. Проще готовить веб-страницы и динамически показывать их в дежурном браузере. Появились первые версии постскрипт-генератора для автоматического создания постскрипт графики и pdf-генератора для создания pdf-графики. Такие графики весьма полезны для подготовки научных статей и для печати на постскрипт принтерах. Попутно замечу, что для постскрипт графики у меня есть старая и очень развитая программа VKPS (см. описание на моем сайте ), но она написана на фортране и у нее свой язык. Здесь аналогичная работа программируется на ACL.

Программа-интерпретатор дополнена большой серией готовых программ на языке ACL. При первом запуске программы она записывает на жесткий диск несколько папок c файлами, которые затем использует. Часть из этих программ можно запускать на исполнение прямо из меню главного окна. Более того, есть аппарат настройки меню программы для вызова других ACL программ. Так в меню "Run" есть кнопка "Build-in ACLpro". Эта кнопка позволяет запустить в работу серию готовых программ, для которых изучение языка ACL уже не требуется. Эти программы позволяют сделать очень много работы вообще не изучая язык ACL, а с другой стороны, служат хорошими примерами ACL кода. По клику кнопки программа показывает другую таблицу кнопок, каждая из которых запускает отдельную программу, либо новую таблицу кнопок. Небольшую информацию о программах можно получить кликая кнопку [Help]. Быстрый вызов таблицы кнопок делается клавишами [Alt]+[B].

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

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

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

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


Виктор Кон

.

.