DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 14:18

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




Начать новую тему Ответить на тему  [ Сообщений: 328 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17  След.
Автор Сообщение
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 09:38 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
TAU писал(а):
Программа - нечто легко изменяемое, без необходимости менять структуру или схему устройства.

Душа — нечто эфемерное, трудно изменяемое : )

В отношении программы, вот это НЕЧТО хорошо бы конкретизировать. У нас же не религиозная секта : )

Например, ПЗУ с нестираемой памятью, прошитая, приваренная к шинам. Вроде бы оно часть hardware, заменить его без паяльника не реально, а для некоторых типов нужны специальные станции. К тому же, второй раз программу в эту ПЗУ не зальёшь, и соответственно, по Вашему определению, данная ПЗУ программу не содержит.

А есть ещё ПЛИСы с пережигаемыми перемычками. Они содержат программу?

Сколько бы аборигены Бразилии не скакали вокруг мобильника программа в нём не изменится. С их точки зрения это не программируемое устройство.

Продвинутый слеварь-сантехник легко перепрограммирует сливной бачок с подачи 6 литров воды на 4 литра. Для большинства программистов компьютеров это непосильная задача. Поэтому они отказываются признавать, что сливной бачок работает по программе : )

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 11:31 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 11
Откуда: Нижний Новгород
TAU писал(а):
ilovb писал(а):
И чо?

2. Наш язык Альфа превосходил Алгол.


Цитата:
Как уже говорилось, Альфа-язык был расширением Алгола 60, более того, расширением некоторого его подмножества. Основные ограничения этого подмножества были связаны с главной задачей — обеспечить высокоэффективный код.


То есть Альфа не была первой относительно алгола, равно как и не была и независимым от алгола языком. Это был форк с расширениями. И, полагаю, это был не единственный форк Алгола-60.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 12:16 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Alexey Veselovsky писал(а):
Это был форк с расширениями. И, полагаю, это был не единственный форк Алгола-60.
Если я правильно помню, выше было сказано, что язык Альфа появился до Алгола, а с появлением Алгола только немного мимикрировал под существующий стандарт, скомбинировав совместимые фичи со своими собственными.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 16:05 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 11
Откуда: Нижний Новгород
Александр Ильин писал(а):
Alexey Veselovsky писал(а):
Это был форк с расширениями. И, полагаю, это был не единственный форк Алгола-60.
Если я правильно помню, выше было сказано, что язык Альфа появился до Алгола, а с появлением Алгола только немного мимикрировал под существующий стандарт, скомбинировав совместимые фичи со своими собственными.


Неа. Альфа изначально базировалась на Алголе, просто вначале Альфа была форком драфта алгола, а затем уже перешли на релиз:
Цитата:
В 1958 году международная группа опубликовала начальную версию нового языка программирования, основной идеей которого было дать как можно более естественную форму для выражения алгоритмов (прежде всего, вычислительной математики). Опираясь на эту версию, Андрей Петрович Ершов вместе с Геной Кожухиным и Димой Янковым решили разработать свой язык, внеся в него то, что было бы удобно вычислителям, в частности, возможность оперировать с векторами, матрицами и многомерными объектами. Когда своя версия была готова, появилась окончательная версия международного языка Алгол 60. Ряд решений в Алголе 60 совпадали с принятыми нашей группой, но ряд существенных конструкций, которые были разработаны в «сибирском» языке отсутствовали в Алголе 60.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 16:32 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Если вспомнить, с чего дискуссия начиналась ...

Можно рассматривать схему с полиморфизмом MemCpy.png. Абстрактный элемент - иконка Вставка - помечен синим. Если наследовать от нее другую схему, то редактировать дозволено только иконку Вставка.
- если хотим ассемблерный код - вставляем код в иконку Вставка MemCpyA.png;
- если хотим схему, оставляем и ссылаемся на схему (move.png).


Вложения:
MemCpyA.png
MemCpyA.png [ 4.72 КБ | Просмотров: 16753 ]
MemCpy.png
MemCpy.png [ 3.56 КБ | Просмотров: 16753 ]
move.PNG
move.PNG [ 3.07 КБ | Просмотров: 16753 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 16:54 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Дмитрий Дагаев писал(а):
Можно рассматривать схему с полиморфизмом MemCpy.png.
Так мы просто разделяем слои, уровни разработки.
Но это ничуть не приближает нас к алгоритму (к его понятию) :)
Получается, что в зависимости от задачи выбирается нужный инструмент, алгоритмический слой которого инкапсулирован внутри. Ну и что это нам даёт с теоретической точки зрения? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 17:23 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Это - уже следующий этап долгого обсуждения.

Меня вполне устраивает формулировка
Alexey_Donskoy писал(а):
Отсюда и вытекает моё определение алгоритма как программы для наиболее абстрактного исполнителя.


Исполнитель мне представляется в виде некоей абстрактной Дракон-машины тоже со свойствами полиморфизма. Конкретный исполнитель может реализовать часть алгоритмического слоя.
Например, алгоритм в медицине http://forum.oberoncore.ru/viewtopic.php?f=132&t=5386#p91505 предполагает пошаговое выполнение.
Реализация конкретного исполнителя для задачи - написания программы обучающего тренажера может быть такая: выполнил задачу, поставил галочку, перешел к следующей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Среда, 22 Апрель, 2015 19:56 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Дмитрий Дагаев писал(а):
Исполнитель мне представляется в виде некоей абстрактной Дракон-машины
Тут вот какое дело. Дракон-машина сама по себе является достаточно абстрактным исполнителем (поскольку абстрагируется от свойств и системы команд конкретных процессоров).
Однако по отношению к понятию алгоритма она является вполне конкретным исполнителем! Как и машина Тьюринга, например. Поскольку они обе имеют вполне конкретный язык (набор команд плюс визуальное отображение в случае Дракона).
МТ с теоретической точки зрения лучше, поскольку представляет собой полнофункциональную машину (с памятью).
А в Дракон-машине вообще памяти нет, один алгоритмический слой. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 14:13 

Зарегистрирован: Среда, 30 Сентябрь, 2009 14:45
Сообщения: 10
Учитывая, что последовательность определений одних слов через другие потенциально бесконечна, надо всегда иметь такую возможность - ткнуть пальцем и сказать, как Чапаев про лошадь: "Да вот же она".

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

Среда состоит из элементов, состояние которых есть данные, некоторые из которых известны, а некоторые неизвестны, и вычисление имеет своей целью сделать некоторые из неизвестных известными, и в этом состоит результат вычисления, а для получения результата служит алгоритм, состоящий из упорядоченных и синхронизированных инструкций, которые есть однозначно понимаемые действия исполнителя...

А копирование - есть, да, абстракция. Ее можно последовательно конкретизировать. Одно дело скопировать кусок оперативной памяти в другое место оперативной памяти, и совсем другое - с флешки на флешку или вообще в Буэнос-Айрес.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 14:31 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Alexey_Donskoy писал(а):
МТ с теоретической точки зрения лучше, поскольку представляет собой полнофункциональную машину (с памятью).
А в Дракон-машине вообще памяти нет, один алгоритмический слой. :)

Я думаю, что МТ слишком обща (хоть и с теоретической точки зрения это м.б. преимущество), чтобы вывести что-то полезное из данной абстракции.
В Дракон-машине память есть, например, состояние памяти и регистров (контекст процесса/потока, если выполняется в отдельном процессе/потоке). Но это состояние может расширяться.
Например бэктрекинг. Исполнитель-человек может выполнять инструкцию, а затем откатиться на 2 шага назад. Человек вообще рефлексирующее существо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 14:43 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Дмитрий Дагаев писал(а):
В Дракон-машине память есть
Про что вы здесь говорите?
про какую конкретную реализацию?
В самом языке Дракон нет памяти. Есть Действие, есть Развилка и т.п., но Переменной - нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 14:59 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
В языке Дракон есть задержка. Это значит, что надо сохранить состояние стека и регистров и перейти выполнять что-то еще. А потом вернуться и восстановить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 15:13 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Теперь по бэктрекингу. Сотрудник отпросился с работы на 1 день и пил таблетки. На следующий день все-таки вызвал врача и взял больничный. А это значит проверка Помогло? - Да - Конец - Откат_на_1_шаг - Помогло? - Нет - ...
С исполнителем-человеком сплошь и рядом.


Вложения:
cure28.png
cure28.png [ 31.67 КБ | Просмотров: 16669 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 15:40 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Дмитрий Дагаев писал(а):
В языке Дракон есть задержка. Это значит, что надо сохранить состояние стека и регистров...
Нет, это не значит. Это мы с вами, как потенциальные разработчики реализации Дракон-машины, фантазируем по поводу техзадания. А в языке этого нет.
И, главное, нет вообще понятия переменной (и, соответственно, контекста тоже). Прямоугольники - они ведь пустые. "Слепыши".
И да, всякие задержки - это расширение, которое очень плохо согласуется с алгоритмическим слоем вообще. Ибо здесь неявно вводится внешний мир с неопределёнными свойствами. Что в теоретическом плане выглядит не очень хорошо.

Цитата:
Теперь по бэктрекингу.
Это вообще к теме отношения не имеет.
Это уже детали реализации Дракон-машины, и даже не машины, а интерактивной среды, что совсем не одно и то же...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 15:47 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Здесь я с Вами не соглашусь, и, разумется, бэктрекинг - это пример реализации конкретной Дракон-машины, унаследованной от абстактной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 16:17 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Дмитрий Дагаев писал(а):
Здесь я с Вами не соглашусь
С чем именно?

Напомню, что тему я открывал, чтобы наглядно показать некую оторванность от реальности того понятия алгоритма, которым спекулирует автор Дракона, пиаря свой язык.

В реальности существует исполнитель и программа для него, и абстрагироваться от исполнителя получается только на очень высоком уровне, когда всё мало-мальски неочевидное засовывается во "вставку", простым текстом отсылая к неизвестному (а то и несуществующему) слою реализации.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Четверг, 23 Апрель, 2015 16:29 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 145
Откуда: Москва
Alexey_Donskoy писал(а):
А практически сейчас наблюдается (под давлением программистов форума) дрейф от максимальной абстракции в сторону конкретной реализации исполнителя (вон, задержки уже введены)...

Да, я рассматриваю, даже когда исполнитель не-ЦВМ (например, человек), еще и компьютер в паре с данным исполнителем. И конкретную реализацию для этого интерактивного компьютера. Просто из соображений полезности. Просто содержательную часть высказал, и я умываю руки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Суббота, 04 Июль, 2015 15:49 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Возвращаясь к разнице между алгоритмом и программой.

Ильченко Эдуард писал(а):
Любую последовательность пространственных неоднородностей (изменения пространственных характеристик во времени), взаимодействующих с исполнителем (изменяющих состояние исполнителя) можно назвать программой.


На примере насосной станции : )))

Имеем исполнителя — насосная станция.
Устройство исполнителя неизвестно — чёрный ящик.
Внешние проявления действий исполнителя — подаёт воду, не подаёт воду, увеличивает подачу воды, уменьшает подачу воды.
Вложение:
нс-00.png
нс-00.png [ 10.24 КБ | Просмотров: 16238 ]


Если достаточно долго наблюдать за работой исполнителя, то можно обнаружить в его работе некоторые закономерности (различными лагами по времени пренебрегаем, как встроенными в природу насосной станции):

1.
Если давление воды на входе отсутствует (ниже некоторого порога) — исполнитель не подаёт воду.
2.
Если давление воды на входе присутствует (выше некоторого порога) — исполнитель подаёт воду на выход.
3.
Если давление воды на выходе низкое — исполнитель не подаёт воду.
4.
Если давление воды на выходе высокое — исполнитель не подаёт воду.
5.
Если давление воды на выходе выше некоторого среднего значения — исполнитель уменьшает подачу воды.
6.
Если давление воды на выходе ниже некоторого среднего значения — исполнитель увеличивает подачу воды.

Получили ОПИСАНИЕ работы исполнителя.
Или АЛГОРИТМ действий исполнителя.

Это описание можно выполнить в виде ДРАКОН-схемы (структурированной блок-схемы):
Вложение:
нс-01.png
нс-01.png [ 64.61 КБ | Просмотров: 16238 ]


А что же должно быть написано в иконе Выбор (отмечена комментарием с вопросами)?

По всей видимости: «Состояния входов-выходов». Ведь именно изменения этих состояний командуют исполнителю произвести некоторые действия. Таким образом, состояния входов-выходов можно назвать ВНЕШНИМИ КОМАНДАМИ.

И схема примет такой вид:
Вложение:
нс-02.png
нс-02.png [ 64.79 КБ | Просмотров: 16238 ]


Обращу внимание, что команды имеют физическую сущность — давление воды.

Если определить понятие «программа» как последовательность команд, воспринимаемых исполнителем и приводящих к изменению состояния исполнителя, то можно составить программу, с целью получения от исполнителя (насосной станции) определённых действий.

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

Итак.

Цель: Периодически останавливать и запускать насосную станцию, например каждые полчаса.

Составляем описание (алгоритм) внешней управляющей программы (ВУП) в терминах внешних команд:

1.
Поднять давление в выходной трубе.
2.
Подождать полчаса.
3.
Сбросить давление в выходной трубе.
4.
Подождать полчаса.
5.
Перейти к пункту 1.

Переходим к реализации алгоритма.
Формируем последовательность ВНЕШНИХ КОМАНД - программу.

1.
Подаём насосной станции внешнюю команду на останов подачи воды перекрытием потока воды в выходной трубе.
РЕЗУЛЬТАТ — насосная станция не подаёт воду.
2.
Ждём полчаса и открываем поток воды.
РЕЗУЛЬТАТ — насосная станция подаёт воду.
3.
Ждём полчаса и переходим к пункту 1.

Итог.

С помощью подачи насосной станции последовательности ВНЕШНИХ КОМАНД (программы), добились от неё предсказуемого заранее определённого целевого поведения.

Разница между алгоритмом работы насосной станции и программой (внешней) для насосной станции очевидна:

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

Программа же (последовательность внешних команд) жёстко задаёт реальное поведение насосной станции здесь и сейчас.

- - -

Конечно, на практике никто специально не программирует (не командует) таким образом насосной станцией. Это происходит естественным образом, как воздействие внешнего мира на насосную станцию.

Внешний алгоритм работы (поведения) насосной станции обеспечивается её внутренним устройством. Например, программно-техническим комплексом (ПТК), имеющим в своём составе управляющую программу (УП), реализующую определённое поведение внутренних частей насосной станции, с целью получения внешнего поведения насосной станции, согласно приведённому выше алгоритму.

Внутренняя управляющая программа может иметь различную природу:

А.
Памятка для оператора насосной станцией. Оператор вручную меняет параметры внутреннего оборудования станции в зависимости от давления на входе-выходе и в соответствии с содержанием памятки.

Б.
Определённым образом скоммутированные реле.

В.
Программа для программируемого логического контроллера.

Во всех трёх случаях можно изменить управляющую программу в целях изменения внешнего поведения насосной станции.

А: Изменением содержания памятки для оператора.
Б: Перекомутацией реле.
В: Перезаливкой программы в ПЛК.


Поскольку существует управляющая программа, то существует и её алгоритм (описание).

Принципиально важно различать алгоритм работы (внешний) исполнителя и алгоритм управляющей (внутренней) программы исполнителя.

P.S.
Всё сказанное применимо не только к насосным станциям : ))), но и к любому другому исполнителю.

P.P.S.
TAU писал(а):
Программа - нечто легко изменяемое, без необходимости менять структуру или схему устройства.

Вопрос к уважаемому TAU.

Содержит ли (в случае Б) внутреннее устройство насосной станции программу и
можно ли считать перекоммутацию реле (в случае Б) перепрограммированием?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Воскресенье, 05 Июль, 2015 14:29 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Для указанных выше схем забыл указать, что в каждом рабочем цикле передаётся управление на икону Начало и производится выход через икону Конец.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что же такое алгоритм?
СообщениеДобавлено: Пятница, 17 Июль, 2015 22:21 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Ильченко Эдуард писал(а):
У нас же не религиозная секта : )

Если честно, есть много общего :D


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 3


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

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