DRAKON.SU

Текущее время: Вторник, 16 Апрель, 2024 19:40

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




Начать новую тему Ответить на тему  [ Сообщений: 254 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13  След.
Автор Сообщение
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Вторник, 18 Сентябрь, 2012 16:23 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Kemet писал(а):
PSV100 писал(а):
Если скобки пусты -- переход на имен. вершину текущей структуры.

Здесь я не понял о чем речь. Для спецструктуры же остается в силе логика переходов в "начальную" и "конечную" вершины структуры (*, #) - я об этом писал.
PSV100 писал(а):
- "----->[]" - "redo" - переход на именную вершину цикла пусть означает операцию "redo"

Здесь я явно туплю, что за именная вершина, зачем она, где должна находится. По-моему все это можно обычными средствами реализовать.


Собственно, у меня были размышления над тем, как можно организовать циклы. Для меня неясно, будут ли переходы на спецдугу (*, #) срабатывать как continue и break. А также я пытался заложить возможность для операции "redo", пример отсюда:

Вложение:
redo_cycle.PNG
redo_cycle.PNG [ 5.21 КБ | Просмотров: 19974 ]


Если глянуть на ГОСТ, то там чуть ли не на каждый чих требуют лепить спецвершину для спецдуги:

Вложение:
r_spec_line.PNG
r_spec_line.PNG [ 5 КБ | Просмотров: 19974 ]


Можно ввести ещё один вид перехода: именно на спецвершину, указывать как "[ИМЯ]", в т.ч. как и в "*, #" имя может отсутствовать. Можем задать, что спецдуга всегда имеет спецвершину, даже если вершина, в круглых скобках, явно не указана. Переходы на спецвершины пусть имеют свой загадочный смысл в зависимости от вкладываемой семантики. Так можно выделять переходы на другие связанные схемы, тем более, если они будут начинаться с именованной вершины (ранее были попытки изобразить драконовский "силуэт"). Для циклов, спецдуг, можно закрепить "redo", тогда структурные переходы на спецдугу будут означать:

- "*..." - на начало: continue
- "#..." - на конец: break
- "[...]" - на спецвершину: "redo"

Можно пойти другим путём. Скажем, если реализовывать семантику циклов вида питоновских "while-else" и "for-else", то для указания переходов можем ввести ещё один символ, к примеру "!", что означает "нестрогий" переход. Т.е.:

- "!*..." - "нестрого" перейти на начало: continue без for-инициализаций - "redo"
- "!#...." - "нестрого" перейти на конец: break, но выполнить часть "else"

Откровенно говоря, все эти структуризаторы как-то не очень выразительны. Видимо, опять нужно говорить о грамотной прорисовке схем. К тому же, для современных пацанов, вроде меня, неясна логика использования именно этих символов: "*" и "#", т.е. за что можно зацепиться, чтобы не путать, где начало, а где конец. К примеру, в виме - "^" и "$", на что повлияли регулярные выражения, или в ряде шаблонных языков выделяют начало и конец секции: "#ИМЯ" и "/ИМЯ", что под влиянием XML/HTML. Хотя, с другой стороны, в схеме одиночные символы вида "^", "/" ещё хуже, чем исходные "*", "#".
В общем, это мелочи, ко всему можно привыкнуть, причём в данном случае даже быстро. В идеале, хотелось бы свести все переходы к одному виду, к примеру, в тех же квадратных скобках. А также можно заметить, что как раз использование обратных дуг в циклах, в качестве всяких "break", уменьшает потребность в явных структуризаторах.

Kemet писал(а):
PSV100 писал(а):
т.е. запуск обратной дуги анализируется всегда, даже когда нет проходов по прямым дугам, и если была хоть одна итерация, то структура будет проходимой, даже если не срабатывали прямые дуги -- можно взять на вооружение.

а как мы попадем в конечную вершину, если проходимых прямых дуг нет?
Чем дальше в лес ... непонятки только увеличиваются.
Базовая структура в РТК имеет следующую обобщенную форму
...

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

Одним словом, пока можно сделать вывод. Семантикой Р-схем можно вертеть в любую нужную сторону, хочешь "паука" - не вопрос, нужна "кложура", но в облике "паскаля", да попроще, попонятнее, контролируемо (имхо, это главное), ещё и в "графике" - легко...

Kemet писал(а):
Если мы и буду использовать Р-технологию, то или сами будем писать компиляторы или проспонсируем разработку.

Если это намёк...

Пока могу сказать следующее. Сейчас у нас ещё нет однозначного мнения, нужны ли Р-схемы, смогут ли чем-то помочь, тем более "визуализация" у нас весьма второстепенное дело (хотя, решения лучше Р-схем что-то не видно). Во всяком случае, в ближайшее время точно нет ни времени, ни прочих ресурсов для каких-то Р-экспериментов. Но вполне вероятно, что в ближайшем будущем можно будет подойти к вопросу насчёт Р-редактора. Пока не знаю в каком виде, как некий плагин для какого-то текстового редактора/IDE (если позволит нужные финты какая-то платформа, в чём я очень сомневаюсь, даже эмакс, со своими картинками в тексте, вряд ли подойдёт), или полностью самостоятельная разработка. Надеюсь, что потенциальный проект будет общедоступным. Не исключено, что Вас придётся, всё-таки, уже мучать конкретно, выяснять былые плюшки и думать над тем, как сделать технологию сегодня.
По поводу компиляторов и всяких трансляторов. Это, конечно, отдельная объёмная песня, и весьма специализированная. Сейчас ничего сказать не могу. Во всяком случае, редактор нужно делать универсальный, не прибитый гвоздями к одной семантике, языку и т.д. В т.ч. он должен быть расширяемым, программируемым, весь современный набор: автокомплит, разбор текста на лету и т.д. и т.п. - однозначно должен быть, т.е. д.б. потенциал для этого, но а запуск внешних приложений (компиляторов) и разбор с отображением их результатов - само собой.
Пока как-то так...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Вторник, 18 Сентябрь, 2012 20:11 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 34
PSV100 писал(а):
Собственно, у меня были размышления над тем, как можно организовать циклы. Для меня неясно, будут ли переходы на спецдугу (*, #) срабатывать как continue и break. А также я пытался заложить возможность для операции "redo", пример отсюда....

То есть Вы хотите изменить семантику переходов в спецструктуре, заменив переходы на начало и конец графа на переходы на начало и конец данной спецструктуры, имитируя continue и break в некоторых языках, плюс ввести дополнительный вид структуризатора для перехода на именованную дугу структуры. Но ввести дополнительный вид не получится, потому что именовать дуги нельзя, именовать можно только вершину структуры. Если мы введем подобное, то, во-первых, полностью нарушим логику р-схем, и, во-вторых (связанное с первым) нарушим соответствие ГОСТу.

Смысл примера с луа/питоном я не совсем понял, в чем логика редо? Если смысл в том, чтобы повторить итерацию, при этом не изменяя итератор, то это бессмысленно, потому что таким образом мы нарушаем логику работы цикла FOR, это уже и не FOR вовсе.

Но, на самом деле, ничего этого делать не нужно, потому что все можно сделать с помощью определенных в ГОСТе элементов.
Во-первых, итерацию в базовой структуре можно обеспечить без всяких обратных дуг, с помощью структуризатора (хотя, как по мне, так это изврат):
Код:
      P
$M--------->$
!     S     !
!           !
!     P     !
!-------->*M!
      S

а можно и в оьбатной дуге перейти не на начало, а на конец структуры
Код:
      P
$M--------->$
!     S     !
!           !
!     P     !
!M#<--------!
      S

А если учесть, что именованные структуры могут быть вложенными...

Во-вторых, в РТК циклы реализуются не так, как в предоставленной мне современной системе. Это различие, которое я сначала упустил, несколько меняет как синтаксис так и семантику такой структуры. В частности, в РТК условие цикла(определяющее его тип) пишется не над специальной дугой, а над первой обычной, входящей в спецструктуру.
И для FOR(для модулы/паскаля) предикат выглядит, к примеру, следующим образом:
Код:
$==========$
!          !
!I:=1 TO 10!
!--------->!
     S

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

Структурные переходы на начало и на конец спецструктуры FOR именно что и работают как continue/exit.

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

Идея использовать предикат цикла не над обычной дугой, а сразу над специальной дугой, как в предоставленном мне компиляторе, так и в примерах с сайта Фонда Глушкова, в принципе, тоже интересная, но тогда такой подход должен использоваться везде, иначе каша получится, причем невкусная.
PSV100 писал(а):
Можно пойти другим путём. Скажем, если реализовывать семантику циклов вида питоновских "while-else" и "for-else", то для указания переходов можем ввести ещё один символ, к примеру "!", что означает "нестрогий" переход. Т.е.:

- "!*..." - "нестрого" перейти на начало: continue без for-инициализаций - "redo"
- "!#...." - "нестрого" перейти на конец: break, но выполнить часть "else"

Не знаю питона и луа, но если я правильно понял, то всё это можно реализовать не трогая ГОСТа, с помощью структуризаторов и вложенных именованных структур. Или/и как реализован синтерм <CYCLE> - определенная логика переходов. Ну и не забываем про параллельные соединения структур, вершины которых можно именовать.
PSV100 писал(а):
В принципе, ведь в тех же циклах, как "while", как-то попадают в конечную вершину, даже если не было выполнения прямых дуг...
В РТК они проходимы потому что предикаты стоят не над спецдугой, а над обычными дугами, но если вложенные структуры не проходимы, то, по понятным причинам мы "зависнем" в этой точке.
Кроме того, "начальная" и "конечная" вершина для спецдуги имеет, скорее, психологический смысл, а так-то они совпадают, и только конкретная семантика определяет логику переходов. Т.е. получается, что семантика спецструктуры контекстно-зависима.
И в конкретной реализации Р-языка можно крутить семантикой не только спецструктуры, но и базовой, сконструировав синтермы-предикаты, определяющие семантику.
Потому что когда я писал "общая схема организации циклов", "общая базовая структура"... это и есть "общая", определенная в Р-технологии (Р-машине), но в конкретном Р-языке она может не быть реализована или реализована в усеченном/упрощенном виде. Это напоминает NET, где NET-языки не обязательно реализуют все возможности технологии.

По поводу разработки R-IDE и R-компиляторов - без намеков )) , просто мысли вслух.
Никаких работ в этом направлении мы пока не ведем, иначе бы не искали современные реализации.
Надобность такой технологии ... не знаю, "правильный" DSL решит часть проблем без всякой зауми. Но графическая структура тоже имеет свои вкусные плюшки.
Хотя редактор Р-схем должен быть универсальным (а В РТК он таким и был, а сама технология позволяла сконструировать библиотечный элемент с определенным "синтаксисом" и семантикой, расширяя Р-язык), он должен учитывать особенности конкретного Р-языка или "Р-семантики" (в РТК это тоже есть), но на более высоком уровне, чем это было четверть века назад.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 19 Сентябрь, 2012 13:55 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Вот же ж как можно обсуждать... хотя и видишь вопросы к сути, а всё равно интересно... :)
Кстати, в смысле развития сегодня - один из вопросов - это как раз о варианте с инверсной нагрузкой графа (действие-вершина)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 19 Сентябрь, 2012 18:13 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Владислав Жаринов писал(а):
Кстати, в смысле развития сегодня - один из вопросов - это как раз о варианте с инверсной нагрузкой графа (действие-вершина)...

Имхо, основная нагрузка не на вершины, и не на дуги, а на мозг... Тут бы понять, как дуги нагружаются, а как грузить "квадратики" - пока даже проблесков в сознании нет. Да и спорный момент, будут ли Р-выкрутасы нагляднее в инверсной форме.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 19 Сентябрь, 2012 18:38 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Kemet писал(а):
Идея использовать предикат цикла не над обычной дугой, а сразу над специальной дугой, как в предоставленном мне компиляторе, так и в примерах с сайта Фонда Глушкова, в принципе, тоже интересная, но тогда такой подход должен использоваться везде, иначе каша получится, причем невкусная.

Вот в том и дело, что вокруг Р-технологии сплошная каша. В книге Вельбицкого своя Р-технология, смутно напоминающая ГОСТ, а точнее, совсем слабо похожа. В примерах в инете, вообще, рисуют как хотят. На "официальном" сайте Р-технология по ГОСТу в принципе не рисует. А предикат сразу над специальной дугой указан в статье Вельбицкого:

Вложение:
r_for.PNG
r_for.PNG [ 3.52 КБ | Просмотров: 19930 ]


Такое ощущение, что Ваш РТК давно не обновлялся, м.б. нужно подключить ДВК к интернету? :)

Kemet писал(а):
То есть Вы хотите изменить семантику переходов в спецструктуре, заменив переходы на начало и конец графа на переходы на начало и конец данной спецструктуры, имитируя continue и break в некоторых языках, плюс ввести дополнительный вид структуризатора для перехода на именованную дугу структуры. Но ввести дополнительный вид не получится, потому что именовать дуги нельзя, именовать можно только вершину структуры. Если мы введем подобное, то, во-первых, полностью нарушим логику р-схем, и, во-вторых (связанное с первым) нарушим соответствие ГОСТу.


Ага, согласно ГОСТу надписи рядом с вершиной означают имя структуры, т.е. именно структуры, не дуги (хотя структура может состоять из одной дуги), и переходы выполняются на начало/конец именно структуры:

Вложение:
r_pereh.PNG
r_pereh.PNG [ 38.92 КБ | Просмотров: 19930 ]


А также в схеме могут существовать специальные вершины, в круглых скобках, причём это, как бы, частный случай "кружочка", т.е. стартовой вершины структуры, и могут они возникнуть в любом месте:

Вложение:
r_spec_ver.PNG
r_spec_ver.PNG [ 44.25 КБ | Просмотров: 19930 ]


И эти спецвершины могут быть с текстом:

Вложение:
r_spec_name.PNG
r_spec_name.PNG [ 62.56 КБ | Просмотров: 19930 ]


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

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

В принципе, решить все "циклические" проблемы можно через переходы на начало/конец структуры, и я только "за" уменьшение применения структуризаторов, но здесь я туплю:
Kemet писал(а):
А в общих циклах обратные и работают как exit, а переход в начальную вершину(без всяких структуризаторов) и есть continue.

Ведь общая форма цикла такая:
Код:
$============$
!            !
!----------->!
!            !
!----------->!
!            !
!<-----------!
!            !
!<-----------!

И если сработает обратная дуга, то мы как бы и попадаем в начальную вершину, что означает "exit". Или как ещё можно перейти в стартовую вершину без структуризаторов?

Кстати, и получается, что нужно как-то различать переход естественный от перехода через структуризатор, если пытаться ввести continue и break. Тут м.б. и уместно держать спецдугу обособленно, чтобы явно к ней не подобраться, только через структуризатор. С другой стороны, тогда применение безымянных структуризаторов усложнится, в том плане, что они будут означать переходы на структуру под спецдугой, т.е. требуется явное имя в вершине спецдуги. И, вообще, хотелось бы свести к минимуму все эти структуризаторы...
Короче говоря, в голове одна Р-каша пока...

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

Да как раз здесь нет вмешательства в FOR, это переход на первый оператор внутри цикла, просто для Р-схем это требует запуск прохода структуры. В принципе, ничего страшного нет, декларации FOR не трогаются, и если эмулировать аналог без FOR и прочих WHILE, то как раз и получим именно эмуляцию FOR-а, менее компактную и наглядную.

И, кстати, использование что-то подобного <CYCLE> как раз подходит для "функционального" подхода, т.е. вверху спецдуги указали функцию с прочими декларациями вызова (в т.ч. и внизу спецдуги), а само тело под спецдугой - лямбда для неё. И можно своих "циклов" и прочего наваять, и как в функциональных языках убрать предопределенные операторы циклов. Осталось понять, как бы рекурсию показывать, всё-таки, отделаться обычным вызовом, как в текстовом языке, как-то "не по-графически", не наглядно, скорее, потребуется явно эмулировать алгоритмический маршрут, как опять в тех же Lua-примерах:

Вложение:
lua_tail.PNG
lua_tail.PNG [ 15.27 КБ | Просмотров: 19930 ]


А неимперативные декларации вида списочных выражений (list comprehensions) и пр., всё-таки, наверное, лучше держать в сторонке рядом, как в примерах паскаль-программ.

Но это всё тоже просто мысли вслух..., м.б. у кого-то конкретные идеи появятся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 19 Сентябрь, 2012 20:24 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 105
Откуда: Псков
Ещё одна статья Вельбицкого (и Ковалёва А.Л.)
"Графический стиль программирования для персональной ЭВМ"
Журнал "Микропроцессорные средства и системы" N4 1985г.
http://www.wdigest.ru/mpss_pdf/1985/mpss-1985-04.pdf
стр.46-51


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Четверг, 20 Сентябрь, 2012 19:00 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
albobin писал(а):
Ещё одна статья Вельбицкого...

Спасибо. Жаль, что плохо видно. И, прежде всего, ещё раз конкретно написано, что Р-технология - для "функциональных специалистов (физиков, математиков, биологов, инженеров, работников аппарата управления и т.д.)". Т.е., "по нашему" - DSL. Как раз речь, в основном, об РТК-микро, где, кстати, сказано, что нет параллельного соединения структур (именно в микро) ... И опять же, примерчики схем "в графике" оформлены не совсем по ГОСТу, ну и можно немного понаблюдать, как было дело раньше в псевдографике. А также уже более конкретно описано то, что РТК - это не только IDE, а целая производственная система, "кубик" для инжиниринга программ, со своим планированием, анализом и пр., даже полноценное управление кадрами (программистами). Планируют среднестатистическую нагрузку дугами кадров, анализируют месячное и годовое количество символов... :) И это всё аж в 600Кb, плюс 400Kb документации и примеров. Вот были времена...

Кстати, на РСДНе Владимир Даниелович давал ссылку на архивы ЦРУ. Хотя там всего два слова:
Цитата:
R-technology: A structured-design software engineering methodology developed in the early 1970s.

R-technology has been used by software developers in the USSR’s strategic missiles industries.

The Soviets claim that R-technology enables software professionals to electronically “draw” on a computer screen the algorithmic design of the software, which is then automatically mapped to a compiler that generates executable object code.

но буржуи за конкуренцией следили, разведка не дремала... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Четверг, 20 Сентябрь, 2012 19:07 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 34
PSV100 писал(а):
Как раз речь, в основном, об РТК-микро, где, кстати, сказано, что нет параллельного соединения структур (именно в микро)

Параллельные соединения в РТК-микро есть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Четверг, 20 Сентябрь, 2012 19:23 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
PSV100 писал(а):
Короче говоря, в голове одна Р-каша пока...

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

Вложение:
r_struct.PNG
r_struct.PNG [ 69.68 КБ | Просмотров: 19899 ]


Это же указано и в ГОСТе:

Вложение:
r_struct_gost.PNG
r_struct_gost.PNG [ 27.84 КБ | Просмотров: 19899 ]


Тогда всё становится на свои места. Кстати, в этом случае имеется нюанс. Напомню, что, вроде бы, структуры могут составляться из других, ранее определенных, структур. Выдержка из ГОСТа насчёт их алгебры:

Вложение:
r_connect.PNG
r_connect.PNG [ 119.4 КБ | Просмотров: 19899 ]


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

И с именами структур для переходов, вроде, тоже всё ясно, насчёт всяких конфликтов. В принципе, имена структур задаются как имена меток для goto в прогязыках, с учётом видимости имён на основе синтаксических блоков, в общем, всё также как и в упомянутом неоднократно Lua, в т.ч. и на самом верхнем уровне - имена стартовых структур каждой Р-схемы на чертеже. А имена структур на других чертежах неважны, на них переход через структуризатор невозможен (надеюсь), только всё в рамках одного чертежа, всё остальное - через вызов функций/процедур.

И тогда, уже добью свою идею по поводу циклов. Напомню, что исходя из семантики Р-схем и того, что обратные дуги в циклах даже стандартная "фича", то я нахожу, что в качестве универсальной формы алгоритмических циклов очень хорошо подходит модель от Питона, его циклы while-else и for-else. Выдержка из документации:

Вложение:
r_p_while.PNG
r_p_while.PNG [ 16.29 КБ | Просмотров: 19899 ]


Т.е. если указано "else", то эта часть выполняется после цикла, за исключением, если цикл был прерван через break. То же самое и для "For". Пример эмуляции for-else на Lua:

Вложение:
lua_for_else.PNG
lua_for_else.PNG [ 12.43 КБ | Просмотров: 19899 ]


Тогда универсальный Р-цикл можно задать так:
Код:
  [FOR-условия]
$==================$
! [после итерации] !
!                  !
! условие          !
!----------------->!
! оператор         !
!                  !
! условие          !
!----------------->!
! оператор         !
!                  !
! условие          !
!<-----------------!
! оператор         !
!                  !
! условие          !
!<-----------------!
! оператор         !
!                  !
!                  !
!<-----------------!
  оператор         

Если указаны декларации для спецдуги - цикл "for". Обратные (необязательные) дуги - "break", обратная дуга без предиката -- else-часть цикла. Если срабатывают break-дуги, то else-дуга не выполняется. Причём для "не-for" цикла не выдавать ошибку, если нет работающих ни прямых, ни обратных дуг, т.е. выполнили "else" и поехали дальше. А структуризаторы работают так: переход на начало структуры-цикла - continue, на конец - break, причём else-часть выполняется в конце, в отличие от срабатывания break-дуг. А механизм "redo", о котором говорилось ранее, при необходимости реализовывать "вручную", чтобы, всё-таки, не было и без этого усложнений и путаниц насчёт "for".

И для обычной структуры я, всё-таки, ввёл бы такой механизм её исполнения:

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


Это заключение на основе "официального" рисунка:

Вложение:
r_back_struct.PNG
r_back_struct.PNG [ 12.13 КБ | Просмотров: 19899 ]


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

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

Вложение:
r_dsl.PNG
r_dsl.PNG [ 12.49 КБ | Просмотров: 19899 ]


А саму Р-IDE лично я вижу на принципах того же эмакса, или вима, JEdit, Sublime, с простой и удобной организацией среды, с простым управлением проектов и т.д. Подкрепить бы ещё каким-нибудь функционалом вида Fossil, т.е. контроль версий кода, но в отличие от других Git-ов и пр., здесь полноценная распределённость, не только для кода, но и для багтрекера и wiki.
Короче говоря, надеюсь, что направление мыслей представляется понятным...

Собственно, к чему я веду. Во-первых, понять, есть ли потребность у общества в таком Р-конструировании, есть ли конкретные идеи и пожелания.
А во-вторых, хотелось бы понять, очередной ли это велосипед? Здесь на форуме есть обсуждения каких-то структурных и семантических редакторов и др., м.б. кто-то укажет, что всё уже изобретено ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Четверг, 20 Сентябрь, 2012 19:31 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Kemet писал(а):
PSV100 писал(а):
Как раз речь, в основном, об РТК-микро, где, кстати, сказано, что нет параллельного соединения структур (именно в микро)

Параллельные соединения в РТК-микро есть


Вот я и говорю, что у Вас устаревшая версия. Видимо, чтобы упростить "микро" ..., обновляйтесь :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Пятница, 21 Сентябрь, 2012 10:18 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
PSV100 писал(а):
...
Собственно, к чему я веду. Во-первых, понять, есть ли потребность у общества в таком Р-конструировании, есть ли конкретные идеи и пожелания.
А во-вторых, хотелось бы понять, очередной ли это велосипед? Здесь на форуме есть обсуждения каких-то структурных и семантических редакторов и др., м.б. кто-то укажет, что всё уже изобретено ?
Да есть потребность, конечно... только у кого в чём... :wink:

По велосипедам - вот если будет профессиональный ответ на это: viewtopic.php?p=74873#p74873 - так делать или не так (хотя бы от разработчиков семредактора) - то будет ясно, что уже изобретено (ими), что изобретается, а что ещё предстоит (и какие здесь м.б. проблемы)...

В моём понимании повторять Р-среды буквально (с точностью до единой нотации) может, и не стоит. А вот взять себе на заметку интеграцию и поддержку работы оргсистемы в целом (как было, судя по всему, в РТК-Микро) - обязательно. Тем более, что на это нацеливает современный опыт не только Усова и его коллег - но, очевидно, и "Олимпстроя Её Величества", скажем, как утверждается здесь... :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Пятница, 21 Сентябрь, 2012 19:31 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Владислав Жаринов писал(а):
По велосипедам - вот если будет профессиональный ответ на это: viewtopic.php?p=74873#p74873 - так делать или не так (хотя бы от разработчиков семредактора) - то будет ясно, что уже изобретено (ими), что изобретается, а что ещё предстоит (и какие здесь м.б. проблемы)...
...
А вот взять себе на заметку интеграцию и поддержку работы оргсистемы в целом (как было, судя по всему, в РТК-Микро) - обязательно.
...

Я не в курсе, но думаю, что вряд ли все Ваши пожелания уже реализованы в обсуждаемых там семредакторах, особенно, учитывая потенциальную поддержку оргсистемы в целом. А в РТК, действительно, всё уже "было украдено до нас". Повторю рисунок с сайта фонда Глушкова, где можно понять направление проектирования: от "мысленных образов" до конкретной реализации, через спецификации и матмодели, и пр.:

Вложение:
r_fact.png
r_fact.png [ 104.22 КБ | Просмотров: 19863 ]


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

Цитата:
Технологический модуль. В Р-технологии это понятие является развитием известных понятий (структура, модуль, абстрактный тип данных, базы знаний) в направлении стандартизации понятия "интерфейс". Технологический модуль в Р-технологии (РТМ) - это элемент абстракции процесса программирования. Он состоит из трех частей:

Вложение:
116_290.gif
116_290.gif [ 9.68 КБ | Просмотров: 19863 ]

Цитата:
Интерфейсная часть РТМ - это то, что всегда видит специалист на экране дисплея или распечатке при обращении к РТМ.

Операционная часть РТМ определяет все допустимые действия специалиста в интерфейсной видимой части модуля, а также связь ее с информационной частью и другими модулями.


Вложение:
117_7C8.gif
117_7C8.gif [ 101.55 КБ | Просмотров: 19863 ]


Ещё пример из второй статьи:

Вложение:
r_chert.PNG
r_chert.PNG [ 151.24 КБ | Просмотров: 19863 ]


Цитата:
Имя чертежа - произвольная последовательность символов, имеющая в некоторых случаях краткий эквивалент или шифр.

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

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

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

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

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

Вложение:
126_3A58.gif
126_3A58.gif [ 13.62 КБ | Просмотров: 19863 ]

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

Технологический процесс. В Р-технологии он формируется на этапе технологической подготовки работ та РТМ, соответствующим образом запрограммированных. Этим достигается особая гибкость процесса конструкторской разработки в Р-технологии, обеспечивающая эффективную ее настройку на конкретные условия коллектива, планируемое повышение качества программных средств и производительности труда программистов.

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

Вложение:
128_1558.gif
128_1558.gif [ 6 КБ | Просмотров: 19863 ]

Цитата:
где СА - системный анализ, МП - модельное проектирование, Р - собственно работа, Д - документирование работы, АНАЛИЗ - итерационный процесс улучшения выполненной работы.

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

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

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

Этап документирования в традиционном его понимании отсутствует в Р-технологии, ибо комплект чертежей программного проекта по ГОСТ 19.005-85 (ISO 8631Н) полностью заменяет документ "Описание программы" по БСПД. Эксплуатационная же документация проекта (инструкция для пользователя, оператора и др.) получается не изготовлением заново, как обычно, а редактированием и автоматизированной генерацией из поля спецификаций соответствующего комплекта чертежей. Объем ее меньше традиционного, так как содержит только основные, самые необходимые для эксплуатации системы сведения, а за остальными пользователя отсылают к соответствующему комплекту чертежей проектной документации. Проектная и эксплуатационная документация создается по унифицированным технологическим операциям, содержащим соответствующие шаблоны и трафареты, что облегчает ее понимаемость и усваиваемость.

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

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

Использование программ по Р-технологии осуществляется независимо - от тех, кто их разрабатывал, и от тех, кто их производил. Пользователь программной системы, разработанной по Р-технологии, Может по комплекту документации поставки разобраться как угодно глубоко в принципах работы системы и по опыту ее использования самостоятельно ее модифицировать или дать задание на проведение таких модификаций службой сопровождения или производства.

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

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

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


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

Как видно, только вот в последние времена в отрасли начали потихоньку приближаться к РТК, древних лет. Например, первичные "багтрекалки" постепенно дополнились системами ведения документов (wiki), всё больше напрягаются в интеграции с системами контроля версий кода, и сейчас всё больше и больше стараются реализовывать функционал именно ведения проектов, со своими "сетевыми графиками" и ПМ, включая поддержку обслуживания конечных пользователей (хотя бы баги от них собирать). Но проблема современного зоопарка технологий, как и опенсорсных, так и мегакоммерческих - толком всё не наинтегрируешь, везде костыль на костыле. А РТК идёт ещё дальше - всё предприятие информационно впихивается в одну среду, т.е. от Р-Visual Studio/P-Eclipse/Р-нотепад до Р-1С/P-SAP R3/P-Axapta и пр. по вкусу, не исключены и Р-AutoCAD-ы и т.п. (если бы не 91-й ...). Мечта...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Пятница, 21 Сентябрь, 2012 20:22 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Владислав Жаринов писал(а):
В моём понимании повторять Р-среды буквально (с точностью до единой нотации) может, и не стоит...


В принципе, Р-нотация одна, правила построения схем должны быть управляемы под потребности. А как реализовать ..., фактически, я не зря упомянул org-mode, в эмаксе есть наработки для создания и ведения структурированных документов, с логической разметкой, с визуальным оформлением (а-ля вики), поддержка таблиц и т.п., включая картинки и диаграммы. Не хватает таких вот Р-схем. И нужен какой-нибудь эмакс, простой и лёгкий в работе, в т.ч. с которым могли бы работать и непрограммисты (и есть идеи как организовать такой "эмакс"). К тому же этот "эмакс" должен иметь возможность работать как сервер, как в реальном эмаксе, или JEdit, что даст возможность подключаться к нему из вне, хоть вэб-портал организовывай, это тоже востребовано, и броузерные технологии потихоньку подтягиваются до вменяемого уровня (как раз недавно ACE Editor зарелизился), но десктоп вряд ли когда-то заменят. Кстати, повторюсь, что потенциал иметь Р-схемы в псевдографике будет актуален ещё долго, ведь сейчас, если говорить об единой универсальной кроссплатформленности, включая и Ваши мечты о гаджетах с мобилками, то это только "консоль", т.е. текстовый режим. Разработка под каждую платформу, фактически, это каждая отдельная разработка, в плане интерфейса и организации управления средой (да и не везде один и тот же язык для содержательного алгоритмического ядра подойдёт, даже С/С++, не говоря уже об используемых компонентах, тех же БД).

Реализовать полный аналог РТК сейчас может позволить себе только какой-нибудь гугл. Но ему Р-схемы вряд ли нужны, хотя свой Blockly лепит для реального применения, для создания расширений обычными пользователями в своих сервисах. Тут хотя бы сотворить базовый редактор, благо сейчас наконец-то появляются здравые идеи по реализации проектов, как тот же Fossil, который обеспечивает распределенность для всего своего контента и работает как тот же эмакс-сервер, можно коннетиться из комстроки, из броузера ходить, или хочешь пиши себе свой плагин для чего-то. Или сейчас вокруг CLang пытаются тоже реализовать сервер для управления С/С++-кодом, хочешь из эмакса делай компиляцию или автокомплит, хочешь в семредакторе подсветку ошибок делай. Короче, подумать над современным наколенным РТК потенциал есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Пятница, 21 Сентябрь, 2012 20:36 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Мечта мечтой, а релиз по расписанию... :)
Да, тут видно, что концепция в целом отвечает системному подходу. Ряд вещей просто можно считать его конкретизацией... :) Только я бы сказал, что Р-подход не идёт дальше - а возвращается к реальности - что на "зоопарке" действительно облегчить труд не получается...

Кстати, обратите внимание, что у меня уже не говорится о чертежах как основе всего. Это не дань "структурным скобкам" - а понимание того же, что сказано здесь:
usr345 в viewtopic.php?p=74858#p74858 писал(а):
...
Вообще, моя идея такая: проект должен содержать метаданные, включающие в себя описание решаемой задачи и структур данных, которые будут использоваться. С последовательной декомпозицией на подзадачи. У всех проектов, с которыми я работал логика настолько проста, что там не нужен ДРАКОН. Работа кода понятна после прочтения задачи и последовательности преобразования структур данных.

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

Что тогда в основе? Как универсальная структура - синт-дерево документа, где структуры входящих программ есть поддеревья. А т.к. читать дерево достаточно сложно - то делаем от него вьюшки основные/производные. Основные подчиняются Кауфману/Вирту, производные - определению, что в основном материале есть неявного, требующего раскрытия.
В частности, схемы типов м.б. основными и производными в разных вариантах.

По основному комплекту структур, в частности, генерится текст (код). Понятно, что не по одним маршрутным (дракон-схемам) - тут и схемы объявлений, и "спецификация структуры", как "автоматчики" говорят, и модульная. Но минимально, как нам теория говорит - синт-дерево.
Вот в семредакторе оно лежит в основе проекта. И должно показываться. Ряд других структур (прежде всего производных) хотят реализовать. А во всём остальном - да, до Р-КУБа далеко... пока... :)

Ну и текст со скобками как раз можно реализовать облегчённо - это, конечно, тоже имелось в виду...
И ещё раз, что важно - главное это подход, когда базовый редактор содержит средства для поддержки "проектного производства" - т.е. в частности разработки такого же редактора... :) Тогда не только какой-нибудь гугл может его реализовать... что пример Усова и показывает...

А нотация в принципе одна в том смысле, что графы общего вида... вершины да связи... :) а дальше всё специализируется по графике вершин/дуг и правилам компоновки...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Понедельник, 24 Сентябрь, 2012 17:18 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Владислав Жаринов писал(а):
Кстати, обратите внимание, что у меня уже не говорится о чертежах как основе всего. Это не дань "структурным скобкам" - а понимание того же, что сказано здесь:
usr345 писал(а):
...
Вообще, моя идея такая: проект должен содержать метаданные, включающие в себя описание решаемой задачи и структур данных, которые будут использоваться. С последовательной декомпозицией на подзадачи. У всех проектов, с которыми я работал логика настолько проста, что там не нужен ДРАКОН. Работа кода понятна после прочтения задачи и последовательности преобразования структур данных.

А генерацию кода из ДРАКОН схемы, где программный код вписан в блоки я считаю ложной ветвью развития, т.к. на такой схеме все равно не видно преобразования структур данных. Они будут понятны с первого взгляда только для очень простых программ. А так их ценность ненамного выше псевдокода.
...

- что и Прохоренко и Лаптев подтверждают...

Это частный случай. А как представлять проект, где, скажем, одни полиморфные функции над абстрактными данными? Но с ключевой идеей согласен - полная и ясная постановка задачи может облегчить понимание кода (или как его реализовать), или позволит избавиться от необходимости разбирать чужой код. И я тоже не вижу потребности в сплошном графическом программировании, та же Р-технология заявлена именно как предметно-ориентированное решение (а нужда у каждого своя - аналог UML, замена псевдокода или его "стандартизация", визуализация алгоритмически сложных случаев, кто-то прикипел к черчению и т.д.). И в Р-схемах, в частности, всё-таки, именно программный код вписывается удачно, как говорит Kemet - "рвано", что, действительно, в ряде случаев может дать более наглядную картинку, чем обычный линейный текст.

Кстати, техника Р-модулей привлекательна в том плане, что всё сведено именно к понятию модуля, со своим интерфейсом, зависимостями и т.д. Имхо, ничто не мешает им соседствовать с другими модулями, т.е. с различными исходниками на текстовых языках, документацией и пр. При этом все ресурсы можно подчинить одним правилам их ведения, а соответственно и применять одни и те же инструменты (управление проектом). К тому же, понравился подход, как оформлять (или как определить место в системе) "мысленные образы", спецификации, матмодели и пр. Сейчас, лично у меня, такой "системности" нет, к примеру, что-то указывается в комментариях в начале исходника, что-то в виде отдельных документов, что-то на бумажке в папочках, что-то уже в мусарнике, что-то в голове. И даже сами идеи интерфейсного оформления вполне практичны и сегодня (например, раскрывать различные понятия в поле абстракций чертежа), но над этим ещё нужно думать, сейчас появляются неплохие концепты, как Light Table, к примеру (там неплохая реализация "Code Bubbles", "кусочков" кода, да и "табличность" подхода соответствует духу квадратизма в Р-схемах, а также классные идеи насчёт отладки, хотя такие выкрутасы позволит не каждая программная платформа).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 26 Сентябрь, 2012 21:37 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
ЧТО СКАЗАЛ КОВАЛЕВ, СОТРУДНИК ИГОРЯ ВЕЛЬБИЦКОГО

Я случайно наткнулся на мое сообщение 2008 года. Ниже оно процитировано в той части, где речь идет об Р-технологии.

По сути здесь нет новых мыслей. Прошу рассматривать эту цитату как мелкий штрих в истории Р-технологии.

Цитата:
Третья мысль Ивана Кузьмицкого

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

Ответ Паронджанова на третью мысль Кузьмицкого

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

В отличие от нас, Вы предлагаете реализовать не только прямое, но и обратное преобразование. Это высший шик (хотя кое-кто может посчитать это «архитектурным излишеством. Но я так не думаю). Я хорошо помню, что мне рассказывал Ковалев, сотрудник Игоря Вельбицкого — автора Р-технологии. Ковалев сказал, что когда они сделали и прямое, и обратное преобразование, это произвело на сторонних программистов ошеломляющее впечатление. (Прошу не рассматривать мои слова как высказывание в поддержку Р-технологии).

Думаю, если Вы, уважаемый Иван, сумеете реализовать «туда-сюда» преобразование, это будет просто здорово! Восхищаюсь Вашим дерзким предложением!

Конец ответов Паронджанова на предложения Кузьмицкого
viewtopic.php?p=13873#p13873


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Четверг, 27 Сентябрь, 2012 14:06 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
PSV100 писал(а):
...
Это частный случай. А как представлять проект, где, скажем, одни полиморфные функции над абстрактными данными?
...
Очевидно, через адекватные схемы зависимостей... впрочем, мы это уже обсуждали: viewtopic.php?p=75075#p75075.
PSV100 писал(а):
...
Но с ключевой идеей согласен - полная и ясная постановка задачи может облегчить понимание кода (или как его реализовать), или позволит избавиться от необходимости разбирать чужой код.
...
Кстати, техника Р-модулей привлекательна в том плане, что всё сведено именно к понятию модуля, со своим интерфейсом, зависимостями и т.д. Имхо, ничто не мешает им соседствовать с другими модулями, т.е. с различными исходниками на текстовых языках, документацией и пр. При этом все ресурсы можно подчинить одним правилам их ведения, а соответственно и применять одни и те же инструменты (управление проектом). К тому же, понравился подход, как оформлять (или как определить место в системе) "мысленные образы", спецификации, матмодели и пр.
...
На мой взгляд, ключевая идея скорее в том, чтобы принятые в среде требования к организации и ведению моделей позволяли бы оперативно развивать и постановку, и всё остальное...
Ну и техника (точнее, как раз организация моделей) в семредакторе, допустим, аналогичная - Лаптев говорил... также обсуждалось более детально где-то отсюда: viewtopic.php?p=65079#p65079.

Отсюда и определение функций среды, как здесь: viewtopic.php?p=75096#p75096.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Суббота, 10 Ноябрь, 2012 20:23 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Вот, кстати, ещё к вопросу о "зоопарке": http://issuu.com/cta-mag/docs/20104020? ... =%23222222 ...
Понятно, что статья писалась прежде всего ради последних абзацев :wink: - но многое узнаваемо и в других разработках... :) И подтверждает мысль, что если сами Р-схемы, может, и не до конца были реализованы системно - то положенный в основу подход правилен. Нужно находить места разным элементам содержания - для чего вначале определиться с составом этих элементов...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 26 Декабрь, 2012 08:07 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 34
PSV100 писал(а):
Собственно, у меня были размышления над тем, как можно организовать циклы. Для меня неясно, будут ли переходы на спецдугу (*, #) срабатывать как continue и break. А также я пытался заложить возможность для операции "redo", пример отсюда:
Вложение:
redo_cycle.PNG
redo_cycle.PNG [ 5.21 КБ | Просмотров: 19313 ]

Как-то упустил.
Для подобных конструкций совершенно не нужны именованные вершины, структуризаторы, и даже goto - они выражаются через вложенный цикл:
Код:
$==========================================$
!                                          !
! x=1,5                                    !
!------->$-------------------------------->$
         ! print(x .. ' + 1 = ?')          !
         ! local y = tonumber(io.read'*l') !
         !                                 !
         ! y ~= x + 1                      !
         !<--------------------------------!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ДРАКОН vs Р-схемы
СообщениеДобавлено: Среда, 26 Декабрь, 2012 09:45 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
PSV100 в viewtopic.php?p=74304#p74304 писал(а):
...
Я с трудом нашёл лишь один случай свидетельств тех лет, а оказывается, что здесь, на месте, не отходя от кассы, имеется "человек-легенда" :)
...

А случай-то весьма существенный...


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

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


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

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


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

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