Драконограф писал(а):
alexus писал(а):
Простите, не понял вопроса... О какой искусственной системе идет речь?
Система, применяющая прогязык (о нём шла изначально речь) - это искусственный исполнитель программ на этом языке или его формальная модель (напр.. "машина Тьюринга", "нормальный алгорифм Маркова"); понятно, что можно рассматривать и человека, действующего формально по программно строгой инструкции ("винтик", "рутинёр", "исполнитель"). Вот что и как она, эта система (модель), задаёт в Вашем представлении?
Если честно, то вопрос понятнее не стал... Поэтому начну несколько издалека и пространно, может получится ответить...
Итак, пусть есть система, которая находится во внешней среде и взаимодействует с ней. Взаимодействие (в простом случае) состоит из двух частей: возмущение (среды) и реакция (системы). При этом надо иметь ввиду, что не все виды возмущений среды обрабатываются системой и даже те, которые обрабатываются, обрабатываются не всегда, а только в том случае, когда их параметры находятся в рамках "порога чувствительности" системы.
Теперь разберемся с тем, как происходит выработка реакции в системе в ответ на внешнее возмущение. Известно, что система состоит из элементов и связей. Внешнее возмущение передается на один или более элементов системы (сенсоры). Когда на элемент попадает возмущение, он активизируется и что-то делает. Эта первичная реакция элемента по связям поступает на другие элементы системы, те тоже что-то делают... и т.д. На каком-то этапе полученная совокупная реакция воздействует на внешнюю среду. Это упрощенная модель, поскольку она не включает в себя "подпитку" элементов (выделения ресурсов); возможное наличие "мозгового" (аналитического) центра, памяти системы, перестроение связей и состава элементов и пр., но пока такой модели системы будет достаточно.
Однотипные повторяющиеся возмущения внешней среды формируют устойчивые связи между элементами системы, таким образом, чтобы снизить (энергетические) затраты системы на восприятие возмущения и выработку соответствующей реакции. Данная точка зрения является распространенной, но... не полной. Можно сказать и по другому, что система формирует свой состав элементов и связей между ними с целью расширения круга воспринимаемых возмущений. Формирование состава элементов возможно и за счет включения других систем. Снижение затрат достигается и за счет отторжения элементов системы. Под отторжение попадают элементы, которые не участвуют в общем процессе или те, чье участие минимально, и может быть компенсировано другими элементами при общем снижении затрат. (Сам тезис о необходимом "снижении затрат" я пока объяснять не буду, в том числе, не буду ссылаться на "законы термодинамики"... поскольку все это, с моей точки зрения, несколько... ошибочно. В общем, это отдельная тема.) С другой стороны, для системы важна максимизация потребности в ней внешней среды, поскольку такая максимизация открывает больший доступ к ресурсам внешней среды. Разность между получаемыми и затраченными ресурсами представляет собой "прибыль" (избыток) ресурсов, получаемых системой. Этот избыток идет на две взаимно противоположные цели: "ожирение"/старение системы и развитие/омоложение системы. Это тоже отдельная тема...
Вернемся к компьютерам и программным системам. Программа - это типичная реакция системы на внешнее возмущение. Что здесь является системой и о какой внешней среде идет речь?.. Опустим вопросы взаимодействия различных социальных групп, в результате которых программист(ы) получает(ют) задание создать программу. Созданная программа представляет собой алгоритм действий операционной системы (включая взаимодействие с пользователем и "железом), приводящий к нужному (внешней среде - пользователю) результату. Операционная система выделяет необходимые программе ресурсы (время работы процессора, оперативную память, дисковое пространство, дисплей, сетевые порты и пр.)
Программы пишутся на языках программирования, которые тоже являются системами. Например, для языков структурного программирования: структуры данных (элементы) и операторы (связи между элементами). Текст программы с помощью транслятора (интерпретатора или компилятора) "привязывается" к конкретной исполнительной среде (операционной системе, виртуальной "машине").
Ответил ли я на Ваш вопрос?
Драконограф писал(а):
Также возникает из Ваших формулировок о "неявном" ощущение, что сама эта система (не её создатель, который может - и должен, наверное - знать больше, чем в систему заложено) делает "что-то ещё", кроме как исполняет программу? так ли это? что Вы имели в виду?
Создатель может знать больше или меньше, чем его Творение. Все дело в том, какой смысл закладывается в слово "знать". Создатель закладывает принципы, а Творение взаимодействует с реальностью. И если слово "знать" подразумевает конкретные сведения о реальности, то Творение ими владеет, как правило, лучше, чем Создатель. Если же речь идет о принципах, то Творению трудно соревноваться с Создателем.
Что касается исполнения программы в системе... то программа - это частный случай, одна из реакций, фрагмент, существования системы. Подобных реакций может быть много и система должна их всех обеспечивать... и сама развиваться... То есть, да - система не только исполняет отдельную программу, но и обслуживает ресурсы, другие программы, контролирует состояние "железа", поддерживает коммуникации и т.д. и т.п.
Стоит избегать упрощений, которые говорят, что система сама не развивается, ее развивает Создатель. Это не так... "Не только гончар лепит кувшин, но и кувшин лепит гончара". "Кувшин" (Творение, система) приносит "гончару" (Создателю) дополнительные ресурсы, развивает его мастерство... и, как следствие, само развивается... в новых воплощениях.