# Как работать с программой

Сайт программы vkacl: http://kohnvict.ucoz.ru/vkacl/ACLnews.htm
автор - Виктор Кон (Курчатовский институт), URL: http://kohnvict.narod.ru
программа написана на языке программирования Java, URL: https://www.java.com/en/

Данная программа имеет двойное назначение. Ее главная функция -- быть средой разработки новых программ на языке программирования ACL (advanced command language) то есть программировать. Программы на языке ACL любой пользователь может разрабатывать по своим потребностям. Дополнительно она является исполнителем (интерпретатором) большой серии готовых ACL программ, написанных мной. Некоторые из этих программ при желании можно вызывать из Меню главного окна, а также из других программ. Много программ (но далеко не все) общего назначения находятся в Таблице иконок программ. Как Меню, так и Таблицу можно перенастраивать самостоятельно. Таблица показывается по клику на кнопке [Run] / [Build-in ACLpro]. Из нее можно выбрать интересующую вас программу и запустить ее простым кликом. Для использования готовых программ знания языка ACL не требуется. Совмещение двух функций полезно по той причине, что в процессе разработки новых ACL программ можно использовать примеры кода уже написанных ACL программ (все программы имеют открытый код) и даже сами программы из тех, которые дают дополнительную информацию разного типа.

Для удобства введем терминологию. Будем называть главное окно интерпретатора, написанного на языке Java и имеющего название файла vkACL.jar, "Рамой" (frame), а программы, написанные на языке ACL, просто программами. Сразу замечу, что название vkACL не является обязательным. Файл можно переименовать на любое другое имя. Первые 4 раздела меню Рамы являются встроенными, их нельзя изменить без изменения программы интерпретатора, написанной на Java. Остальные разделы можно добавлять, менять и перенастраивать, как это написано в этой ссылке .

При этом первые 2 раздела меню Рамы предназначены для разработки новых программ. Код программ пишется во встроенном текстовом редакторе обычным текстом, который может иметь латинские и русские буквы. Редактор имеет возможность исправлять неправильную кодировку букв и даже имеет встроенный руссификатор, который позволяет писать по русски на компьютере без переключателя клавиатуры. Для написания или редактирования программы нужно заказать файл. Это делается в первом разделе меню [Program]. Здесь есть три возможности. Рассмотрим первую. Предположим, что вы уже работали с каким-то файлом накануне и хотите вызвать его снова. Рама запоминает имя последнего файла, с которым вы работали. Если выбрать кнопку [Current], то содержимое этого файла сразу появится в окне редактора. Вторая возможность - вы знаете имя вашего файла и папку, в которой он лежит. Тогда выбирая кнопку [Open] вы получаете возможность ввести полное имя файла отсчитывая от папки Рамы. Это общий принцип -- файлы с кодом ACL за пределами папки Рамы, в основном, не учитываются и не работают, хотя бывают исключения. Преимущество этой кнопки в том, что если файл с заданным вами именем не существует, то будет создан новый файл с данным именем и пустым содержанием. Наконец, третья кнопка [Choose] позволяет выбрать файл с помощью Менеджера файлов, который показывает все файлы. Я для файлов с кодом ACL использую расширение acl. Далее файл выбирается обычным образом.

После того, как вы отредактировали файл, снова есть три возможности. Вы можете выйти из редактора по кнопке [Edit] / [Exit]. Тогда новое содержание файла автоматически спасается при выходе. Кнопки для спасения файла в меню редактора не существует, она как бы совмещена в кнопкой [Exit]. Если спасать файл не нужно (возможно была ошибка при редактировании и необходимо сохранить старое содержание), то тогда окно редактора нужно закрыть кликом крестика в правом верхнем углу. Наконец, есть третья возможность -- вам нужно запустить программу на исполнение. Вы можете не закрывая окно редактора сразу выбрать кнопку меню [Execute] / [Execute Current]. При этом новое содержание автоматически спасается в файл, и новый файл прочитывается и исполняется интерпретатором. Для быстроты можно пользоваться клавишами-ускорителями [F1] для редактирования файла программы и [F12] для выполнения программы.

Выбор кнопок определен моим новым ноутбуком. У него только эти кнопки работают без дополнительной клавиши. Все остальные [FN] работают с одновременным нажатием кнопки [fn], что не так быстро. Фирма DELL решила передать эти кнопки в чистом виде для управления параметрами компьютера. Это, действительно, полезно для кнопки [T-PAD], которая отключает Тач-пад. Это реально приходится часто делать, иначе сложно пользоваться клавиатурой в некоторых быстрых играх.

Если программа выполнилась успешно, то вы можете повторить процесс с помощью [F1]. При этом курсор будет автоматически установлен на первом появлении трех знаков @@@. Это следует учитывать при записи файлов. Если же в процессе выполнения программы интерпретатор зафиксировал ошибку, то вам будет показано окно с информацией об ошибке. При переходе в редактор с помощью [F1] курсор будет автоматически показывать место ошибки. При использовании процедур это не всегда работает и курсор может показать только процедуру, в которой была сделана ошибка. Вы исправляете ошибку и снова нажимаете [F12]. Таким образом процесс отладки программы достаточно прост. В процессе написания программы можно пользоваться описанием языка ACL на сайте автора http://kohnvict.ucoz.ru/acl/acl.htm . При желании описание можно скачать на свой компьютер. Но архив описания иногда отстает от реального описания. Это надо иметь в виду.

Итак, процедура написания и отладки программ является достаточно удобной и быстрой. Кроме того, в процессе написания новой программы можно открыть и выполнить любую уже написанную программу. Описание готовых программ обычно дается отдельной кнопкой в меню этих программ. Рассмотрим назначение других кнопок меню [Execute], а именно [Show textarr] и [Stop execution]. Первая показывает содержание текстового массива после выполнения программы. В принципе, это не нужно, но иногда может быть полезным при отладке. Эта кнопка появилась в самом начале разработки программы vkACL.jar. Сейчас есть возможность проверки содержания текстового массива в процессе выполнения программы, а также запись данных в файлы. Но иногда можно просто напечатать в текстовый массив, а потом посмотреть результат по этой кнопке. Это может быть удобным для начинающих. Вторая кнопка необходима для того, чтобы вывести программу из бесконечного цикла.

Дело в том, что ACL, в принципе, позволяет организовать бесконечный цикл, который должен прерываться разными способами. Но в результате ошибки можно сделать бесконечный цикл в чистом виде. Тогда программа никогда не закончится. Как раз выбор этой кнопки в процессе выполнения программы будет блокировать все циклы и программу можно вывести из комы. Но это работает только в том случае, когда в цикле нет вызова диалога в виде окон подсказок, графиков и так далее. К сожалению бесконечные циклы с диалогами нельзя прекратить и таким способом. Так что надо быть осторожными и думать о такой опасности. В этом случае единственный способ -- это убить процесс, связанный с JRE и потом запустить программу снова. В Виндовс процесс убивается через программу операционной системы Task Manager или Диспетчер Задач, но со временам системы меняются и как это будет в будущем я не знаю. Поэтому при отладке программы полезно запускать Раму, то есть файл vkACL.jar через bat-файл. В этом случае сохраняется возможность закрыть окно bat-файла крестиком и спасти компьютер от зависания.

Окно bat-файла удобно еще тем, что в нем могут появляться ошибки, которые обнаружила JRE при выполнении программы vkACL.jar. Эти ошибки не всегда приводят к фатальному исходу, часто они могут инициироваться ошибками ACL программы, которые ACL интерпретатор не блокирует. Тогда это уже моя недоработка, но к сожалению число возможных ошибок огромно и мне даже не всегда удается их все себе представить. Сам я ошибки делаю редко, но тоже делаю. Тогда я переписываю интерпретатор так, чтобы их блокировать. Если кто заметит какую ошибку -- сообщайте мне по электронной почте.

Собственно говоря, вот и все относительно разработки программ. Остальные разделы меню Рамы касаются запуска готовых программ или изменения внешнего вида. Раздел меню [Run] прямо предназначен для запуска готовых программ. По кнопке [File Viewer] можно запустить менеджер файлов, показывающий всю файловую структуру компьютера. В отличие от интерпретатора он способен работать со всеми файлами на компьютере. Если выбран файл с расширением htm, то запускается встроенный браузер. Если выбраны файлы с медиа расширениями (звук, видео), то запускаются программы, связанные с этими расширениями. Если выбран файл с расширением acl, то программа выполняет код на языке ACL в этом файле. Для всех остальных файлов запускается текстовый редактор.

По кнопке [Image Viewer] можно запустить менеджер файлов, показывающий все файлы с расширениями gif jpg png и с предпросмотром в виде маленькой картинки при выборе файла одним кликом. При выборе такого файла двумя кликами или по кнопке (Select) картинка показывается в натуральную величину. Если размер картинки больше размеров экрана, то картинка помещается в линейки прокрутки. Далее есть несколько способов продолжения. Первый способ -- просто кликнуть на картинке. При этом она исчезнет и снова появится менеджер файлов. Но уже показывающий выбранную ранее папку. Можно выбрать другую картинку и так далее. Процесс остановится при выборе кнопки [Cancel] менеджере файлов.

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

Третья кнопка [ Build-in ACLpro] запускает на выполнение специальную ACL программу с полным именем [pro/myprograms.acl]. Эту программу я пишу сам как диспетчер дополнительных ACL программ, не вошедших в меню рамы. Именно эта программа показывает Таблицу иконок для запуска всех моих ACL программ общего назначения. Вызов Таблицы быстрее делать по горячей клавише (Alt)+(B), как указано в меню. Наконец, кнопка [User's ACL-pro] запускает на выполнение специальную ACL программу с названием [pro/programs.acl]. Эту программу каждый пользователь может писать под себя. Образец программы приводится, хотя самих вызываемых программ нет. Идея этих кнопок в том, что в специальных программах можно организовать дополнительные меню по вызову практически всех написанных программ. ACL такую возможность предоставляет -- из любой программы можно вызвать на исполнение все другие программы.

Раздел меню [View] достаточно простой. Он позволяет изменить внешний вид Рамы и всех стандартных окон. Такую возможность предоставляет Java. Так как программа может работать в разных операционных системах (ОС), то Java разработала три внешних вида программы: собственный (Metal), похожий на OC Sun (Solaris) с названием Motif и похожий на Windows. Я сам работаю с внешним видом Java и все окна оптимизированы на этот внешний вид. Но если кому интересно как все выглядит в других ОС - можете попробовать.

Дополнительные разделы меню Рамы прописаны во внешнем файле (start.acl), который запускается в самом начале работы Рамы, и его каждый пользователь может легко редактировать. В текущей версии программы я поставил 2 раздела [General] и [Popular]. Они вызывают те же самые программы, что и указанные в Таблице по кнопке [Run / Build-in ACLpro], но быстрее. Меню содержит не все программы из Таблицы, а лишь наиболее масовые. При этом они вызываются быстрее и даже по горячим клавишам. Важное отличие от программ в Таблице имеют только две программы [Notes] и [Editor]. Они вызываются по клавишам (Ctrl) и (N) первая, (Е) вторая.

Первая программа запускает большой редактор текстов с файлом (pro/note.txt). Это так же, как в Таблице. Но в Таблице редактор надо обязательно закрыть, иначе программа не сможет работать. Он запускается в Диалоге. А редактор по кнопке закрывать не надо. Окно остается на экране и после выполнения программы. И таких окон можно открыть очень много. В программе есть возможность открыть любой другой файл или спасти данный файл с другим именем. То есть такая система позволяет редактировать сразу много файлов с помощью одной программы. И эти окна имеют собственные иконки для перехода к какому-либо из них. Разумеется есть альтернативный подход -- открывать много окон программы ( vkACL), но это очень затратно для памяти компьютера.

Вторая программа работает аналогично, но она сночала показывает список файлов, который можно редактировать, а потом сразу открывает редактор с нужным файлом. Но у нее есть дополнительная возможность. При указании пути к файлу первым символом может быть + (плюс). Он указывают, что нужно открыть втроенный редактор, который эквивалентен редактору ACL программ, но имеет собственное окно. Для чего это надо. Дело в том, что встроенный редактор использует логические фонты. Их 5 штук и не всегда ясно какому конкретно фонту на компьютере они соответствуют. Так же точно работает браузер. Это делается для того, чтобы программа могла работать в любой операционной системе и с любым набором фонтов. А большой редактор использует конкретные фонты конкретного компьютера. И если используются символы Таб и пробелы, то часто тексты в виде таблиц показываются в разных редакторах по разному и не точно соответствуют друг другу.

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

Из остальных программ интересна новая программа [Runner]. Она показывает собственную таблицу для запуска файлов. Но, в отличие от заранее заготовленных таблиц, эту таблицу можно самому настраивать и изменять. Для этого запускается программа по первой кнопке таблицы, которая как раз такую работу и выполняет. У нее есть собственное описание и там можно узнать как с ней работать. Остальные программы тоже очень интересные, но про них уже есть лекции на Ютубе и отдельные подробные тексты. Все ссылки можно посмотреть в списке ссылок.

.

.