DRAKON.SU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Графические языки (и язык Дракон)
СообщениеДобавлено: Суббота, 17 Сентябрь, 2016 08:41 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Графические языки (и язык Дракон)

Что-то не нашел такой общей обзорной темы на форуме, и решил ее завести в связи с постом
http://forum.oberoncore.ru/viewtopic.php?p=98131#p98131

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

Книгу мне обещали показать,
но пока в Библиотеке форума "Визуальный язык Дракон" нашел выборку книги (начиная со с. 50):
Тюгашев А.А.
Графические языки программирования и их применение в системах управления реального времени.
— Самара : Изд-во Самар. науч. центра РАН, 2009.
— 100 с.
http://drakon.su/_media/biblioteka/tjugashev_-_monografija2009_grafichjap_-_izvl_gl7-10_zakl_lit_.pdf

Актуальная тема сама по себе - как самостоятельная тематика
(а не по сопутствующим случайным частным аспектам на других темах)
и в ее целевой привязке к визуальному языку Дракон.
И конкретно в связи с данной книгой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 17 Сентябрь, 2016 10:52 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
andr писал(а):
И конкретно в связи с данной книгой.

В представленной выборке книги содержатся две темы:
Языки описания потока управления (control flow) с. 50-64.
Языки графического описания структур данных с. 65-100.

Пока сходу появились такие комментарии:

1
Очень полезное сводная обзорная подборка графических языков.
У меня книг по такой специализированной тематике нет, да и в голову что-то не приходило поискать,
разве что в посмотреть Википедии, типа:
https://ru.wikipedia.org/wiki/Визуальное_программирование
[url]https://ru.wikipedia.org/wiki/Визуальное_программирование[/url]

2
В втором разделе
Языки графического описания структур данных
в разделе
9. Языки описания потоков данных (dataflow)
приводятся два языка:
LD (Ladder Logic, МЭК61131-3): Ladder Diagram - язык (модельного) представления релейно-контактных схем - релейно-контактная логика:
(комбинационная и последовательностная - последовательная и параллельная)
и
FBD (МЭК61131-3): Functional Block Diagram, Диаграмма Функциональных Блоков
В частности - это схемная бесконтактная логика
(также комбинационная и последовательностная - последовательная и параллельная)
Но, видимо, есть возможность моделирвоания аналоговой схемной автоматики
(как то ранее не приходило в голову поинтересоваться по этому аспекту).

Появляется вопрос:
почему эти два вида схем отнесены к разделу
Языки графического описания структур данных?

Возможно я что-то недопонял:
слишком зациклен на потоках управления и потоках данных алгоритмов и программ.
Эти виды схем (в моих раскладках) сами по себе не относятся к таким сущностям:
это первичная дискретная (логическая) или непрерывная (аналоговая) схемная автоматика.

Но эти виды схем могут быть использованы для схемного (условно физического) моделирования:
-- потоков управления алгоритмов - средствами дискретной (логической) схемотехники;
-- потоков данных алгоритмов - средствами дискретной и аналоговой схемотехники.
По отдельности и в их взаимосвязи.

Но какое отношение эти языки имеют к описанию структур данных?
В них же, кроме данных, уже вложены функции обработки данных:
это потоки продвижения и обработки данных, а не просто структуры данных.

---------------------
3
По описанию языка релейно-контактных схем LD (Ladder Logic, МЭК61131-3): Ladder Diagram
есть замечание:

Цитата:
"По замыслу авторов стандарта, такая форма представления программы
способствует переходу специалистов в области релейной автоматики на
ПЛК.
Однако в современных условиях, когда релейно-контактные устройства
практически вытеснены из промышленной автоматики
(оставаясь доминирующими лишь в некоторых специфических отраслях, таких, как железнодорожный транспорт),
данный подход вряд ли представляется целесообразным".

В общем случае, конечно, да.
Их, по-моему, уже нет и в бытовой автоматике
(за исключением бытовых раритетов, настенных выключателей света и т.п.)

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

То, что она есть на железнодорожном транспорте - это уже информация.

----------------------------------------------------------
4
Почему интересуют такие вопросы.

4.1
В свое время пришлось пообщаться с релейно-контактной автоматикой
и в проектировании, и в эксплуатации, и в теории:
комбинационная и последовательностная логика,
первые попытки алгоритмического описания работы РКС (и знакомства с прикладной теорией алгоритмов)
и даже (бестолковые еще) попытки применения логики времени (темпоральной логики).
До сих пор что-то видится родное.

4.2
Тория релейно-контактных структур,
сами схемы релейно-контактные структур и их аналитическое описание
оказались хорошими структурными аналогами для структурных схем алгоритмов и структурных формул алгоритмов
(в отличие от бесконтакных структур).
И личные структурные алгоритмические представления формировались
по аналогии со структурными выкладками по РКС еще по книгам академика М.А. Гаврилова
(публикации начала 50-х и далее).

В частности большие подсказки дали разделение РКС:
-- на последовательно-параллельные схемы (простые в описании структурными формулами):
это примерно как "структурное программирование" - в переносе на параллельные алгоритмы;
-- не последовательно-параллельные структуры и как их (пытаться) аналитически описать
(очень много видов):
очень актуально для параллельных алгоритмов - в отличие от последовательных алгоритмов
(в частности - по взаимодействию параллельных процессов и т.п.)

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

4.3
Сами термин структурная формула алгоритма и структурная схема алгоритма
естественным образом перекочевали из теории РКС:
прямые прототипы - структурная схема РКС и структурная формула РКС.

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

-------------------------
В связи со всем этим всегда говорил и говорю (и в рабочей команде и студентам):
мы с Вами не снобы - (структурную) теорию РКС уважаем - как полезный исторический прототип прикладной (структурной) теории алгоритмов.


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

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

Цитата:
это потоки продвижения и обработки данных, а не просто структуры данных.
Безусловно.
Но я бы ещё предложил сделать акцент на том, что это прежде всего функциональный подход.

Цитата:
остались ли РКС где-то в промышленной автоматике?
Конечно. Релейная защита и автоматика, наверное, наполовину ещё на старой базе работает.

Более того, меня недавно наши релейщики попросили эту самую Ladder Diagram реализовать, так что теперь у нас и FBD, и LD в свободно-программируемой логике присутствуют :)

Цитата:
у меня оказался исчерпанным ресурс вставок в посты на форуме.
Борису жалуйтесь, добавит: viewtopic.php?f=25&t=5883


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 18 Сентябрь, 2016 00:29 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
andr писал(а):
9. Языки описания потоков данных (dataflow)
почему эти два вида схем отнесены к разделу
Языки графического описания структур данных?

Потому что, видимо, Вы оперируете неполной "нарезкой" из книги.
На самом деле в книге не так.

Alexey_Donskoy писал(а):
сама классификация в принципе не идеальна

лишь бы "уколоть" оппонента? "в молоко"..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Сентябрь, 2016 06:58 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Alexey_Donskoy писал(а):
Цитата:
это потоки продвижения и обработки данных, а не просто структуры данных.
Безусловно.
Но я бы ещё предложил сделать акцент на том, что это прежде всего функциональный подход.
Не очень понятен смысл термина "функциональный подход".
Или это когда используются функциональные выражения?:
ну, в принципе, да - как обычно, только не понятен функциональный акцент.
Или в смысле функционального программирования?:
но тогда в идеале - там вообще не должно быть данных (кроме исходных данных):
за счет подстановок должна быть одна большая (огромная) функция - в определенной технике записи.
Или что-то еще?

Alexey_Donskoy писал(а):
Цитата:
остались ли РКС где-то в промышленной автоматике?
Конечно. Релейная защита и автоматика, наверное, наполовину ещё на старой базе работает.

Более того, меня недавно наши релейщики, попросили эту самую Ladder Diagram реализовать, так что теперь у нас и FBD, и LD в свободно-программируемой логике присутствуют :)
Спасибо на наводку:
релейная защита и автоматика - наполовину (наверное).
Аналогично, видимо, и в технологической автоматике - наполовину (наверное).
Только где как:
- в оборонке получше;
- в гражданке похуже;
- в автопроме (массовое производство - отечественное) - вообще на современном уровне (наверное).

Вспоминается Автоваз на второй год после пуска - это была отечественная Мекка.
В механическом производстве все автоматизировано - от мелочевки до корпусных блоков.
Залезли на антресоли автоматической линии:
с двух сторон тянутся электрошкафы (как на бомбардировщике, только глухие - без пультов управления).
Попросили открыть посмотреть - и очень удивились:
вся релейная автоматика была выполнена на маломощных контакторах и на пониженных токах - для надежности замыкания-размыкания контактов (без подгарания и т.п.).

А рядом располагалась небольшая сварочная линия - вся автоматика на электронике, включая силовые цепи - на тиристорах.

Роботов на сварке и на окраске еще не было.

А как там сейчас на Автовазе - роботов полно, а контакты не пригорают? :)

Alexey_Donskoy писал(а):
Цитата:
у меня оказался исчерпанным ресурс вставок в посты на форуме.
Борису жалуйтесь, добавит: viewtopic.php?f=25&t=5883
Еще раз спасибо за "наводку".
Займусь этим на досуге - сейчас в разгоне.


==========================
TAU писал(а):
andr писал(а):
9. Языки описания потоков данных (dataflow)
почему эти два вида схем отнесены к разделу
Языки графического описания структур данных?

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


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

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

Цитата:
Или в смысле функционального программирования?
Некогда я рассмотрел эти парадигмы с точки зрения организации вычислительного процесса ("Непричёсанные мысли о первичности ООП"), где пришёл к забавному выводу, что "различие между распространенными парадигмами программирования не носит принципиального характера, а сводится к вопросам оптимизации алгоритма при кодогенерации в рамках объектно-ориентированной модели". :wink:

Цитата:
но тогда в идеале - там вообще не должно быть данных (кроме исходных данных)
Увы, чистая математическая модель в данном случае имеет крайне ограниченную область применимости. Потому как динамическая система (сиречь практически любой процесс) немыслима без пространства состояний и его изменения.
Но как локальный инструмент, парадигма функционального программирования бывает очень полезна.

Цитата:
Аналогично, видимо, и в технологической автоматике - наполовину (наверное).
Ну, если относить сюда автомат (выключатель с предохранителем) у каждого станка, то и все 100% :wink:
И у 99% станков есть конечники, которые при выходе рабочего органа из допустимой зоны воздействуют отнюдь не на ПЛК.
И опять же лифты.
И куча-куча-куча прочего оборудования...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 28 Сентябрь, 2016 13:11 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Alexey_Donskoy писал(а):
andr писал(а):
Не очень понятен смысл термина "функциональный подход".
В смысле функциональных блоков, функциональной схемы - как полного описания динамической системы.
Ясно.

Alexey_Donskoy писал(а):
Цитата:
Аналогично, видимо, и в технологической автоматике - наполовину (наверное).
Ну, если относить сюда автомат (выключатель с предохранителем) у каждого станка, то и все 100% :wink:
И у 99% станков есть конечники, которые при выходе рабочего органа из допустимой зоны воздействуют отнюдь не на ПЛК.
И опять же лифты.
И куча-куча-куча прочего оборудования...
Спасибо. Утешили. На 99%, а то и на все 100%. :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 28 Сентябрь, 2016 17:03 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
andr писал(а):
==========================
TAU писал(а):
andr писал(а):
9. Языки описания потоков данных (dataflow)
почему эти два вида схем отнесены к разделу
Языки графического описания структур данных?

Потому что, видимо, Вы оперируете неполной "нарезкой" из книги.
На самом деле в книге не так.
Мне обещали принести эту книгу (может быть уже приносили - меня не было на работе).
Надо будет разобраться.
Автор книги любезно предоставил в пользование полный файл книги:
А.А. Тюгашев.
Графические языки программирования
и их применение в системах управления реального времени
.
- Самара, 2009. - 100 с.

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

Некоторые (вопросительные и для личных уточнений) замечания - по ходу чтения книги:

------------------------------
Раздел 1.
Тенденции развития современных языков программирования

1 (с. 9)
Цитата:
К направлениям исследований и разработок в области языков
программирования четвертого поколения могут быть отнесены:
1. Проблемно-ориентированные языки программирования.
2. Декларативный подход к программированию.
3. Языки визуального (графического) программирования.
4. Использование в программировании подмножеств естественного
языка.

1)
Это в дополнение к общему аналитическому обзору книги по графическим языкам
(для полноты графических ощущений). :wink:
Есть желание отнести к языкам графического программирования
(или как-то ассоциировать с ними)
язык логических схем алгоритмов (ЛСА) и параллельных ЛСА (ПЛСА).

Например - достаточно полное описание общих принципов ЛСА и ПЛСА в неожиданном приложении:
А.Е. Кононюк. КОНСАЛТОЛОГИЯ. ОБЩАЯ ТЕОРИЯ КОНСАЛТИНГА
http://fs.onu.edu.ua/clients/client11/web11/pdf/konsalting-3.pdf
р. 3.3. Консультационные алгоритмы и языки их описания (с. 107 - )
р. 3.3.1. Последовательный консультационный алгоритм и его свойства (с. 107)
ЛСА (логические схемы алгоритмов, соответствующие им МСА (матричные схемы алгоритмов),
работа с ними (преобразования, минимизация, объединение ЛСА).
р. 3.3.4. Описание параллельных консультационных алгоритмов (с. 134 и далее)
И дальше идет привязка ЛСА и ПЛСА к сетям Петри (рассмотренных ранее)

ЛСА и ПЛСА - Это какая-то смежная или переходная форма:
а)
С одной стороны - это литерный (текстовый) язык:
особые структурные формулы алгоритмов со "поперечными" стрелками
нелинейных условных и безусловных переходов.
б)
С другой стороны - поперечные стрелки ЛСА (исходящие и входящие)
легко дополняются явными или воображаемыми графическими связями.
А ПЛСА с явными связями легко переводятся из одномерной формы записи (строкой)
в двухмерную графическую форму.

При этом ЛСА появились еще в 1953 г. - для высокоуровневого представления
низкоуровневых машинных исходных кодов,
и применялись для автоматизации низкоуровневого системного программирования.
А затем появились ПЛСА - для еще более низкоуровневого микропрограммирования.

В этом смысле такое специфическое визуальное программирование
относится, по-видимому, еще к языкам программирования первого поколения:
точнее - это, по-видимому, фундаментальные низкоуровневые предпосылки графических языков.
Полезная получилась наводка - для полноты теоретических графических представлений
(в смысле поколений языков).

2) (с. 11)
Цитата:
Таким образом, языки программирования, с одной стороны, могут быть
классифицированы по «уровням»:
1. Языки программирования «низкого уровня», к которым относят язык
машинных кодов и язык ассемблера (автокода).
2. «Языки высокого уровня», такие, как Фортран, Паскаль, Си, и др.
3. Языки «сверхвысокого уровня», приближенные к специфике
предметной области решаемых задач.
C другой стороны, языки программирования могут быть отнесены к
тому или иному «поколению»:
1. Первое поколение – машинные коды.
2. Второе поколение – ассемблер (автокод).
3. Третье поколение - «языки высокого уровня» (Си, Паскаль, Java, и др.).
4. Четвертое поколение.
Согласно замечаниям по п. 1)
графические языки, по-видимому, сами имеют поколения - параллельные поколениям текстовых языков,
и могут быть вынесены из общего 4-го поколения с самостоятельную ветвь классификации.
Это получается достаточно неожиданно - и надо еще думать, насколько это адекватно (чему?).

-------------------------------------
Раздел 2 (с. 14).
Преимущества визуального представления программ
Отражены полезные аспекты с точки зрения соотношения:
логики и психологии вербального (словесного) мышления
и
логики и психологии образного (визуального образного) мышления.

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

--------------------------------
Раздел 3.
Классификация средств графического программирования
Здесь несколько (много) классификаций по разным основаниям.
Представляет интерес их примерить по конкретным областям приложения (прикладным интересам):
по ходу последующих намерений.

--------------------------------------
Раздел 5 (с 29).
Учебные языки
Выделяются как самостоятельный класс визуальных языков.
Несколько неожиданно, но это само собой разумеется.

И сразу же:
5.1.
Scratch
Цитата:
Язык Scratch является одной их вариаций на тему языка программирования Smalltalk,
созданного одним из основоположников объектно-ориентированного программирования Аланом Кэем [28].
Основной идеей, положенной в язык Smalltalk, является то,
что всё является объектами, обменивающимися сообщениями.
Фактически Скрэтч - это первичная форма объектной ориентированности:
уже есть объекты, но еще нет других атрибутов объектно-ориентированного программирования.

В частности:
-- нет объектов-классов - для порождения, обслуживания и ликвидации объектов-экземпляров классов
(порождение-ликвидация имитируется ручным копированием и удалением объектов);
-- нет наследования классов и т.д.

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

Все это связано также со следующими обстоятельствами:
Цитата:
При этом Smalltalk представляет собой не просто язык программирования,
но и среду исполнения с графическим интерфейсом – в
этой области он также был одной из пионерских разработок.

При этом для объектов широко используется визуальная метафора – им сопоставляется
картинка на экране, которая может при этом вращаться, передвигаться, и т.д.

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

Данное обстоятельство широко используется при
использовании Smalltalk’a для начального обучения детей
программированию.
В этой связи прежде всего можно назвать такие
разработки, как Squeak e-Toys, Scratch).
Более того - это оказалось удобным средством оперативной подготовки
примеров визуального имитационного моделирования динамических мнемосхем
технических, технологических и робототехнических систем
для введения в теорию параллельных алгоритмов:
для младших студентов (и старших школьников).

Цитата:
Рассматривая «визуальные» программы на Scratch, можно отметить, что
фактически они представляют собой иную форму отображения
традиционных текстов программ – цветные «кирпичики»
есть аналог
синтаксических диаграмм Несси-Шнейдермана,
подчеркивающих
построение текста программы в соответствии с правилами структурного
программирования.
Вот те на.
Я то думал, что первый распознал в скриптах визуальных объетов (спрайтов)
диаграммы Несси-Шнейдермана.
Нигде в литературе по Скрэтчу этого не говорится (не встречал, по крайней мере).
В стандарте
http://www.gametest.ru/doc/sw/8631_94.pdf
они называются структурными диаграммами программ (СПД).

Но это существенно усовершенствованные диаграммы Несси-Шнейдермана (СПД):
1)
с вертикальным исполнением составных операторов - скобы операторов условных ветвлений и циклов
(это есть в других разновидностях детских графических языков).
2)
Используется высокая автоматизация в точной ручной сборке стеков команд,
с автоматической развижкой скоб составных операторов и т.п.

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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