DRAKON.SU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 73 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 10:07 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Публичное обсуждение раздела Сергея Ефанова из новой книги по языку ДРАКОН

Сергей Ефанов является специалистом по визуальному программированию на языке ДРАКОН в среде "ИС Дракон", разработанной Геннадием Тышовым.

В этой теме я буду выкладывать написанные Ефановым материалы (главы книги) по мере их завершения.

Данная тема является одним из продолжений темы:
viewtopic.php?f=62&t=6049


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Октябрь, 2017 19:13 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Чуть в сторону.

Для кого эта книга?
Кто ее купит?

В частности, для тех, кто с трудом вникает в программирование.
Для "пролетариата" умственного труда.

Илья Ермаков подсказал ссылку:
https://roem.ru/23-02-2017/243591/blue-collar-coders/

Цитата:
Программист — это новая рабочая специальность

23 февраля в 13:24
Клайв Топмсон, Wired


Развитие событий: Вузы заканчивают «белые листы». Зачем ИТ-компаниям работать с высшим образованием (26 апреля)

Оригинальная статья была опубликована в журнале Wired. Перевод подготовлен биржей переводов «Транзилла» → http://tranzilla.ru



Зохар Лазар, Wired

На мою просьбу описать типичного программиста люди обычно отвечают, что представляют себе кого-то вроде Марка Цукерберга — отчисленного из колледжа студента, который одет в толстовку с капюшоном и лихорадочно пишет код для приложения в 72-часовом марафоне с целью обрести сказочное богатство и, как говорится, «изменить мир».

Однако стереотип о программистах Кремниевой долины даже с точки зрения географии не является верным, ведь там работают только 8% специалистов США. Где же остальные миллионы? «Типичные программисты» скорее похожи на Девона из Портленда, штат Орегон. Он занимается поддержкой программного обеспечения по информационной безопасности и не мечтает о сказочных богатствах. Его работа стабильна и дарит внутреннее удовлетворение: 40 часов в неделю хорошо оплачиваются и связаны с решением интеллектуально сложных задач. «Мой отец был простым рабочим», — рассказывает Девон, который и сам, по многим параметрам, такой же «синий воротничок».



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

Помимо всего прочего, такой подход изменил бы особенности обучения программированию и тип соискателей на подобные вакансии. По словам моего друга Анила Дэша, «технаря» до мозга костей и предпринимателя, в таком случае «преподаватели и компании не призывали бы тратить четыре года на получение дорогостоящего образования на факультете информатики, а вместо этого ввели бы факультативы по программированию в средней школе». Написанию кода можно было бы обучиться в техникуме или на интенсивных длительных курсах в рамках повышения квалификации, таких как Dev Bootcamp. Меньше внимания уделялось бы вундеркиндам и больше — пролетариату.



Такого рода программисты не смогут похвастаться глубокими знаниями по созданию новых алгоритмов высокочастотного трейдинга или нейронных сетей. Зачем им это нужно? Подобные знания редко требуются для работы. В то же время любой «синий воротничок» в роли программиста был бы достаточно квалифицирован для написания программ на JavaScript для местного банка. Эти позиции предназначены именно для среднего класса, и число рабочих мест растет: в США средняя заработная плата в сфере IT составляет около 81 000 долларов США (более чем в два раза выше средних показателей в остальных секторах). Ожидается, что с 2014 года объемы на рынке труда за 10 лет увеличатся на 12% - быстрее, чем в большинстве других сфер.

По всей стране люди стараются не упустить возможность такой переквалификации, особенно в штатах, наиболее пострадавших от закрытия промышленных производств. Так, шахтер-ветеран Расти Джастис из Кентукки решил, что написание программ может стать его вторым призванием. Он стал соучредителем IT-компании Bit Source, набирающей в свои ряды бывших горняков. Энтузиазм зашкаливает: Джастис получил 950 заявок на первые 11 вакансий. Шахтерам не привыкать к высокой концентрации внимания, командной игре и работе со сложными инженерными технологиями. «Горняки — это те же работники сферы информационных технологий, только иногда им приходится марать руки», — говорит Джастис.

В то же время некоммерческая организация CodeTN из Теннесси пытается поощрять учащихся старших классов на изучение основ программирования в техникумах. Некоторые студенты (и преподаватели) обеспокоены тем, что ученики не соответствуют «клише Цукерберга». По мнению Калеба Фристо, одного из соучредителей CodeTN, это особенность менталитета: «Нам нужны работодатели, которые признают, что им требуется сотрудник, который сможет просто создать страницу для входа в систему, и что для этого не надо быть суперзвездой в сфере IT».

В настоящее время, несомненно, обществу нужны такие «суперзвезды». Действительные новаторы в компаниях и в научных кругах — это те, кто создает новые отрасли (например, машинное обучение). Однако это не исключает возможности изменения обывательского мнения о том, как на самом деле работают большинство программистов. На протяжении многих десятилетий представители поп-культуры и писатели (и я в их числе) переоценивали образ компьютерного гения-одиночки. Мы восхищались миллиардерами-программистами из «Социальной сети» и Anonymized, эмо и хакерами в кожаных куртках вроде мистера Робота. Но настоящие герои — это те, кто ежедневно ходит на работу и делает свое дело, будь то сборка автомобилей, добыча угля или написание кода.


Внизу 342 комментария.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 23 Октябрь, 2017 16:27 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Выкладываю схему Сергея Ефанова (программа ИС Дракон Геннадия Тышова)
"Управление электроснабжением загородного дома"

Вложение:
Энергоснабжение программа_003.png
Энергоснабжение программа_003.png [ 57.29 КБ | Просмотров: 17776 ]


Это алгоритм, а не программа.
Прошу критиковать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Октябрь, 2017 09:33 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Это алгоритм, а не программа.
Прошу критиковать

1. Ошибка в первой ветке. Икона Вопрос: Есть сеть 220в?
Требуется переставить Да и Нет. Эта ошибка довольно часто встречается. Здесь, на форуме, было горячее обсуждение этой проблемы.
2. Последовательность икон ("СМС владельцу: Авария 220в", В=0, Управление в аварийном состоянии) повторяется 2 раза.
Имеет смысл перенести ("СМС владельцу: Авария 220в", В=0) в начало ветки Управление в аварийном состоянии.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Октябрь, 2017 10:42 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Примечание к схеме Сергея Ефанова -
Схема отображает алгоритм с автоматным программированием.
"А1" у иконы Заголовок - маркер автоматного программирования по методу А. Шалыто Switch.

Замечание Степану Митькину к п.1 -

Вы неправы.

При "Есть сеть 220в?"=Да, таймер А постоянно имеет значение 0.
При отсутствии "сеть 220в", значение таймера А будет увеличиваться.
При достижении значения таймера A, больше 5 минут будет выдана команда "Запустить автономный генератор".

П. 2 не разбираю, по причине ошибочного заключения по п. 1.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 26 Октябрь, 2017 20:52 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
В схеме С.Д. Ефанова сколько же во 2-й ветке циклов?
По количеству стрелок - 2 цикла.
По количеству входов в цикл - 1 цикл. Имеем множество выходов из цикла.

Вывод:
Стрелки надо объединять в 1-у.

Где у этого цикла или этих циклов находятся границы циклов?

Тоже наблюдается в 3 и 4 ветках.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 26 Октябрь, 2017 21:30 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
LKom писал(а):
В схеме С.Д. Ефанова сколько же во 2-й ветке циклов?
По количеству стрелок - 2 цикла.
По количеству входов в цикл - 1 цикл. Имеем множество выходов из цикла.

Вывод:
Стрелки надо объединять в 1-у.

Где у этого цикла или этих циклов находятся границы циклов?

Тоже наблюдается в 3 и 4 ветках.

Первоначально у Сергея Ефанова было именно так, как говорит уважаемый LKom.

Я с этим не согласился и попросил Сергея исправить.
Сергей Дмитриевич внес исправления по моему настоянию.

Цитата:
Вывод:
Стрелки надо объединять в 1-у.
Такой вывод я считаю ошибочным.

Уважаемые коллеги!

Предлагаю обсудить данное разногласие.
Какие есть За и Против?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 11:39 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Владимир Паронджанов писал(а):
Такой вывод я считаю ошибочным.

Почему вывод считаете ошибочным?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 16:32 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Ещё раз внимательно просмотрел диаграмму.

Ни в коем случае нельзя эту диаграмму помещать в книгу
В ней есть серьёзный недостаток.
Если опытный программист откроет эту книгу и увидит такое, будет позор и книге, и ДРАКОНу.

На данной диаграмме сцеплены два автомата.
Это приводит к повтору и к злоупотреблению таймерами.

Смотрите: когда в сети 220в пропадает питание, мы сначала не верим и 5 секунд надеемся, что питание восстановится.
Когда после перебоя ток в сети 220в вновь появляется, мы опять не верим своему счастью. Ждём 4 секунды.
Эти ожидания — отдельный аспект. Цель ожиданий здесь — иметь подтверждённое состояние сети 220в.
Для получения подтверждённых состояний необходимо ввести дополнительный автомат.
События сети 220в будут поступать в основной автомат через этот дополнительный автомат.

Вот дополнительный автомат.
Вложение:
20171027151651.png
20171027151651.png [ 96.55 КБ | Просмотров: 17698 ]


А вот ставший гораздо проще основной автомат.
Вложение:
20171027151636.png
20171027151636.png [ 139.74 КБ | Просмотров: 17698 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 17:48 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Степан Митькин писал(а):
Ещё раз внимательно просмотрел диаграмму.

Ни в коем случае нельзя эту диаграмму помещать в книгу
В ней есть серьёзный недостаток.
Если опытный программист откроет эту книгу и увидит такое, будет позор и книге, и ДРАКОНу.

На данной диаграмме сцеплены два автомата.
Это приводит к повтору и к злоупотреблению...

Степан, спасибо за критические замечания.
Я обратил особое внимание на слова про "сцепленность автоматов".
Я сам видел слабое место в том, что два веточных цикла ПЕРЕКРЕЩИВАЮТСЯ.

Я предположил, что сцепленность автоматов и перекрещенные веточные циклы — это одно и то же ЗЛО, то есть недостаток, который нужно устранить.

Или я не прав?

==============================

viewtopic.php?p=74665#p74665

Вот мое правило для веточных циклов:

Цитата:
ПРАВИЛО

В силуэте можно использовать:

— один веточный цикл;

— несколько независимых веточных циклов. Веточный цикл является независимым, если он не имеет общих участков с другими веточными циклами;

— вложенный веточный цикл, то есть веточный цикл, внутри которого находится другой веточный цикл;

— несколько вложенных веточных циклов.

ВЛОЖЕННЫЙ ВЕТОЧНЫЙ ЦИКЛ

Веточный цикл называется вложенным, если:

— икона «имя ветки» веточного цикла 1 находится левее иконы «имя ветки» веточного цикла 2;

— все иконы «адрес» веточного цикла 1 находятся правее икон «адрес» веточного цикла 2.

При описанных условиях веточный цикл 2 является вложенным в веточный цикл 1.

Можно сказать по-другому. Веточный цикл 1 является внешним, а веточный цикл 2 — внутренним.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 17:48 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Степан Митькин писал(а):
На данной диаграмме сцеплены два автомата.
Это приводит к повтору и к злоупотреблению таймерами.

Я согласен.
Вложение:
Энергоснабжение_007.png
Энергоснабжение_007.png [ 39.91 КБ | Просмотров: 17677 ]
Вот изменённый автомат.
С уважением, Ефанов Сергей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 19:05 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Владимир Паронджанов писал(а):
Вот мое правило для веточных циклов:
...

Правила В.Д. Паронджанова неверные и вводят пользователей Дракона в заблуждение, т.к. :
ветка является состоянием автомата,
для автомата нет ограничений переходов из одного состояния в другое.
---
Отсюда и нарекания на "перекрещенные веточные циклы ".
На схеме С.Д. Ефанова трудно выделить веточные цикла и сосчитать их количество.
На схемах С. Митькина вообще не делается выделение веточных циклов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 20:37 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Я сам видел слабое место в том, что два веточных цикла ПЕРЕКРЕЩИВАЮТСЯ.
Я предположил, что сцепленность автоматов и перекрещенные веточные циклы — это одно и то же ЗЛО, то есть недостаток, который нужно устранить.

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

Здесь, на форуме было обсуждение этого...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 20:40 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
efanov писал(а):
Вот изменённый автомат.
С уважением, Ефанов Сергей.

По-моему, так гораздо лучше.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 27 Октябрь, 2017 21:27 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Владимир Паронджанов писал(а):
Я сам видел слабое место в том, что два веточных цикла ПЕРЕКРЕЩИВАЮТСЯ.
Я предположил, что сцепленность автоматов и перекрещенные веточные циклы — это одно и то же ЗЛО, то есть недостаток, который нужно устранить.

Степан Митькин писал(а):
Перекрещенные веточные циклы плохи только в вычисляющих алгоритмах.
В управляющих алгоритмах это не проблема.
Где, в какой литературе можно прочитать о ПРОТИВОПОСТАВЛЕНИИ ВЫЧИСЛЯЮЩИХ И УПРАВЛЯЮЩИХ АЛГОРИТМОВ в таком контексте?

Степан Митькин писал(а):
Данная схема описывает алгоритм управления в виде автомата. А значит, ограничение по перекрещенным веточным циклам к нему не применимо.
Вполне возможно. Степан, просьба пояснить в чем именно смысл ваших слов про "позор для книги".
Позор в том, что "сцеплены два автомата"?
Или же позор в том, что слишком много икон с таймерами?
("Это приводит к повтору и к злоупотреблению таймерами"?

Степан Митькин писал(а):
Здесь, на форуме было обсуждение этого...
Просьба дать ссылку на это обсуждение. Я не смог найти.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 28 Октябрь, 2017 12:18 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Очень хорошо, что Степан Митькин и LKom выступили с важными критическими замечаниями.
Это, несомненно, будет способствовать повышению качества представленного в книге материала.

Вместе с тем, следует обратить внимание на две вещи.
По условию (и по здравому смыслу) в алгоритме должны быть ДВЕ задержки.

1. Задержка включения автономного бензинового генератора, например, на 5 минут (задержка запуска генератора).

2. Задержка переключения электропотребителей загородного дома с автономного генератора на внешнюю электросеть, например, на 4 минуты (задержка отключения генератора).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Октябрь, 2017 13:45 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Степан, просьба пояснить в чем именно смысл ваших слов про "позор для книги".
Позор в том, что "сцеплены два автомата"?

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

Вот смотрите:

Владимир Паронджанов писал(а):
в алгоритме должны быть ДВЕ задержки.

1. Задержка включения автономного бензинового генератора, например, на 5 минут (задержка запуска генератора).

2. Задержка переключения электропотребителей загородного дома с автономного генератора на внешнюю электросеть, например, на 4 минуты (задержка отключения генератора).


То есть вы признаёте, что важной стороной алгоритма управления энергоснабжением является мысль, что требуется задержка:
1. Задержка включения автономного бензинового генератора.
2. Задержка переключения электропотребителей.

Вторая мысль — это собственно управление генератором, переключением потребителей и отправкой СМС.
Управление происходит в 4-х состояниях:
1. Работа от сети.
2. Включение генератора.
3. Работа от генератора.
4. Аварийное состояние.

То есть мыслей две, а диаграмма — одна. Нехорошо.
Почему нехорошо?

Во-первых, потому что в итоговой диаграмме получается много состояний.
Слишком сложная диаграмма, много объектов.
1. Работа от сети.
2. Подтверждение отключения сети.
3. Запуск генератора.
4. Подтверждение подключения сети при запуске генератора.
5. Работа от генератора.
6. Подтверждение подключения сети при работе генератора.
7. Аварийное состояние.
8. Подтверждение подключения сети при аварийном состояни.

Во-вторых, когда есть одна диаграмма, в которой "закодированы" две идеи, эти идеи трудно понять.
Читателю трудно их из диаграммы выковырять.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Октябрь, 2017 15:01 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Степан Митькин писал(а):
То есть мыслей две, а диаграмма — одна. Нехорошо.
Почему нехорошо?

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

Ни у С. Ефанова , ни у С. Миткина не указано количество устройств, не указано их назначение, не перечислены состояния каждого устройства.

Странное иконы Вывод: "Команда", "Электро-ввод" - не указаны принимающие устройство, не указана схемы автоматов принимающих данные от икон Вывод. Есть иконы Вывод, но нет икон Ввод. Почему используются иконы Вывод, а не иконы Параллельные Процессы предназначенные для взаимодействия между процессами?

Странные Переключатели с иконами Выбор - "Событие". "Событиям" нигде на присваивается значения, а ведь выбор Варианта, на маршруте выполнения, производиться именно по значению в иконе Выбор. Веток много и во всех Переключатели по значению "Событие", это значение одного "События" или различных?
Икона Вариант со значением "Таймер", это о каком таймере упоминается, как значение таймера имеется ввиду, какой тип значения таймера.
---
Эти Дракон-схемы создают больше вопросов, чем что-либо делают наглядным.


Последний раз редактировалось LKom Воскресенье, 29 Октябрь, 2017 15:09, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Октябрь, 2017 15:03 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Хочу поделиться ещё двумя мыслями.

1. Правила при переключении в состояние.
При помощи силуэта можно реализовать интересную вещь: правила, которые выполняются при изменении состояния.
Как это изобразить? Поместить соответствующие иконы в начало ветки силуэта, до проверки входных событий.
Например, икону "Переключить электро-ввод на 220в" можно поставить в начало ветки "Ожидание запуска генератора".
В результате устраняем много повторов.

2. Икона Выбор с текстом "Событие" для явного указания, какие именно события ожидаются в данном состоянии.
Это лучше, чем цикл со стрелкой. Владимир Даниелович применяет цикл со стрелкой как идиому для ожидания события.
На мой взгляд, лучше выражать мысли прямо, а не иносказательно.

В итоге получаем, что ветка автоматного силуэта содержит следующую информацию о состоянии:
- Название состояния
- Действия, предпринимаемые при переключении в данное состояние
- Перечень событий, которые автомат ожидает в данном состоянии
- Обработчики событий в данном состоянии
- Название следующего состояния.

Вложение:
branch.png
branch.png [ 46.04 КБ | Просмотров: 17613 ]


Вложения:
electro_sob.png
electro_sob.png [ 102.6 КБ | Просмотров: 17613 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Октябрь, 2017 15:15 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
ХАОС - произвольное использование нотации Дракон.


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

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


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

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


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

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