|
||||||||||||||||||||||||||||||||||||||||||||
SSS, <Elgolz1.800>,CPEC_FL,0, CPEC_FLN,0, <E1_menu.txt >, CPEC_FLN+1,0, CPEC_FLS,0,<количество байт>,<файл >, CPEC_FL+1,0, EOT
Организация обучающих программ (в том состоянии, что есть на моём ноутбуке) В директории \BIBL\ должны находиться библиотечные блоки. Это файлы SSS-термов(форматированный текст в своей собственной кодировке символов минуя UNICOD), содержащий спецсимволы cм.Таблицу1. Скрин1 показывает пока ещё пустые библиотечные блоки(их должна создавать другая программа) и как они организованы в меню (menuBIBL.txt),который создаётся пользователем и помещается в директориию \BIBL\. В программе есть соглашение, что расширения библиотечных файлов равны идентификаторам в меню, которые запускают их. Н-р: разделу «Дифф.уравнения» соответствует файл Elgolz1.800. Скрин 1.
Спецсимволы, далее обозначены как CPEC_XX, содержатся только в SSS-термах, имеют также как и визуальные символы 8байт=2 int. Старший int=код символа, младший=параметры или 0, если параметров нет. CPEC_XX может иметь свою пару CPEC_XX+1, обозначающий конец действия этого спецсимвола, он может иметь ненулевой младший int, если есть возвращаемое значение(как функция). Спецсимволы могут быть вложенными, т.е. имеющие смысл только внутри области действия внешнего по отношению к ним спецсимвола. Из библиотечных блоков запускаются внешние программы, исполняемый код которых содержится внутри блока, их область данных тоже внутри блока. Для чего это нужно? Чтобы не возлагать большие надежды на ИИ в плане формального вывода формул, а использовать то, в чём он действительно хорош: организация и визуализация мыслительной деятельности человека. Эти внешние программы м.б.любыми, но они должны иметь обратную связь со своим библиотечным блоком, знать где там их область данных (ОД), для этого они запускаются с двумя параметрами: файл блока, номер раздела в блоке. Это делает главная программа, для которой задана директория BIBL. Пример командной строки: \\myprog.exe Elgolz1.800 5
Таблица1 Спецсимволы для запуска внешних программ
Заполнение библиотечного блока начинается с создания его файла-оглавления, например для Elgolz1.800 создан E1_menu.txt. В этом меню идентификаторы – это номера разделов(внешних программ). 0-раздел соответствует, по соглашению, файлу оглавления. Без 0-раздела блок не имеет смысла, как и книга без оглавления, что там и где искать. Запуск 0920_BIBL.exe Elgolz1.800 E1_menu.txtзапишет оглавление в 0-раздел. Запуск 0920_BIBL.exe Elgolz1.800 -режим создания других разделов блока Elgolz1.800 Первый запуск запишет Elgolz1.800 какSSS-терм ,схематически покажу его так: SSS, <Elgolz1.800>,CPEC_FL,0, CPEC_FLN,0, <E1_menu.txt >, CPEC_FLN+1,0, CPEC_FLS,0,<количество байт>,<файл >, CPEC_FL+1,0, EOT <Elgolz1.800>=104,0,141,0,136,0,144,0,141,0,155,0,2,0,24,0,9,0,1,0,1,0 и занимает 11*8=88 байт. Латиница в ASCI и в UNICOD имеет одинаковые 7-битные коды. Кириллица имеет 5+6 бит,старшие биты заполняются согласно UTF-8 и получается 16-битный код. Это для справки. Моя «сиММатика» имеет свою таблицу кодов, в которой символ занимает 8 байт=2int. Старший int=код, младший int=вариант. Коды печатных символов положительные, пробелы – отрицательные в диапазоне. Остальные отрицательные коды это спецсимволы для SSS-термов. Простая печатная строка это SSS-терм, но есть спецсимволы форматирования: перевод строки, разбиение на страницы,ссылки, рисование. Чтобы не усложнять, будем пользоваться только латиницей в именах биб.блоков и их внешних файлов. Это скрин E1_menu.txt Он составлен по оглавлению книги, но распределён по уровням, идентификаторы=номера страниц. Номера разделов внешних программ библ.блока м.б. любыми, главное чтобы следовали по возрастанию. Например: “0.4”, “Задачи к главе 5”, 278 – означает, что если вы выберете меню Дифференциальные уравнения -> Глава5.Уравнения в частных производных первого порядка , то произойдёт запуск внешней программы «Задачи к главе 5» по её номеру 278 в библ.блоке.
|
||||||||||||||||||||||||||||||||||||||||||||
|