OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Июль, 2019 01:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Программы | Системы
СообщениеДобавлено: Суббота, 05 Март, 2011 08:42 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Сергей Прохоренко писал(а):
На праздниках постараюсь перевести то хорошее, что тут было упомянуто про ООП, на простой русский язык и систематизировать. Надо признать, что новояз :shock: , которым описывается ООП, немало способствует затуманиванию сути вопроса.
В качестве совета...
1. Желательно показать преемственность идей структурного, модульного и объектно-ориентированного программирования. В свое время я пытался это сделать, может быть это как-то Вам поможет. Трансформацию идей и концепций полезно понимать для их правильного позиционирования и использования в своей работе.

2. Исходя из п. 1, можно показать, что у объектно-ориентированного программирования иная сфера применения. Если структурное и модульное программирование имели своей целью улучшение качества программ (удобство разработки, развития и сопровождения программ), то областью ООП является разработка систем. Невозможно получить вразумительный ответ на то, зачем программе может понадобиться разнообразие, получаемое в результате полиморфизма или наследования. В программе проще (и правильнее!) вызвать какую-то подпрограмму (процедуру/функцию) и, если необходимо, то "подработать" данные перед передачей в нее в виде фактических параметров и/или "подработать" данные после получения результата из нее. Создавать же отдельные самостоятельные программные блоки, где данные обрабатываются сообразно с их спецификой, для программ избыточно. В системе это не так. Система содержит необходимые "строительные блоки" и правила их связывания, благодаря которым, решаются конкретные задачи.

3. Исходя из п. 2, можно показать, чем подход к созданию систем принципиально отличается от подхода к разработке программ. Самое важное среди этих отличий состоит в том, что программа призвана решать некоторую задачу (или небольшое подмножество однотипных задач). Система, сама по себе, задач не решает, она представляет собой модель... некоторой предметной области. С помощью этой модели могут решаться множество самых разных задач, в том числе, тех задач, о которых разработчики систем (и их частей) возможно даже не догадывались. И здесь разнообразие элементов не только полезно, но и важно с точки зрения использования и развития системы/предметной области.

4. Исходя из п. 3, нетрудно заметить, что изменение в точке приложения усилий при разработке, порождает и иные подходы к анализу и проектированию. При решении задач (написании программ) принципиально важно найти удачный способ/метод/алгоритм решения и успешно его реализовать. Если впоследствии изменить метод, то программу придется существенно изменить. При разработке систем, важно уметь моделировать предметную область, выделить в ней ключевые элементы (подсистемы), установить правила взаимосвязи между ними, то есть, нужно семантическое моделирование, позволяющее выделить и отобразить в модели суть каждого понятия (элемента и связи). А потом, на основе полученной семантической модели, развивать многообразие элементов, ориентируя их на возможность применения в самых разных задачах.

И т.д.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 05 Март, 2011 10:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
alexus писал(а):
Сергей Прохоренко писал(а):
На праздниках постараюсь перевести то хорошее, что тут было упомянуто про ООП, на простой русский язык и систематизировать. Надо признать, что новояз :shock: , которым описывается ООП, немало способствует затуманиванию сути вопроса.
В качестве совета...
1. Желательно показать преемственность идей структурного, модульного и объектно-ориентированного программирования.
Эта преемственность явлена в Оберонах очень недвусмысленно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 05 Март, 2011 13:14 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
alexus писал(а):
Невозможно получить вразумительный ответ на то, зачем программе может понадобиться разнообразие, получаемое в результате полиморфизма или наследования. В программе проще (и правильнее!) вызвать какую-то подпрограмму (процедуру/функцию) и, если необходимо, то "подработать" данные перед передачей в нее в виде фактических параметров и/или "подработать" данные после получения результата из нее. Создавать же отдельные самостоятельные программные блоки, где данные обрабатываются сообразно с их спецификой, для программ избыточно. В системе это не так.
Логично. Был у меня опыт. Всё встало на свои места после того как я прекратил попытки ООП-изировать программу, которая несмотря на немаленький размер системой не являлась. То есть размер тут не особо важен. Для себя я её назвал замкнутой программой. А то что Вы сейчас назвали системой я для себя тогда назвал открытой программой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 08 Март, 2011 19:27 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Сергей Губанов писал(а):
alexus писал(а):
...
Создавать же отдельные самостоятельные программные блоки, где данные обрабатываются сообразно с их спецификой, для программ избыточно. В системе это не так.
Логично. Был у меня опыт. Всё встало на свои места после того как я прекратил попытки ООП-изировать программу, которая несмотря на немаленький размер системой не являлась. То есть размер тут не особо важен. Для себя я её назвал замкнутой программой. А то что Вы сейчас назвали системой я для себя тогда назвал открытой программой.
Вот кстати, интересно всё же уточнить термины. Программа - это случай системы? чем характеризуемый? У меня как-то, в частности, в связке с Поликарповой и Шалыто возникает такой критерий - мощность множества состояний. Для программы (информодели для "машинно-формального" исполнителя) мы ограничиваемся конечным - реальная же задача (не идеального ли исполнителя её решения alexus называет "системой", решительно отграничивая от программы?) в общем случае допускает бесконечное число состояний.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 09 Март, 2011 08:42 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Драконограф писал(а):
Вот кстати, интересно всё же уточнить термины. Программа - это случай системы?
Программа не случай системы, она... вторая "сторона медали". Так же, как в управлении, есть прямой метод воздействия субъекта на объект (и объекта на субъект), а есть косвенный. Прямой и косвенный методы управления не являются частными случаями друг друга. Можно построить аналогию между программой и прямым методом воздействия, как "кратчайшему пути к результату". Система, как известно, состоит из элементов и связей. Она не решает задач, так, как это делает программа, но она предоставляет средства (те самые, элементы и связи) для решения задач. То есть, система косвенно способствует решению (с той или иной эффективностью).
Можно сменить ракурс рассмотрения. Система и программа имеют цели. Программа ищет кратчайший (за меньшее число шагов или за меньшее время) путь к цели. Задача системы создать такие элементы и связи, которые бы способствовали этому, но не для одной программы, а множества программ. Совершенствование своей структуры - это важный элемент системы, но... не ее цель. Цель (предназначение) системы, как и программы, находится вовне их. Система, стремясь к своей цели, вступает во взаимодействие с внешней средой. Среда воздействует на систему, система воздействует на среду. В общем случае, частная реакция системы на внешнее возмущение, - это и есть "программа", некоторое действие (именованная последовательность действий, алгоритм), приводящее к результату. Но меняется внешняя среда, меняется система, меняются и реакции (программы)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Среда, 09 Март, 2011 12:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9127
Откуда: Россия, Орёл
Спасибо за интересную тему. Вынес её отдельно.

Мне ваше деление представляется ценным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Среда, 09 Март, 2011 21:33 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Илья Ермаков писал(а):
Спасибо за интересную тему. Вынес её отдельно.
Мне ваше деление представляется ценным.
Тогда и Вам спасибо, за внимание.
Можно вернуться к п.п. 3-4, поскольку об этом в литературе (ни по ООП, ни по системам) не говорится (может Драконограф, как великолепный библиограф, меня поправит).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Среда, 09 Март, 2011 22:47 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
alexus писал(а):
Илья Ермаков писал(а):
Спасибо за интересную тему. Вынес её отдельно.
Мне ваше деление представляется ценным.
Тогда и Вам спасибо, за внимание.
Можно вернуться к п.п. 3-4, поскольку об этом в литературе (ни по ООП, ни по системам) не говорится (может Драконограф, как великолепный библиограф, меня поправит).

В литературе по ООП я взгляда с такой стороны точно не встречал.
С вашим подходом получается, что язык программирования является системой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Четверг, 10 Март, 2011 00:07 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Валерий Лаптев писал(а):
С вашим подходом получается, что язык программирования является системой.
Да, конечно. Практически любой язык является системой. Хорошо, если бы язык программирования был строго формальной системой...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 10 Март, 2011 10:19 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
Драконограф писал(а):
Вот кстати, интересно всё же уточнить термины. Программа - это случай системы?
она... вторая "сторона медали". ...Можно построить аналогию между программой и прямым методом воздействия, как "кратчайшему пути к результату". Система, как известно, состоит из элементов и связей. Она не решает задач, так, как это делает программа, но она предоставляет средства (те самые, элементы и связи) для решения задач. То есть, система косвенно способствует решению (с той или иной эффективностью).
Можно сменить ракурс рассмотрения. Система и программа имеют цели. Программа ищет кратчайший (за меньшее число шагов или за меньшее время) путь к цели. Задача системы создать такие элементы и связи, которые бы способствовали этому, но не для одной программы, а множества программ. Совершенствование своей структуры - это важный элемент системы, но... не ее цель. Цель (предназначение) системы, как и программы, находится вовне их. Система, стремясь к своей цели, вступает во взаимодействие с внешней средой. Среда воздействует на систему, система воздействует на среду. В общем случае, частная реакция системы на внешнее возмущение, - это и есть "программа", некоторое действие (именованная последовательность действий, алгоритм), приводящее к результату. Но меняется внешняя среда, меняется система, меняются и реакции (программы)...
Да, это очень интересно. Можно сказать, что система - это исполнитель программы? в предельном случае - модифицирующий программы (напр. интеллектная информатическая система)? Такой взгляд был у Тьюринга - в переводе есть у Мичи и Джонстона (в выдержку из этого сообщения не вошло, но для себя где-то цитировал; м.б. найду и дам как-нибудь... для поддержания репутации библиографа :)).
Кстати, Ваш подход, видимо, предполагает, как у "спецпредметников", что программу нужно всегда рассматривать "на оборудовании" - т.е. в комплексе с исполняющей машиной (а равно и её формальной моделью) - т.е. в рамках "слоистой архитектуры", построенной, скажем, как описано здесь?

P.S. Нашёл Тьюринга:
Мичи Д, Джонстон Р. в Компьютер-творец на с.140. писал(а):
...создателям <информашин> в первую очередь приходит в голову мысль использовать их (машины) в качестве своих рабов, т.е. поручать им только такую работу, которая продумана человеком до мелочей и при которой пользователь полностью осведомлен о том, что в принципе делает машина на каждом своем шаге. До сих пор мы использовали машины только в таком качестве. Но обязательно ли, чтобы подобное положение сохранялось всегда? Предположим, мы снабдили машину некоторым первоначальным набором таблиц команд, построенных т. о., чтобы в случае необходимости таблицы можно было модифицировать. Нетрудно представить, что после того, как машина поработает некоторое время, команды изменятся до неузнаваемости, но тем не менее следует считать, что машина по-прежнему выполняет очень нужные вычисления. Возможно, это будут те результаты, на которые мы рассчитывали, запуская машину, но полученные гораздо более эффективным способом. Тогда придется признать, что такое достижение машины не было предусмотрено, когда мы закладывали в нее первоначальные команды. Она – как ученик, который много взял от своего наставника, но еще больше познал, работая самостоятельно.
Имеется в виду, что информашиной выполняется некая программа изменения программ, выполняющих заданные функции; в ней предусматривается обработка команд как операндов и одновременно интерпретация данных как команд. Программа реализует алгоритм индуктивного вывода по результатам наблюдения за поведением людей, а также за деятельностью самой системы.
Как можно понять, под «таблицей команд» Тьюринг разумеет программу в машинных кодах.
Тьюринг допускает, что самообучаемая инфорсима, как и человек, будет ошибаться и должна пробовать получить некоторые результаты заново.


Последний раз редактировалось Владислав Жаринов Четверг, 10 Март, 2011 15:29, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Четверг, 10 Март, 2011 10:30 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
Валерий Лаптев писал(а):
С вашим подходом получается, что язык программирования является системой.
Да, конечно. Практически любой язык является системой. Хорошо, если бы язык программирования был строго формальной системой...
Тут недавно говорили про ограничения тьюринг-полного языка... не знаю, насколько это точно про формальность (прежде всего - критерии математические или какие имеются в виду?).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 10 Март, 2011 18:13 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Драконограф писал(а):
Можно сказать, что система - это исполнитель программы? в предельном случае - модифицирующий программы (напр. интеллектная информатическая система)?
Система, с одной стороны, предоставляет средства/ресурсы для исполнения программы (однако было бы не совсем корректно называть систему "исполнителем", несмотря на то, что такое толкование встречается повсеместно); с другой стороны, система неявно задает "область интересов" программе (формирует ее специализацию).
Что такое "интеллектная информатическая система" я не знаю... Думаю, что любые разговоры об "интеллектуальных системах" - псевдонаучная спекуляция, по крайней мере, до тех пор, пока нет общепринятого/общепризнанного понятия "интеллект".
Драконограф писал(а):
Как можно понять, под «таблицей команд» Тьюринг разумеет программу в машинных кодах.
Тьюринг допускает, что самообучаемая инфорсима, как и человек, будет ошибаться и должна пробовать получить некоторые результаты заново.
А что такое "ошибка"?..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Четверг, 10 Март, 2011 19:02 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Драконограф писал(а):
Тут недавно говорили про ограничения тьюринг-полного языка... не знаю, насколько это точно про формальность (прежде всего - критерии математические или какие имеются в виду?).
Математические критерии, конечно... Собственно, что мы имеем в основе?.. Два элемента:
1. Запись в память (присваивание значение некоторой области памяти, в частном случае, "вывод в порт");
2. Логические операции (операции над двоичными данными NOT, OR, XOR, AND).
Все остальные конструкции (операторы и операции) получаются программно-аппаратной комбинацией этих двух "перво-элементов". На определенные операции накладываются ограничения (исключают эти возможные операции из реализации).
Для примера, операция сложения (правильнее говорить: складывания) битов - это частный случай применения логических операций. Младший бит результата сложения двух бит образуется за счет применения операции XOR, старший бит образуется за счет применения операции AND к исходным битам.
Код:
Младший бит:
0 xor 0 = 0; 0 xor 1 = 1; 1 xor 0 = 1; 1 xor 1 = 0;
Старший бит:
0 and 0 = 0; 0 and 1 = 0; 1 and 0 = 0; 1 and 1 = 1;
(понятно, что процессоры давно умеют выполнять сложение не по битам, но сути операции это не меняет). Прочие арифметические операции над целыми числами получаются аналогично. Однако количество возможных логических операций... бесконечно, для образования нового "уровня" типов/классов операций востребованы менее пяти комбинаций).
Операции сравнения (=, #, >, <, >=, <=), в свою очередь, являются частным случаем операции вычитания.
Аналогично, с операторами. Даже пресловутый GoTo - это всего лишь выполнение оператора присваивания указателю команд нового значения, которое может быть "абсолютным" (новым) или "относительным": вычисленным на основе текущего значения (например, текущее значение + 20h).

Из чего следует, что задачей языка программирования является получение такого множества операторов и операций, которые бы позволяли эффективно решать задачи некоторой предметной области (полнота и непротиворечивость) и последующее проецирование, данного множества, на указанные выше простейшие операторы и операции (исполнимость). Когда эти задачи решены, то на следующем этапе формирования языка надо подумать о правилах/ограничениях построения композиций из языковых примитивов, и, конечно, об удобстве их использования разработчиками (структурное, модульное, объектно-ориентированное, функциональное программирование и пр. и пр.).

(Даже самое хитроумное архитектурное сооружение складывается из... простых кирпичей)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Четверг, 10 Март, 2011 22:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9127
Откуда: Россия, Орёл
По поводу системы как среды для выполнения программы...
У меня возникает стойкое дежавю на такие соображения в связи с лекцией А. Берса (ИСИ СО РАН): viewtopic.php?f=62&t=3031


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Пятница, 11 Март, 2011 02:54 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Илья Ермаков писал(а):
По поводу системы как среды для выполнения программы...
У меня возникает стойкое дежавю на такие соображения в связи с лекцией А. Берса (ИСИ СО РАН): viewtopic.php?f=62&t=3031
Н-да... Ну, и чтиво Вы подкинули... :) Честное слово, подобного бреда (простите, великодушно, но иного слова не смог подобрать)... я давно не читал. На протяжении статьи автор поднимает много тем, и при этом, ни в одной из них ничего не понимает (за исключением может быть исторических ссылок). Но интереснее всего было читать ответы на вопросы в конце статьи...
Пока читал, сделал много вырезок, не буду их все приводить, чтобы не было слишком утомительно, но для примера (даже не комментирую):
Андрей Александрович Берс писал(а):
Что для нас, информатиков, существенно из того, что они сумели сделать впервые в мире?
Было показано, что формой существования цивилизации является деятельность, которая связывает ее в нечто целое. Что системы делятся на естественные и искусственные, и что они существенно различаются, потому что естественные системы описываются причинно-следственными связями – отвечают на вопрос «почему это происходит?». Искусственные же системы отвечают на вопрос «кому это нужно?», потому что они следуют целям, которые надо достигнуть, и значит, они подчиняются разным законам.

Андрей Александрович Берс писал(а):
Каждая конкретная деятельность задается целью, обязательно имеет начало и завершается. И, следовательно, конкретная деятельность – это искусственная система.

Андрей Александрович Берс писал(а):
Поскольку программный фрагмент – это конкретная деятельность, то она обязательно заканчивается.

Андрей Александрович Берс писал(а):
Но, если мы захотим завести подобъекты в объекте, то принцип информационной замкнутости немедленно скажет нам, что подобъект объекта не может быть объектом и обратиться к нему как к объекту нельзя.

Андрей Александрович Берс писал(а):
Дело только в том, что если по отношению к программам и программным фрагментам мы говорим, что их каждое единичное исполнение начинается и заканчивается, то все программисты прекрасно знают, что если программа зациклилась, значит, она перестала выполнять свою работу.

Андрей Александрович Берс писал(а):
Из этого стоит сделать четкий вывод, что операционная система программой не является, а компьютер программе не равносилен. И компьютер, и ОС как раз тем и занимаются, что они бегают по циклу.

Андрей Александрович Берс писал(а):
Я называю эти принципы «Священные коровы программирования»:
1. Всякое единичное исполнение завершается, т. е. никакая часть программы не зацикливается, если мы этого не предположим, мы не можем сложную работу разложить на простые.
2. Корректность связей должна обеспечиваться системой, висячие указатели не допустимы; за связями, которые прокладываются динамически, кто-то должен присматривать, чтобы они не испортились.
3. Нельзя одновременно из разных источников вносить изменения в одно и то же место – это общеизвестно.
И эти три принципа, ни в какой работающей программе реально не нарушаются – это принципы абсолютного запрета, и вот четвертый принцип,
4. Не пользуйтесь информационно не замкнутыми объектами и обстановками и у вас не будет побочных эффектов, т. е. будет делаться то, что вы хотите, и не будет происходить то, о чем вы не знаете.
А это значит, что у вас не будет отладки, кроме отладки синтаксической правильности, – вот к чему это приведет.
Если мои сообщения вызвали ассоциации с этими, то мне пора лечиться... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Март, 2011 05:26 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
Драконограф писал(а):
Можно сказать, что система - это исполнитель программы? в предельном случае - модифицирующий программы (напр. интеллектная информатическая система)?
Система, с одной стороны, предоставляет средства/ресурсы для исполнения программы (однако было бы не совсем корректно называть систему "исполнителем", несмотря на то, что такое толкование встречается повсеместно); с другой стороны, система неявно задает "область интересов" программе (формирует ее специализацию).
Что такое "интеллектная информатическая система" я не знаю... Думаю, что любые разговоры об "интеллектуальных системах" - псевдонаучная спекуляция, по крайней мере, до тех пор, пока нет общепринятого/общепризнанного понятия "интеллект".
Драконограф писал(а):
Как можно понять, под «таблицей команд» Тьюринг разумеет программу в машинных кодах.
Тьюринг допускает, что самообучаемая инфорсима, как и человек, будет ошибаться и должна пробовать получить некоторые результаты заново.
А что такое "ошибка"?..
Это к Тьюрингу :) В принципе можно сказать - получение результата, не отвечающего системе представлений (формальной), заложенной в систему её разработчиком. Тогда "интеллектная" информатическая система должна запускать механизм нового поиска. Были практические примеры (и есть, наверное) - та же система Эвриско (см. статью Лената здесь).
Насчёт "интеллектуальности" искусственных систем полностью согласен - поэтому и называю их "интеллектными". В теме, откуда упомянутое сообщение, говорил, что считаю ИИ приближением к текущему представлению об интеллекте. В частности, оно формализует системы представления знаний о мире - и тот же принцип причинности - кстати, об этом есть в конце выдержки из Мичи и Джонстона. Естественно, в той части, в какой это отчуждаемо от сознания. Это, наверное, и к вопросу о том, что первое же цитированное положение из Берса (о том, чем отличаются естественные системы от искуственных) вызывает вопросы :) Конечно, целеполагание свойственно естественному интеллекту - и потому он наделяет его имитацией искусственные подобия... при этом всегда надо учитывать общие ограничения на формализацию, показанные, допустим, в завершающем пункте этой статьи. Не говоря о том, что реальная деятельность всегда завершается лишь в идеале (точнее - для частного случая каких-то ограниченных целей), что справедливо и для информатизованного её представления - отсюда и проблема остановки алгоритма, и понятие реагирующих систем (здесь на с.10) или деятельности в подлинно реальном времени (в начале этого подпункта).
А вот как система (искусственная) неявно что-то задаёт? Вообще в Вашем понимании это машина (или её модель) или нет? тогда что?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы | Системы
СообщениеДобавлено: Пятница, 11 Март, 2011 08:04 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
...задачей языка программирования является получение такого множества операторов и операций, которые бы позволяли эффективно решать задачи некоторой предметной области (полнота и непротиворечивость) и последующее проецирование, данного множества, на указанные выше простейшие операторы и операции (исполнимость). Когда эти задачи решены, то на следующем этапе формирования языка надо подумать о правилах/ограничениях построения композиций из языковых примитивов, и, конечно, об удобстве их использования разработчиками (структурное, модульное, объектно-ориентированное, функциональное программирование и пр. и пр.).
Ну, в принципе из простейших микроопераций (соответствующих пониманию информашины как автомата с памятью) сначала конструируют команды процессора, обычно подразделяемые уже на три класса (передачи, преобразования, решения). Можно ещё уровни ввести, допустим, как здесь:
Вложение:
Комментарий к файлу: Иерархия описания работы информашин и введение в язык уровня III (микроопераций).
Каган-ЭВМиСист-извл(Гл6).djvu [75.69 КБ]
Скачиваний: 308
Конечно, уровни позволяют рационально ограничить задачу межуровневого проецирования (которая в противном случае, надо полагать, может оказаться чересчур сложной).
А что имеется в виду под неформальностью прогязыка?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Март, 2011 10:29 
Аватара пользователя

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 746
Драконограф писал(а):
alexus писал(а):
А что такое "ошибка"?..
Это к Тьюрингу :) В принципе можно сказать - получение результата, не отвечающего системе представлений (формальной), заложенной в систему её разработчиком.
Нет, нет... Ни в коем случае!.. То, что нам неизвестно (не соответствует нашим представлениям) нельзя называть ошибкой! Мы просто перестанем развиваться и начнем деградировать. Наши представления неполны, дефрагментарны и противоречивы... Я уже не говорю о том, что многое из того, что соответствует нашим представлениям - это тоже ошибки, просто мы об этом еще не знаем (или делаем вид, что не знаем)...
Драконограф писал(а):
Тогда "интеллектная" информатическая система должна запускать механизм нового поиска.
Поиска? Среди чего? Откуда берется уверенность, что ответ где-то заготовлен? В какой области будем искать?.. Как сформулируем критерии поиска того, что нам неизвестно? Эх...
Драконограф писал(а):
Насчёт "интеллектуальности" искусственных систем полностью согласен - поэтому и называю их "интеллектными". В теме, откуда упомянутое сообщение, говорил, что считаю ИИ приближением к текущему представлению об интеллекте. В частности, оно формализует системы представления знаний о мире - и тот же принцип причинности
А что такое знание? Это причина или следствие действия интеллекта (то есть, результат или исходный "материал", "курица" или "яйцо")? А может быть знания - побочный продукт действия интеллекта? Может быть интеллект - это "корова", которую мы холим и лелеем не ради молока, но исключительно для навоза? Меня всегда занимали мысли об этом... Одно дело открытие, сделанное ученым, и совсем другое... те ощущения и чувства, которые он переживает при этом. Почему после сделанных открытий все великие умы (математики, физики, химики, биологи...) начинают "философствовать"? С чем таким они сталкиваются, что подвигает их на размышления о мироздании? Может быть это "Нечто" и есть самое главное, тот беспредельный предел, который доступен познающему человеку?
Драконограф писал(а):
А вот как система (искусственная) неявно что-то задаёт? Вообще в Вашем понимании это машина (или её модель) или нет? тогда что?
Простите, не понял вопроса... О какой искусственной системе идет речь?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Март, 2011 05:05 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
Драконограф писал(а):
А вот как система (искусственная) неявно что-то задаёт? Вообще в Вашем понимании это машина (или её модель) или нет? тогда что?
Простите, не понял вопроса... О какой искусственной системе идет речь?
Система, применяющая прогязык (о нём шла изначально речь) - это искусственный исполнитель программ на этом языке или его формальная модель (напр.. "машина Тьюринга", "нормальный алгорифм Маркова"); понятно, что можно рассматривать и человека, действующего формально по программно строгой инструкции ("винтик", "рутинёр", "исполнитель"). Вот что и как она, эта система (модель), задаёт в Вашем представлении? Также возникает из Ваших формулировок о "неявном" ощущение, что сама эта система (не её создатель, который может - и должен, наверное - знать больше, чем в систему заложено) делает "что-то ещё", кроме как исполняет программу? так ли это? что Вы имели в виду?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Март, 2011 05:24 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
alexus писал(а):
Драконограф писал(а):
alexus писал(а):
А что такое "ошибка"?..
Это к Тьюрингу :) В принципе можно сказать - получение результата, не отвечающего системе представлений (формальной), заложенной в систему её разработчиком.
Нет, нет... Ни в коем случае!.. То, что нам неизвестно (не соответствует нашим представлениям) нельзя называть ошибкой! Мы просто перестанем развиваться и начнем деградировать. Наши представления неполны, дефрагментарны и противоречивы... Я уже не говорю о том, что многое из того, что соответствует нашим представлениям - это тоже ошибки, просто мы об этом еще не знаем (или делаем вид, что не знаем)...
Драконограф писал(а):
Тогда "интеллектная" информатическая система должна запускать механизм нового поиска.
Поиска? Среди чего? Откуда берется уверенность, что ответ где-то заготовлен? В какой области будем искать?.. Как сформулируем критерии поиска того, что нам неизвестно? Эх...
Драконограф писал(а):
Насчёт "интеллектуальности" искусственных систем полностью согласен - поэтому и называю их "интеллектными". В теме, откуда упомянутое сообщение, говорил, что считаю ИИ приближением к текущему представлению об интеллекте. В частности, оно формализует системы представления знаний о мире - и тот же принцип причинности
А что такое знание? Это причина или следствие действия интеллекта (то есть, результат или исходный "материал", "курица" или "яйцо")? А может быть знания - побочный продукт действия интеллекта? Может быть интеллект - это "корова", которую мы холим и лелеем не ради молока, но исключительно для навоза? Меня всегда занимали мысли об этом... Одно дело открытие, сделанное ученым, и совсем другое... те ощущения и чувства, которые он переживает при этом. Почему после сделанных открытий все великие умы (математики, физики, химики, биологи...) начинают "философствовать"? С чем таким они сталкиваются, что подвигает их на размышления о мироздании? Может быть это "Нечто" и есть самое главное, тот беспредельный предел, который доступен познающему человеку?
Может, оно и так... только можно ли это выразить в формализмах для искусственных исполнителей (сегодня, по крайней мере)? А если нет - то тогда для "имитации интеллекта" (в терминах /Журавлёв А.П., 1987, с. 22/) и строится тот или иной "эвристический алгоритм"... как у Лената, допустим. И он действительно исходит из того, что несовпадение - это не ошибка, а стимул попробовать иначе...
Какими критериями при этом пользоваться - каждый разработчик "имитинта" решает по-своему. Однако т.к. математика-информатика-языки не зря считаются основой образования в широком смысле - то всё равно отправной точкой оказывается система представления знаний (язык). Насколько мы формализовали наше естественно-языковое древо для искусственного исполнителя (в его формальном понимании как языковой машины) - настолько улучшили базу имитации интеллекта. Дальше уже идёт "программирование философствования" - для конкретной "предметки", как правило. Так получается...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB