Язык программирования Форт в имитационном моделировании

Навеято: … Нефтяной шейх в картинной галерее: — Уважаю Пикассо, никто дороже его масло не продает…

 

1.

http://90.189.213.191:4422/temp/doklad_4_2017_modelka_mkt_v1/doklad_4_2017_modelka_mkt_v1.doc    инд: 2-107-2    

2.

http://90.189.213.191:4422/temp/doklad_4_2017_modelka_mkt_v1/versuhi/oparyshi_v2.zip    

3.

http://90.189.213.191:4422/temp/doklad_4_2017_modelka_mkt_v1/versuhi/test_monsys_all.zip

 

От автора:

·        Приведена программа « 2D-искусственной жизни» в компьютере, написана на языке FORTH;

·        Возможно, данная программа похожа на    модель   МКТ- молекулярно-кинетической теории и будет востребована физиками-теоретиками;

·        Программа имеет статус «свободного» применения, предназначена для  изучающих  FORTH и доступна всем желающим  без возрастных ограничений;

 

Содержание

·        Вступление;

·        Версия философская - основа «вечной жизни» - источник случайности и «кольцо Армагеддона»;

·        Версия программиста – обычный цикл с отображением в плоскости с координатами X-Y;

·        Версия теоретика физика –  модель показана в «нереальной» физической среде;

·        Версия практика -  «такой жизни никому не пожелаешь»;

·        Получение текста программы и дополнительные опции;

·        Выводы;

Вступление

·        Данная программа, из серии 'компьютерной' жизни.  Можно ли  сделать  нечто похожее на нашу суету? Наверное, все же можно. Если посмотреть на большой город сверху,  это муравейник. Или то, что в названии программы, и где это обычно находится.  Большое  видется из далека! Мы бегаем, крутимся, вроде бы есть цель. А сверху все похоже на беспорядочный хаос!                                      

·        Алгоритм следующий:

1.      Формируется массив памяти, где каждому «телу» назначено «жизненное пространство» в виде участка в памяти;

2.      В этом «жизненном пространстве» (ЖП)  записывается «место жизни» (МЖ) на экране. Экран это 2D-модель. Он имеет координаты X и Y.  В этой версии используются координаты «знако-места» для ЖП при формировании МЖ;

3.       Выполняем  изменение МЖ  с проверкой ограничений по размеру экрана и встроенных препятствий;

4.      Отображаем на экране МЖ;

5.      Если нет дополнительных команд от клавиатуры и мышки, переходим к п.3;

·        Ниже представлено «урезанное»  форт-слово основного цикла программы. Полный текст смотрите в файле oparyshi_v2a.f   где  и находиться данное форт-слово.

 

: TEST_OPARYSHI_START  ( старый тест про «опарыши» )

\   п1. формирование

    * * *    (  форт-слова формирования.  Формируем ЖП  для МЖ )

       BEGIN   ( цикл жизни =опарышей= начался тут  п3 – изменения и отображения )

\ -------------------------------------------------------  

       PZ1 0= IF    SHAG_NEW_M  ( делается 1 шаг всех тел и показываются их   данные из памяти на экран   п3 и п 4 )

                   ELSE  0xA PAUSE1  ( пропуск с паузой на 10 мс, что бы не тормозить другие процессы пк )

                  THEN

\ -------------------------------------------------------  

 * * *  (  форт-слова проверки на нажатие клавиатуры и кнопок мышки )

\ ================================       

       UNTIL ( закончился цикл жизни «опарышей»  п 5)

  ?KEY1_DIN2_0!   ( сбросили коды запросов клавиатуры  и мышки для работы других программ )

;

 

 

·        Далее рассмотрим, отображаемое действо на экране с разных точек зрения.

 

Версия философская - основа «вечной жизни» - источник случайности и «кольцо Армагеддона».

·        Настоящий философ (Ф), всегда все может объяснить. Например, для женщины, почему ч@н.. маленький и тонкий, лучше, чем большой и толстый. Шутка.  В нашей ситуации пусть он ответит, на чем основана «компьютерная жизнь» на экране.

·        …Что первично?, - спросил Ф. …материя или сознание?.   И сам же ответил - первично сознание, которое ведет за собой материю.  А материя формирует сознание.

·        Твое сознание нашло источник случайности и замкнуло его в материальное кольцо.

·        Кольцо – это символ вечности, так что все в порядке, и твое сознание сформировало «вечную жизнь» на материи. А эта материя компьютер. Пока будет «жить» компьютер, будет жить и твоя «компьютерная» жизнь.

 

Оптические иллюзии (47 штук) 

Вопрос к Ф:  – а причем тут «Армагеддон».

Ответ:   О! Так дело в том, что это была битва добра со злом. Вот и Ваша «компьютерная жизнь» имеет добро, т.е. живет.  А как только, выключите компьютер –  «компьютерная жизнь» погибнет.   И так вечно, по кольцу Армагеддона. Включите и «компьютерная жизнь» начнется.

Версия программиста – обычный цикл с отображением в плоскости с координатами X-Y.

·        Программист увидел обычный цикл, и даже обиделся. Какая тут «компьютерная жизнь»?  Обычный «висяк»  с прерыванием по клавиатуре или мышки.

·        Вот если, еще ввести какие-нибудь «примочки». Например, «съедение» двух тел, или «звуки поглащения». 

·        А почему такая «хреновая» графика всего лишь 2D и знакоместах? Надо  использовать точечную графику. Ввести масштабирование, ввести звуковые эффекты при столкновениях.

 

Резюме программиста -  улучшать, улучшать и еще раз улучшать, как завещал нам великий  программист  человеческих душ. ( Не помню только, как его звали)

И  писать надо на Ассеблере или СИ, или лучше в машинных кодах. Что бы, было доступно и понятно всем, а не только «фортерам».

     

Версия теоретика физика –  модель показана в «нереальной» физической среде.

·        На сайте http://technic.itizdat.ru/   автор Дубровский П.И.   имя на форуме -   d-pi   предложил 1 миллион рублей за компьютерную (расчѐтную) модель, разработанную,  согласно расчѐтной схемы  молекулярно-кинетической теории  (МКТ), если  эта модель  подтвердит некоторые физические явления, например, закон Архимеда. Адрес1. Адрес2.  Ниже, скан из статьи  d-pi 

 

·        Данная программа показывает  «выталкивание»  инородного тела  в «жизненном пространстве»  на экране компьютера. Это и есть закон Архимеда для представленной «цивилизации компьютерной жизни».

·        Очень туманный термин (цитирую)    модель, согласно расчетной схемы МКТ…    не позволяет конкретизировать задачу автора d-pi 

·        Схема – это нечто «жесткое» и «постоянное», имеет рисунок и графическое представление объекта. 

·        Расчетная схема … теории  хотелось бы увидеть!?    

·        Модель,  представленная программой, «выталкивает» треугольное тело в направлении прямого угла. Т.е. по истечении некоторого времени,  «треугольник выдавливания» сместиться вниз и влево.  Это зависит от количества тел и их длинны. 

·        Необходимо нажать пробел или кликнуть правой кнопкой мышки – экран очиститься и кликнув на новое место перенести «треугольник выдавливания».

·        «Теория без практики – мертва» - согласно, такому правилу действует и программа.  Это теоретическая программа и имеет  «нереальную» физическую среду. Это «жалкое подобие» реального движения  молекул и атомов.

·        Если обозначить конкретные условия, то по этим условиям можно задать любые движения и функции программы.

·        В данной версии, можно увидеть  «аппендицит»  программы,  если случайно тело движения попадет во внутрь «треугольника выдавливания».   «Треугольник»  начнет метаться в разные стороны. «Ему больно?». Да или нет?

·        В адрес автора d-pi   такое резюме:

  1. «Кто платит тот и заказывает музыку».
  2. Но  «сначала  стулья потом деньги».  Неправильно составлена заявка на программу по имитации МКТ.
  3. Рекомендую так: « Требуется программист для составления программы имитационной модели МКТ по  ТУ заказчика. Цена договора 1 000 000 руб. Составляется договор с условиями и графиком работ. Предложения направлять по адресу… ».
  4. С подобной задачей   уже можно сладить и выполнить ТУ (технические условия). Если конечно, у заказчика есть деньги и он готов платить.
  5. А так получается, что d-pi  за обещание хочет получить  программный  продукт.
  6. Пожалуйста, уважаемый d-pi , применяйте данный вариант имитации МКТ и изучайте  ее законы.  Нет договора, нет  обязанностей. Пользуйтесь тем, что дано бесплатно.

 

Версия практика -  «такой жизни никому не пожелаешь».

·        Разве это «компьютерная жизнь». Это суета. Нет логики, нет правил. Надо, что бы как в реальной жизни. Дом, работа,  сон, еда. Вот есть такая программа «жизнь»   Основана на четких правилах. Предложил Джон Конвей.

 

·        Есть правила, есть результат. А в данной программе, какой результат?  Она к чему  стремиться? Может все тела, что-то хотят получить?  Нет у тел правил, и поэтому это не «компьютерная жизнь», а случайный процесс. По типу волнения на море или  бега облаков. 

·        И наблюдаем мы, обычный «случайный» шум. 

·        С так таким же успехом, можно слушать шум реки или разговор толпы.  Все перемещается и ничего ни от кого не зависит. Нет, это не жизнь.

Рекомендую в случайность внести «правила» и таким образом, получим «компьютерную жизнь». Например:

1.      Правило массы – чем больше тело (т.е. длиннее), тем медленнее оно двигается;

2.      Правило соударений – большое тело, если сталкивается с маленьким. Есть два варианта – слияние или  отражение.

3.      Внешнее поле. По типу электромагнитной волны. На все движение, т.е. на случайность, накладывается  дополнительный внешний гармонический сигнал. В этом случае движение будет случайным и одновременно колебательным.

4.      Правило потери энергии – рождения и умирания.  При движении расходуется энергия, если в тело ударились – это + к энергии, если тело ударилось – это – к энергии. Т.е. если все время ударяться – то потеряешь энергию и остановишься.

5.       И так далее.

 Это  правила  из  реальных физических объектов. А в программе, они только «выпячиваются» и « подчеркиваются».

 

·        Если вводить правила на случайный процесс – это получится синергетика Вспомните, что  есть такая наука кибернетика, а синергетика появилась с появлением компьютеров.

 

Получение текста программы и дополнительные опции.

·        Программа  oparyshi_v2.exe  содержит в теле текст основного модуля. В нем алгоритм выполнения, меню. Все дополнительные тексты функций располагаются в основной библиотеке и доступны по ссылке 3  таблица начала статьи. Программа в архиве test_monsys_all.zip

 

·        Получить текст  основного модуля    в работе  программы нажать служебную клавишу ctrl и затем функциональную клавишу F4; 

·        В рабочем каталоге сформируется файл oparyshi_v2a.f  , который откроется редактором БЛОКНОТ.

·        Формат файла текстовый, кодировка 866 ОEM русская. Выбрать шрифт ТЕРМИНАЛ, набор символов OEM/DOS Ниже на рисунке показаны установки редактора.

·        Ctrl+F1 -  открывает перечень доступных функций для программы. Их назначение ясно из комментариев;

·        Получить все тексты программы, доступно из файла test_monsys_all.zip   Распаковать, выполнить с командной строкой test_monsys.exe s 3 3 3 <enter>  или после запуска программы, последовательно нажать цифровую клавишу =3= три раза.

·        Сформируется каталог, в котором содержаться все  форт-программы для формирования данной программы.

·        Редактируются  2-а файла данной программы: oparyshi_v2.f   oparyshi_v2a.f

·        Повторно создать новый  файл oparyshi_v2.exe – выполнить в каталоге компиляцию текста компилятором FORTH spf4.exe   \\100_spf4.exe    test_monsys.f <enter>   Сформируется новый исполняемый файл.

Выводы

 Данная  программа предназначена для  заставок и  немного имитирует МКТ-молекулярно-кинетическую теорию.   Имеется дополнительный функционал – звуковое сопровождение формата mid.  Функциональные клавиши ctrl+f5.  А так же ссылки для музыкальных заставок и интернет ТВ.

 Особенности программы:

·        Имеет упрощенный «оконный» интерфейс.

·        Программа не устанавливается, не прописывается в системные библиотеки,

·        Программа содержит в своем «теле»  файл  основного модуля  для  ознакомления с алгоритмом.

·        Программа работает под операционными системами WINDOWS 95/98/NT/2000/XP/Vista/Win7/8/10 и использует только функции api- ядра системы – файл kernel32.dll

·        Программа написана на языке Форт версия  spf4.exe – автор  А. Черезов  http://www.forth.org.ru

·        Программа доступна для использования, изучения и модификации всем желающим.

·        За модифицированный  тест отвечает сам модификатор. Автор может, при наличии времени, только кратко провести консультацию по используемым им forth-словам.

·        Автор оставляет за собой право на модификацию и улучшение алгоритма и отображения.

·        Сторонние ссылки в работе даны для пояснения материала, взяты в свободном доступе и не нарушают других авторских прав.

·        Сторонние  ссылки могут не работать, по причине изменений их владельцами ссылок и автор просит об этом помнить при чтении работы и понимать, что все течет и все изменяется;

·        В связи возможными нарушениями работы сервера автора, нет резервной линии и нет гарантированного питания в нашей деревне, имеется резервное хранилище тестов по адресу:       https://cloud.mail.ru/public/9eDZ/jxpRsaKmB

 

---------------------------------------------------------------------------------------------------------------------------------

Автор - Шабронов Андрей Анатольевич

Тс.  +7 913-905-8839     e_mail -  shabronov@ngs.ru  

ред. 1-2-2017  .

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

     

Ред.2021-3-17-тсп