Девиз темы:    - Пусть я не в здравом уме, зато в своем!

  "Востановление приложений самими приложениями"

                                                   ( часть 1. Зачем это надо?)

 

Адрес документа:

http://90.189.213.191:4422/temp/galinam_wolfram.com_v1/galinam_wolfram.com_v1.doc    инд: 2-126-6    

 

Вводная часть.

Предлагается  метод перехода «данных в программу» и «программы в данные»  c использованием одного файла программы.

Приложение - это выполняемый файл, который СРАЗУ и НЕПОСРЕДСТВЕННО выполняется процессором компьютера.

Существуют и другие варианты файлов. Например, текстовый файл. Он выполняется программой, которая имеется в компьютере. Эти варианты с использованием посредников (в нашем примере текстовый редактор, например Блокнот)  не рассматриваем. Посредники не нужны.

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

Наша задача - объединить всё в одном файле для дальнейшего развития.

 

Создание приложения с восстановлением всех компонентов.

Что понимаем под компонентами, из которых создается приложение? На рисунке ниже приведен алгоритм  взаимодейстивя основных компонентов[1].

 

 

Рассмотрим состав компонентов в авторской разработке: Программа и схема …  [5]

В данной работе нас интересует программа, которая имеет возможность восстановления всех компонентов.

Ниже рисунок - скан экрана содержащий все необходимые файлы.  В поле слева расположены компоненты. Справа  - файл приложения.

Программа выполняет задачу обслуживания схемы. Подробности пока опустим. Кому интересно, может почитать [5] . Перечислим функции файлов, составляющие элементы программы:

·         *.ico -  файлы иконок;

·         *.jpg - файл(ы) схемы;

·         * .cmd - файл исполнения компиляции. В нем указывается компилятор и файл компиляции. Конечно же, можно и без него, но с ним удобнее;

·         *.exe -  компилятор языка программирования FORTH. На этом языке  автор  приводит пример восстановления приложений самими приложениями;

·        *.f -  текст программы на языке программирования FORTH [2];

Таким образом, имеем 6 файлов, которые после компиляции формируются в один. Напомним, что компиляция это преобразование исходный данных  в код, который воспринимается компьютером как программа.  Ниже на рисунке-gif  показан процесс компиляции.

 

В работе [1]  приводится пример формирования файла приложения из большого количества файлов.  Количество файлов и их состав определяется при выполнении задачи программы.

Вполне возможно, что может быть и меньшее количество файлов.

Важно, что  бы файлы помогали и содержали информацию о задаче программы.

Программа готова и может работать с устройством или по своей задаче. Ее не надо устанавливать, она переносится копированием.  Язык программирования  FORTH [2] создает портабельные программы.

Если программу *.exe  выполнить, то откроется рабочее окно и программа  заработает по своему алгоритму.

 

 

Жили они поживали, добро наживали, как вдруг пришла беда, откуда не ждали - программа устарела.

 

Этот шуточный, сказочный случай в заголовке абзаца постоянно встречается в развитии компьютерной техники.  Может, конечно, и не программа устарела, а компьютер устарел или появились более мощные компьютеры и появились новые «хотелки». 

Но задача одна  - надо программу заменить или, что в нашем случае и будет,  МОДЕРНИЗИРОВАТЬ.

Вот на этот случай и заложена  возможность извлечь все компоненты из файла *.exe.

 Ниже на рисунке-gif показан процесс «извлечения» содержимого.

 

 В меню программы по нажатию  клавиши =o= выполняется полное восстановление  всех компонентов, а именно всех 6 файлов.  Таким образом, получаем вновь исходные компоненты программы.  Вникаем в суть новых модернизаций и  «хотелок» и исправляем текст программы.  Затем компилируем новое приложение с новым составом компонентов и вновь запускаем приложение в работу.

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

Возможно, что  и не получиться создать простым способом =портабельность=  выходного приложения на других языках программирования.   

Важен еще и тип выполнения - интерпретатор или компилятор. Существуют и смешанные варианты языков. Язык Forth в этом классе стоит выше всех. Он и интерпретатор, и  компилятор одновременно.

Текст программы, которая выполняется в данном примере, открывается обычным «Блокнотом» или любым другим текстовым редактором.

Для желающих познакомиться с языком программирования FORTH более подробно, приведен еще один подобный пример  авторской  работы [3].  Предлагаемая программа в режиме исполнения содержит справочную систему по языку FORTH, в которой есть много примеров и ссылок на сайты.

 

Выводы.

 

 

Литература

 

  1. Статья в  sciteclibrary.ru Восстановление приложений самими приложениям
  2. Версия языка FORHT spf-4
  3. Программа тахометра на ИК-UART:  http://90.189.213.191:4422/temp/uart_ik_tahometr_v1/test/tahometr_ot_uarta_v1.zip
  4. Лекция Чарльза Мура  https://habr.com/ru/company/ua-hosting/blog/318144/
  5. Программа и схема формирования напряжний

 

Подготовил Шабронов Андрей Анатольевич  тс +7-913-905-8839  shabronov@ngs.ru 

  Успехов и здоровья!