Автор Тема: ещё про цикл дейкстры  (Прочитано 96155 раз)

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: ещё про цикл дейкстры
« Ответ #180 : Август 23, 2012, 11:11:01 am »
...
На асме под мк пишут относительно редко. Обычно сейчас все же пишут на Си. Кроме того, соблюдать согласованность придуманной схемы на Драконе с рукописным кодом на асме будет тяжко.
В принципе да.. в том же ГРАФИТ-ФЛОКСЕ есть кодогенератор...
И Дмитрий_ВБ в своей среде ЯВУ-программы представляет. Хотя в её обсуждении один разработчик, как можно понять из "визуальных требований" здесь, как раз предлагал и асм-запись употреблять... и в ГРАФКОНТе на асме можно писать, как и смотреть сгенерённый код... отсюда вроде как следует...

...
Так что основных причин две:
1) простота алгоритмов + малый размер кодовой базы (поэтому Дракон в принципе применим)
2) широкое применение графических схем в не програмных частях проекта (схемотехника) => банальная привычка к ним + будет экономия времени из за отсутствия необходимости переключения мозга с графического на текстовый "режим" восприятия и обработки.
Ага... а то вот такими тезисами обосновывается вроде как неограниченная применимость... и приходится показывать, что, во-первых, ограниченная, а во-вторых, в любом случае не как "вещи в себе" - а в связи с другими аспектами содержания проекта (допустим, когда процедуры маленькие - то, как замечают Лаптев и Прохоренко, не их схемы в первую очередь нужны - а схемы зависимостей между ними)...

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

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

DIzer

  • Гость
Re: ещё про цикл дейкстры
« Ответ #181 : Август 23, 2012, 12:35:49 pm »

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

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: ещё про цикл дейкстры
« Ответ #182 : Август 24, 2012, 02:22:55 am »
Таки скачал я этот seL4 http://ertos.nicta.com.au/software/seL4/home.pyl
Люббопытно стало... Но что там в 60 метров архива уместилось??? Вот тебе и 8700 строк микроядра )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

DIzer

  • Гость
Re: ещё про цикл дейкстры
« Ответ #183 : Август 24, 2012, 04:38:10 am »
Вот и  скажите  :D

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: ещё про цикл дейкстры
« Ответ #184 : Ноябрь 29, 2018, 07:11:05 am »
Хотелось бы зафиксировать одно наблюдение про цикл Дейкстры.
Оно, конечно, абсолютно очевидное, часто всплывает в примерах, но я не припомню, чтобы кто-то его четко сформулировал.
А именно: цикл Дейкстры всегда можно тупо преобразовать в обычный цикл без exit-ов и break-ов.
Нужно собрать в заголовке все предохранители.

do
  P1 → S1,
  P2 → S2,
   …
  Pn → Sn
od

=>

while (P1 or P2 ... or Pn) do
  if P1 then
    S1;
  else if P2 then
    S2
    ...
  else if Pn then
    Sn
  end if
end while

Неэффективно, да.
Но полезно для рассуждений.




Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: ещё про цикл дейкстры
« Ответ #185 : Январь 25, 2019, 05:24:49 pm »
Чтобы было эффективно, можно воспользоваться флагом. Получится брейкозаменитель.

f = P1 or P2 ... or Pn;

while (f) do
  if P1 then
    S1;
  else if P2 then
    S2
    ...
  else if Pn then
    Sn
  else
    f = false;

  end if
end while

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: ещё про цикл дейкстры
« Ответ #186 : Январь 26, 2019, 06:04:21 am »
Это крайне неудачный вариант, который не прочищает, а засирает мозги.
Не все сразу сообразят, что цикл выполнится лишний раз. Вреда от этого не будет, это не ошибка,  но на хер такие циклы.