DRAKON.SU https://forum.drakon.su/ |
|
ДРАКОН и функциональные языки программирования https://forum.drakon.su/viewtopic.php?f=62&t=4086 |
Страница 1 из 2 |
Автор: | Владимир Паронджанов [ Суббота, 15 Сентябрь, 2012 12:46 ] |
Заголовок сообщения: | ДРАКОН и функциональные языки программирования |
Уважаемые коллеги! Прошу Вас высказать соображения на тему "ДРАКОН и функциональное программирование". В частности, желательно осветить и обсудить тему: ПРИНЦИПЫ ПОСТРОЕНИЯ ГИБРИДНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ, ОБРАЗОВАННЫХ СОЕДИНЕНИЕМ ДРАКОНа И ФУНКЦИОНАЛЬНЫХ ЯЗЫКОВ |
Автор: | Владимир Паронджанов [ Суббота, 15 Сентябрь, 2012 14:31 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
8 апреля 2012 года Степан Митькин сделал сообщение о связи ДРАКОНа и функциональных языков: Степан Митькин писал(а): Вышел DRAKON Editor 1.10 viewtopic.php?p=72000#p72000В этой версии: .......................................... 2. Добавлен язык Javascript. 3. Добавлен язык Erlang. Сайт проекта: http://drakon-editor.sourceforge.net/ Обычно считается, что ДРАКОН - сугубо процедурный язык. Но оказалось, что для функционального программирования ДРАКОН также хорошо подходит. Единственное отличие функционального ДРАКОНА от его процедурного собрата - отсутствие циклов. Всё остальное, включая Силуэт, остаётся как прежде и отлично работает. Отсюда вытекает такая формулировка: Цитата: Тезис Степана Митькина ДЛЯ ФУНКЦИОНАЛЬНОГО ПРОГРАММИРОВАНИЯ ДРАКОН ХОРОШО ПОДХОДИТ Уважаемые коллеги! Что Вы думаете по этому поводу? Прошу поддержать или опровергнуть (или прокомментировать) заявление Степана Борисовича. |
Автор: | Владимир Паронджанов [ Суббота, 15 Сентябрь, 2012 15:01 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Доктор технических наук, профессор Андрей Александрович Тюгашев (псевдоним TAU) писал(а): Восхитительно и интересно! Надо посмотреть - еще не слышал о применении блок-схем для функционального программирования, в нем больше диаграммы потоков данных идут. viewtopic.php?p=72035#p72035Уважаемый Андрей Александрович! Если нетрудно, изложите Ваше мнение по этому вопросу в развернутой форме. |
Автор: | Владимир Паронджанов [ Суббота, 15 Сентябрь, 2012 15:22 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
usr345 создал тему Цитата: Как изобразить condition-case в ДРАКОН-Lisp viewtopic.php?f=78&t=2774 В этой теме в порядке эксперимента исследован вопрос о возможности языка Дракон-Лисп. Тема очень интересная, но выводов там я не нашел. Уважаемый usr345! К какому заключению Вы пришли по результатам Вашего эксперимента? Просьба пояснить. |
Автор: | Владислав Жаринов [ Воскресенье, 16 Сентябрь, 2012 13:44 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Да, это будет интересно. Тем более, что выводов предполагается два - один связан и с техноязыком как нотацией в императивной парадигме, другой - только с исчислением графов для представления функциональной в чистом виде... |
Автор: | Степан Митькин [ Среда, 03 Октябрь, 2012 14:10 ] |
Заголовок сообщения: | ДРАКОН-Erlang |
Функциональное программирование - область интересная. Полная фанатизма и тайны. В чём его соль? Чем же оно так хорошо? Простого ответа я не нашёл. Пришлось разбираться. Как говорит нам Теорема Бёма — Якопини, любой алгоритм можно составить из блоков всего трёх видов: 1. Последовательность действий. 2. Развилка по результатам логического выражения. 3. Цикл. Эти блоки есть почти во всех языках программирования. Именно наличие этих блоков и делает языки похожими. Но функциональные языки стоят особняком. Их отличие в том, что у них нет циклов. То есть остаются только два вида строительных блоков: 1. Последовательность. 2. Развилка. Циклы программировать, конечно, можно и нужно. Но неявно. Для неявного выражения циклов активно используются: 1. рекурсия; 2. композиция функций. То есть получается, что выразительная сила функциональных языков нарочно урезана. Зачем? А затем, чтобы уменьшить сложность программ. Благодаря отсутствию циклов все переменные можно сделать только для чтения. Каждый символ в программе имеет только одно вечное значение. Это жутко удобно. Кроме того, можно устранить скрытые сторонние эффекты. Когда в результате вызова процедуры "что-то" меняется "где-то". Вот практические следствия этого упрощения: 1. Композиция функций получается безопасной. Замыкания (closures) можно читать буквально. 2. В обычных языках значение переменной может меняться. Поэтому при чтении программ приходится догадываться, какое значение принимает переменная в каждом месте, где она упоминается. Что требует вдумчивого изучения контекста. А это ненужная умственная работа. 3. Самое главное. Аргументы и возвращаемый результат функций передаются по значению. Из-за этого функцию можно рассматривать как систему, в которой чётко обозначены вход и выход. Это эргономично! Всё вроде бы хорошо, но есть небольшая проблема. Функциональные программы уж больно трудно читать. На выручку приходит ДРАКОН. Так как принципиального отличия (кроме отсутствия циклов) у функциональных языков нет, из них тоже можно делать гибридные языки. 1. Контроль управления ходом алгоритма делают иконы ДРАКОНа. 2. Внутрь икон помещаются вызовы функций и выражения. ДРАКОН для этого изменять не нужно. Нужно только взять то его подмножество, которое не касается циклов. В качестве подопытного кролика был взят язык Erlang. Почему? 1. Он очень простой и понятный. 2. В нём изначально есть поддержка параллельного программирования. DRAKON Editor реализует ДРАКОН-Erlang. Подробности описаны в этой статейке. Повторю свои тезисы: 1. Функциональные языки не имеют принципиальный отличий от "обыкновенных" (кроме отсутствия циклов). 2. Трудность чтения функциональных программ вызвана исключительно традицией их записи. 3. ДРАКОН может быть успешно использован для улучшения понимаемости функциональных программ. |
Автор: | TAU [ Среда, 03 Октябрь, 2012 14:50 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Владимир Паронджанов писал(а): Доктор технических наук, профессор Андрей Александрович Тюгашев (псевдоним TAU) писал(а): Восхитительно и интересно! Надо посмотреть - еще не слышал о применении блок-схем для функционального программирования, в нем больше диаграммы потоков данных идут. viewtopic.php?p=72035#p72035Уважаемый Андрей Александрович! Если нетрудно, изложите Ваше мнение по этому вопросу в развернутой форме Хммм... Не сразу увидел ветку. Дело вот в чем. Блок-схемы представляют собой последовательность операций. Операции изображаются блоками (иконами по Паронджанову). Стрелка показывает передачу управления от одного действия к другому. Можно говорить, что есть некий "исполнитель", имеющий "состояние", и состояние (его и окружающей среды) меняется после каждого выполненного действия. С каждым переходом по стрелке. Операции (отображаемые блоками) выполняются строго одна за другой. У чистых функциональных программ, вообще говоря, нет ни последовательности, ни состояния. Понятно, что вычислить функцию можно лишь в тот момент, когда будут готовы значения аргументов для нее. Но это и все. В сложных функциях можно теоретически считать сразу несколько "подфункций" одновременно на разных процессорах. Поэтому они хорошо распараллеливаются. Диаграммы потоков данных представляют собой, грубо, отображение функций графическими примитивами и потоков информации стрелками. В них времени (последовательности) напрямую нет. Функции (отображаемые блоками) могут выполняться одновременно и разными исполнителями. Не знаю, удалось ли мне выразиться, как просил глубокоуважаемый Владимир Даниелович, "в развернутой форме" ![]() |
Автор: | Степан Митькин [ Среда, 03 Октябрь, 2012 16:52 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
TAU писал(а): У чистых функциональных программ, вообще говоря, нет ни последовательности, ни состояния. Нельзя говорить, что в функциональных программах совсем нет последовательности. Функциональное программирование производит частичное упорядочение операций. То есть иногда последовательность задаётся жёстко. Иногда остаётся на усмотрение компилятора. Например: Result = cool(bar(foo(X))) Здесь последовательность вызова функций критически важна. Она определяет суть алгоритма. Сначала вызывается foo, затем bar, а уж потом cool. Вложение: sequental.png [ 3.11 КБ | Просмотров: 22755 ] Другой пример: Result = cool(foo(X), bar(Y)) Здесь действия упорядочены только частично: - сначала вызывается foo или bar или обе одновременно; - затем вызывается cool. Вложение: parallel.png [ 4 КБ | Просмотров: 22755 ] ДРАКОН изначально предполагался для полностью упорядоченных последовательностей. Но, как видно из этих примеров, ДРАКОН способен наглядно показать и частично упорядоченную последовательность. Текущая версия DRAKON Editor'а пока не поддерживает такое изображение параллельных действий. К счастью, для реализации гибридного языка ДРАКОН-Erlang это не требуется. Я настаиваю на выводе, который я сделал, программируя на языке ДРАКОН-Erlang: В своей сути Функциональное программирование не имеет существенных отличий от процедурного. И там, и там программист обязан вручную задать шаги, требуемые для решения задачи. Эмоциональное ощущение: графическое управление потоком выполнения вкупе с преимуществами функционального программирования даёт невиданную ясность алгоритмов. |
Автор: | Владимир Паронджанов [ Среда, 03 Октябрь, 2012 19:25 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Степан Митькин писал(а): графическое управление потоком выполнения вкупе с преимуществами функционального программирования даёт невиданную ясность алгоритмов. Уважаемый Степан Борисович! Если можно, раскройте и детализируйте этот тезис. То есть ответьте на вопрос: В чем заключается НЕВИДАННАЯ ЯСНОСТЬ АЛГОРИТМОВ? По пунктам первое, второе, третье и т.д. |
Автор: | Степан Митькин [ Четверг, 04 Октябрь, 2012 17:00 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Владимир Паронджанов писал(а): То есть ответьте на вопрос: В чем заключается НЕВИДАННАЯ ЯСНОСТЬ АЛГОРИТМОВ? По пунктам первое, второе, третье и т.д. Для меня ясность проявляется так. Обычно я пишу программу, проверяю и запускаю. В большинстве случаев она сразу не работает. Её надо исправлять. С ДРАКОН-Эрлангом довольно часто всё получается сразу. Конечно, ошибки тоже бывают. Но волшебное "заработало!" быстрее приходит. |
Автор: | Alexey_Donskoy [ Пятница, 05 Октябрь, 2012 08:00 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Степан Митькин писал(а): Но волшебное "заработало!" быстрее приходит. Может, это просто опыт? ![]() |
Автор: | Степан Митькин [ Пятница, 05 Октябрь, 2012 22:34 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Alexey_Donskoy писал(а): Степан Митькин писал(а): Но волшебное "заработало!" быстрее приходит. Может, это просто опыт? ![]() сын ошибок скучный ![]() Выложил HTML-версию статьи: http://drakon-editor.sourceforge.net/drakon-erlang/intro.html |
Автор: | Владимир Паронджанов [ Суббота, 06 Октябрь, 2012 16:41 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
В сообщении viewtopic.php?p=75245#p75245 Степан Митькин писал(а): Подробности описаны в этой статейке. У меня три замечания.1. Это не статейка, а статья. Причем очень серьезная. На 23 страницах. 2. Статья чрезвычайно интересная. Содержащая важные новые идеи. А может быть, даже революционная. 3. Степан Борисович, Вы дали ссылку http://sourceforge.net/projects/drakon- ... f/download
http://ignum.dl.sourceforge.net/project ... Erlang.pdf Прямая ссылка (через ignum.dl. и без download) открывается моментально. Как Вы считаете? В сообщении viewtopic.php?p=75245#p75245 Степан Митькин писал(а): Всё вроде бы хорошо, но есть небольшая проблема. Плохая формулировка. Слово "небольшая" вводит в заблуждение и портит всю обедню. Слово "небольшая" надо удалить. После этого формулировка становится приемлемой.Функциональные программы уж больно трудно читать. В конце сообщения viewtopic.php?p=75245#p75245 Степан Митькин писал(а): Повторю свои тезисы: 1. Функциональные языки не имеют принципиальный отличий от "обыкновенных" (кроме отсутствия циклов). 2. Трудность чтения функциональных программ вызвана исключительно традицией их записи. 3. ДРАКОН может быть успешно использован для улучшения понимаемости функциональных программ. Приветствую тезисы Митькина. Обобщая их, предлагаю для обсуждения формулировку: Цитата: Тезис Степана Митькина Основной недостаток функционального программирования (трудность чтения функциональных программ) можно значительно ослабить или даже полностью устранить с помощью языка ДРАКОН Степан Митькин писал(а): Выложил HTML-версию статьи: http://drakon-editor.sourceforge.net/drakon-erlang/intro.html ======================================== Я выделил из статьи отрывок. И перевел этот отрывок на русский язык. Цитата: Algorithm is the core of software. It is the algorithm that produces the desired output of a program. Therefore, if the algorithm is easy to understand, the whole program is easy to maintain, extend and document. Unfortunately, the traditional way of recording algorithms is wrong. This is a major problem of programming in general, not only functional programming. Algorithms in most of the modern programs are written using text. This text is called "the source code". Usually, source code is indented in a special way and highlighted with different colors in the editor. But it is plain text. Text is bad because humans are not very good at understanding text. Their eyes and brains have been optimized for seeing images during millions of years. Text is a recent invention. The human biological hardware is not natively compatible with text. If the algorithm is presented as an picture instead of text, it can be easier to understand. There are a lot of ways to draw an algorithm. Choosing the right one is critically important. A bad picture can be worse than text. A good picture will leverage the ability of the human being to perceive information simultaneously. Flowcharts are a popular graphical notation for representing algorithms. Many developers do not like flowcharts. The reason is that complex algorithms tend to end up in badly cluttered flowcharts. Those can be harder to figure out than text-based programs. As a result, graphical programming is often dismissed as an unsuccessful experiment. But the problem is not in graphical programming itself. The problem is that flowcharts as a graphical language are not good enough. The good news is, it is possible to improve this language. DRAKON provides such improvement. It offers several simple, but effective rules that cardinally increase readability of a diagram. DRAKON is a visual language that can be described as flowcharts optimized for ergonomics. The creators of DRAKON paid great attention to human visual habits. Every little detail of DRAKON is aimed at ensuring fast and easy understanding. That is why DRAKON is an excellent candidate for visualization of a functional programming language. The clarity of DRAKON is something that functional programming can greatly benefit from. Перевод на русский язык Цитата: Алгоритм является ядром программного обеспечения. Именно алгоритм определяет желаемый результат программы. Если алгоритм пригоден для легкого и быстрого понимания, то вся программа окажется удобной для сопровождения, внесения изменений, расширения функциональных возможностей и документирования. К сожалению, традиционный способ записи алгоритмов не в полной мере пригоден для создания понятных алгоритмов. Это серьезная проблема. Проблема, характерная для программирования в целом, а не только для функционального программирования. Алгоритмы в подавляющем большинстве программ написаны с помощью текста, т.е. исходного кода. Как правило, исходный код пишут с отступами (индентацией) и выделяют нужные слова разными цветами в редакторе. Эти приемы (отступы и цвет) полезны, но они не изменяют природы текста. Трудность в том, что люди далеко не всегда способны глубоко понять сложный текст. Человеческий глаз и мозг в течение миллионов лет, предшествовавших появлению текста, привыкли воспринимать зрительные образы окружающего мира. Мира, в котором текст полностью отсутствовал. Текст — недавнее изобретение. Электробиохимическая структура нервной системы человека (biological hardware) на начальном этапе эволюции была приспособлена к зрительным образам внешнего мира, но не знакома с текстом и не адаптирована к нему. Если же алгоритм представить не в виде текста, а в виде картинки (изображения) ситуация меняется. Картинка ближе к зрительным образам окружающего мира, чем текст. Поэтому она проще для восприятия. И понятнее. Существует несколько нотаций для проектирования и записи алгоритмов. Выбор наилучшей нотации очень важен. Плохая картинка может быть хуже, чем текст. И наоборот, хорошая картинка может спасти положение. Какую же картинку можно признать хорошей? По-видимому, ту, что построена с учетом структурных особенностей человеческого глаза и мозга, сформированных в течение миллионов лет эволюции. То есть ту, в основе которой лежит способность человека к симультанному восприятию зрительной информации. Блок-схемы — графическая нотация для представления алгоритмов. Подобные схемы считаются устаревшими и не пользуются популярностью. По мнению большинства, использование блок-схем не только не ускоряет, а наоборот, тормозит процесс программирования. В итоге графическое программирование часто называют неудачным экспериментом. Но проблема отнюдь не в графическом программировании. А в том, что блок-схемы имеют существенные недостатки. К счастью, эти недостатки можно устранить. Язык ДРАКОН позволяет решить проблему понимания с помощью простых, но эффективных правил, которые кардинально улучшают читаемость и понятность алгоритмов. ДРАКОН можно охарактеризовать как блок-схемы, оптимизированные с учетом требований когнитивной эргономики. Создатели ДРАКОНа уделяют большое внимание особенностям зрительного восприятия человека. Правила ДРАКОНа учитывают то обстоятельство, что в поле чертежа необходимо оптимально расположить мелкие графические детали, которые в совокупности формируют целостный зрительный образ. За счет повышенного внимания к мелким деталям графики ДРАКОН обеспечивает быстрое и легкое понимание сложного алгоритма. Именно поэтому ДРАКОН является отличным кандидатом для визуализации функциональных языков. Кристальная ясность алгоритмов, которую обеспечивает ДРАКОН — вот та особенность, которая может добавить функциональному программированию дополнительное преимущество. Примечания 1. Мой перевод не дословный, а вольный, то есть отредактированный. 2. Причина редактирования в том, что, по моему мнению, в тексте Митькина есть резковатые, неосторожные выражения, которые могут вызвать возражения оппонентов. 3. Я стремился сделать русский текст более осторожным. С этой целью я ввел несколько пояснений (отсутствующих в исходном тексте). 4. Если Степан Борисович не согласен с моими правками, следует их (правки) игнорировать. 5. В этой статье Степан Борисович выдвигает новые идеи и делает смелые заявления. Я поддерживаю эти идеи и заявления. И хочу пожелать Степану Борисовичу успехов в продвижении этих идей. 6. Недостатком статьи является слишком короткий список литературы. Желательно добавить дополнительные источники. Это объясняется тем, что необычные идеи нуждаются в дополнительном обосновании и привлечении большого количества дополнительной литературы. Расширенный список литературы (не притянутой за уши, а только по делу) поможет убедить оппонентов, что автор знаком с современной литературой по предмету (и по смежным вопросам) и умеет тщательно обосновать свои утверждения, опираясь на авторитетные источники. =================================== Уважаемые коллеги! Желательно обсудить статью Степана Борисовича Митькина на нашем форуме. Трудность в том, что статья на английском. Я перевел только очень малый фрагмент статьи. |
Автор: | Владимир Паронджанов [ Воскресенье, 07 Октябрь, 2012 10:47 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Уважаемые коллеги! Предлагаю для обсуждения Цитата: Тезис Степана Митькина
Основной недостаток функционального программирования (трудность чтения функциональных программ) можно значительно ослабить или даже полностью устранить с помощью языка ДРАКОН |
Автор: | Дмитрий Дагаев [ Воскресенье, 07 Октябрь, 2012 14:36 ] | ||
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования | ||
Есть МЭКовский язык FBD. Можете свои функции разработать. Для примера из темы рисунок на FBD выглядит примерно так. Лучше чем на Драконе, да еще реализован (в отличие) кучей коммерческих продуктов. Неудобно говорить, что уже много раз писал. Имеет смысл делать два языка в одном флаконе: Дракон и FBD.
|
Автор: | Степан Митькин [ Воскресенье, 07 Октябрь, 2012 23:31 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Дмитрий Дагаев писал(а): Есть МЭКовский язык FBD. Имеет смысл делать два языка в одном флаконе: Дракон и FBD. FBD имеет важное преимущество. Он позволяет визуально обозначать потоки данных через функции. Возьмём наш пример: Код: Result = cool(foo(U), bar(V)) Недостаток этой записи в том, что в ней три действия упакованы в одну строку. Упакованы слишком плотно. Распаковка требует некоторых умственных усилий. Можно переписать этот пример по-другому: Код: X = foo(U) Y = bar(V) Result = cool(X, Y) Здесь каждое действие занимает одну строку. Читателю не нужно парсить сложное, обильно вложенное выражение. Но и тут есть проблема. Длина текста возрасла за счёт появления переменных X и Y. Кроме того, читатель вынужден сканировать глазами исходный текст, чтобы выявить места, где переменные определяются и где используются. Конечно, тот факт, что переменные в Эрланге не могут менять своего значения, серьёзно облегчает чтение. Да и современные среды разработки помогают. Они подсвечивают вхождения переменной при её выделении. Тем не менее, FBD (functional block diagrams) намного нагляднее текста. Поток данных можно отследить пальцем. Это гораздно легче, чем своими собственными глазами (чуть не сказал "руками") искать подстроку в тексте. Путь данных виден невооружённым глазом. Но, как всегда, есть одно "но". Неудобно делать ветвление. Здесь ДРАКОНу равных нет. Вот как бы объединить ДРАКОН и FBD? Дмитрий Дагаев предлагает вставлять FBD внутрь икон ДРАКОНа. Вот так: Вложение: (Взято из http://drakon.su/_media/biblioteka/alaverdy_drakon.pdf). Преимущества FBD в этом примере неочевидны. - Блоки ИЛИ и И лучше выражены в FBD. - ДРАКОН чётче отслеживает различные комбинации результатов проверок. И ещё. Эти две диаграммы представляют несколько разные алгоритмы. ДРАКОН-версия налагает явный порядок вычисления аргументов логических функций. С одной стороны, это плохо. В некоторых случаях этот порядок не важен. Проектировщик алгоритма вкладывает больше информации в диаграмму, чем необходимо. С другой стороны, это хорошо. Производительность программы легче поддаётся оценке и улучшению. Это также имеет значение с точки зрения безопасности. Явное указание последовательности проверок может снизить угрозу некоторых видов атак. У меня вопрос к участникам форума, и особенно к Дмитрию Дагаеву: Как можно объединить визуальную наглядность потоков данных FBD и чёткость ветвления ДРАКОНа? |
Автор: | Степан Митькин [ Воскресенье, 07 Октябрь, 2012 23:35 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Владимир Даниелович, спасибо большое за перевод. Перевод получился лучше, чем оригинал. |
Автор: | Дмитрий Дагаев [ Понедельник, 08 Октябрь, 2012 09:02 ] | |||
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования | |||
Смешивать, но не взбалтывать. 1. Единый редактор, который загружает Файл.Дракон и Файл.fbd (http://forum.oberoncore.ru/viewtopic.php?f=62&t=3337), включая функциональные блоки стандарта 499. 2. Масштабирование с возможностью раскрывание внутренностей блока. Во вставленном Вами примере при увеличении масштаба иконка ВОПРОС раскрывается в FBD схему. FBD 499 служит верхним уровнем. И может раскрыться в Дракон-схему. Мои старые примеры с раскрытием FBD 499 в Дракон на рисунках. 3. Связываем переменные на уровне кодогенераторов. 4. На этом можно строить немаленькие системы: АСУТП, тренажеры, экспертные системы диагностики http://forum.oberoncore.ru/viewtopic.php?f=62&t=3355. 5. Не забываем, что распределенные АСУТП уже так строят.
|
Автор: | Степан Митькин [ Вторник, 09 Октябрь, 2012 13:05 ] |
Заголовок сообщения: | ДРАКОН-FBD-Эрланг |
Дмитрий Дагаев писал(а): Смешивать, но не взбалтывать. То есть эта диаграмма на ДРАКОН-Эрланге: Вложение: превращается в эту: Вложение: Дмитрий, я правильно понимаю вашу мысль? |
Автор: | Дмитрий Дагаев [ Вторник, 09 Октябрь, 2012 13:26 ] |
Заголовок сообщения: | Re: ДРАКОН и функциональные языки программирования |
Да, правильно. Но: - при уменьшении масштаба это превратится в прямоугольник - иконку ДЕЙСТВИЕ, - эргономически цветная схема на мой взгляд не совсем понятна, напрашивается присваивание (чтобы виден RETURN в конце функции, как советуют классики ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |