Автор Тема: Сириус - обероноподобный язык и компилятор  (Прочитано 77547 раз)

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
если нужна проверка , то достаточно вставить IF  блок сразу  после цикла - кроме того, такой блок неизбежен если требуется проверить условие чуть отличающееся (но являющееся комбинацией  параметров в условии цикла )...
Так о том и речь - ветка ELSE выполнится только один раз и только если условие цикла станет ложным или если оно изначально ложно.
И вот тот код, т.е. условие, которое мы обязательно проверяем после цикла мы и поднимаем в ветку ELSE, чтобы вся конструкция стала единым блоком. Конечно, с точки зрения привычного представления это синтаксический бесполезный сахар, но с точки зрения структурного представления это целостная управляющая конструкция

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
если нужна проверка , то достаточно вставить IF  блок сразу  после цикла - кроме того, такой блок неизбежен если требуется проверить условие чуть отличающееся (но являющееся комбинацией  параметров в условии цикла )...
Так о том и речь - ветка ELSE выполнится только один раз и только если условие цикла станет ложным или если оно изначально ложно.
И вот тот код, т.е. условие, которое мы обязательно проверяем после цикла мы и поднимаем в ветку ELSE, чтобы вся конструкция стала единым блоком. Конечно, с точки зрения привычного представления это синтаксический бесполезный сахар, но с точки зрения структурного представления это целостная управляющая конструкция
Это идея хорошая, хоть и старая. Насколько я понимаю, это один из элементов цикла-паука, который, в свою очередь, является более структурным вариантом цикла нежели тот же цикл Дейкстры например.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Идея, может быть и старая, но откровенно дурацкая. Не от большого ума.
Достаточно обратить внимание на то, что конец этой области может быть весьма размыт.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Цитата: Википедия
когда по каким-то причинам цикл начал выполняться нештатно
Причина одна, и она находится вне кода, поэтому наличие out-веток проблему явно не решит.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Упоминание заимствований из графного Паскаля - убедило меня  еще более в сильном влиянии предметной области на Сириус.
Не графский, а графический ) Там, кстати, не только паскаль был, но и графический ассемблер.
Вот пример
$===========================================$
!SB,#10,R2                                  !
!-------->$=================================$
 CLR R0   !LT,R1,#10 GT,A(R0),A(R1),B       !
 MOV #1,R1!-------->$--------------->$----->!
                    !MOVB A(R0), R3  !INC R0
                    !MOVB A(R1),A(R0)!INC R1
                    !MOVB R3,A(R1)   !
                    !                !
                    !--------------->!

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Это идея хорошая, хоть и старая. Насколько я понимаю, это один из элементов цикла-паука, который, в свою очередь, является более структурным вариантом цикла нежели тот же цикл Дейкстры например.
До предела упрощенный, мы пытались реализовать паука как
WHILE
  condition DO
  |condition DO
OUT
  condition DO
  condition DO
ELSE

END;
но не пошло психологически.
В результате остался одна безусловная ветвь выхода.
Но тут вот какое дело - такая конструкция хорошо ложится в мозг, потому что более соответствует идее структурного подхода, но без неё потом становится как-то не комфортно, особенно если несколько лет его используешь

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Цитата: Википедия
когда по каким-то причинам цикл начал выполняться нештатно
Причина одна, и она находится вне кода, поэтому наличие out-веток проблему явно не решит.
Причин, однако две - это -ошибка проектирования цикла и побочные эффекты, что и позволяет отследить ветка альтернативного завершения.
Цикл-паук, безусловно красивая и правильная вещь, но трудно программируемая без соотвествующих навыков

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Но тут вот какое дело - такая конструкция хорошо ложится в мозг, потому что более соответствует идее структурного подхода, но без неё потом становится как-то не комфортно, особенно если несколько лет его используешь

Кстати, а что сподвигло на переход с Сириуса на ActiveOberon (я правильно понял)? Похоже на "шило на мыло".

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Причин, однако две - это -ошибка проектирования цикла
Я бы назвал это неправильным подходом к реализации цикла. Но в общем, мы тут совпадаем во мнениях.
...и побочные эффекты, что и позволяет отследить ветка альтернативного завершения.
"Если третье лезвие бреет лучше, то зачем нужны предыдущие два?" Или другими словами: "Зачем нужно было писать неправильно в первой секции, если мы смогли всё сделать правильно во второй?" И раз удалось обнаружить какие-то побочные эффекты во второй секции, то это же самое можно было бы выполнить и в первой секции, правильно организовав условие продолжения. Таким образом, вторая причина - это частный случай первой.

С методической точки зрения, возможно, паук и полезен, но с практической - маловероятно. Тот, кто допускает ошибки в первой секции, будет допускать их и во второй.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Кстати, а что сподвигло на переход с Сириуса на ActiveOberon (я правильно понял)? Похоже на "шило на мыло".
Не совсем. Ситуация была и смешная и глупая. Просто на определенном этапе пертурбаций в стране, нас тоже разделили, причем разделительный баланс прошел как по людям, так и по разработкам. В результате компилятор Сириуса оказался у нас, а часть бакэндов у других. Дурацкая ситуация, но антиликтуальная собственность, панимаиш, мать их. На предложения бывшие камрады не реагировали, на вопросы нафига им гайки без болтов не отвечали. А тут как раз возникла идея, да и необходимость, иметь своё многозадачное компактное ядро, и мне в руки попала А2, а так как бакэнды нужны были всё равно, то решили использовать ядро А2 и компилятор PACO, и уже начали писать бакэнды.
Но, в итоге, решили портировать Сириус под А2. Поэтому часть фрейморка портируем на Активный Оберон.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Во, нашел в инете про Р-схемы: Вельбицкий. Визуальное программирование графическими структурами

Описана разработанная в СССР технология программирования графическими структурами (Р-схемами), определяющая промышленную концепцию единого многоконтурного и многоуровневого конструирования алгоритмов, программ, данных и процессов. Ртехнология основывается на вновь введенных понятиях алгебры конструирования графических структур, чертежа программы, технологического модуля, универсального технологического цикла, электронной безбумажной схемы организации коллектива специалистов и др. Приводятся примеры Р-графической записи программ в традиционных языках программирования, а также ПРОЛОГ- программ, сетей Петри, SDL- диаграмм, таблиц решений, сетевых графиков и т.д. Описан стандарт ГОСТ 19.00585 на предлагаемую графическую форму записи, который рассмотрен международным комитетом по стандартизации ISO и одобрен в качестве стандарта ISO 8631Н. Приведены сведения о реализации Ртехнологии на ЭВМ широкого применения типа ВМ 360/370, PDP 11, персональных ЭВМ типа РС ХТ/АТ, LSI11 и для Р- графических языков Си, Модула-2, Паскаль, Фортран, Ассемблер и др.

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Да туфта это. Умерло давно. Не выжило.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Да туфта это. Умерло давно. Не выжило.
А как оно могло выжить, когда всё принудительно уничтожалось?
Помню уехал в отпуск (последний нормальный отпуск), возвращаюсь, выхожу на работу, мааать, что за ххххорёк, где всё оборудование, компы, и т.д., дак, годорят, это самое, приехали, сказали устарело, привезли писюки, воткнули в розетку и сказали радуйтесь, мы вам технику бывшего вероятного привезли. А нафига она была, такое барахло и за такие бабки, на тот период оно мало чем от остатков советского прома отличалось. А где исходники, проекты, где всё, руками разводят, мол сказали на новые стандарты переходим, импортные.
И так во многих областях было. С чего бы им выжить-то? Я не говорю, что оно дюже эффективное, мы сами всё с графического представления на линейный перевели, потому как и графических редакторов не стало и системы разработки пришлось новые использовать.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Да туфта это. Умерло давно. Не выжило.
А как оно могло выжить, когда всё принудительно уничтожалось?
Помню уехал в отпуск (последний нормальный отпуск), возвращаюсь, выхожу на работу, мааать, что за ххххорёк, где всё оборудование, компы, и т.д., дак, годорят, это самое, приехали, сказали устарело, привезли писюки, воткнули в розетку и сказали радуйтесь, мы вам технику бывшего вероятного привезли. А нафига она была, такое барахло и за такие бабки, на тот период оно мало чем от остатков советского прома отличалось. А где исходники, проекты, где всё, руками разводят, мол сказали на новые стандарты переходим, импортные.
И так во многих областях было. С чего бы им выжить-то? Я не говорю, что оно дюже эффективное, мы сами всё с графического представления на линейный перевели, потому как и графических редакторов не стало и системы разработки пришлось новые использовать.
Гм. У меня сложилось впечатление, что советская школа тяготеля к графическим или комбинированным языкам и средствам разработки. Тот же дракон, а теперь еще и вот это вот..
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Гм. У меня сложилось впечатление, что советская школа тяготеля к графическим или комбинированным языкам и средствам разработки. Тот же дракон, а теперь еще и вот это вот..
Ну тяготела это вряд-ли, но то, что такие подходы были и использовались не в лабораторных, а в промышленных условиях это факт.
Пытались ускорить ввод, сократить объем вводимых данных, унифицировать. Как результат - редакторы, в которых ключевые слова вводились одним нажатием, более того были редакторы, в которых вводились целые языковые конструкции, в которых были спецполя, по которым можно было перемещаться табулятором, редактировать, удалять/вставлять текущую секцию или всю конструкцию одним нажатием, что и повышало скорость ввода и исключало ошибки. Всё как в современных средствах разработки, не прошло и 20 лет )))