• СССР history cool_story Давным давно, еще в докомпьютерную эру (с двадцатых годов) применялись для изображения последовательных процессов или алгоритмов блок-схемы (flowcharts). На них отдельные элементарные (на данном уровне абстракции) шаги изображались прямоугольничками, последовательность шагов – стрелочками, а ветвления (проверки условий) ромбиками. В самом-самом начале, когда языков программирования еще не было, а программы непосредственно кодировались числовыми кодами или, в лучшем случае, писались в «содержательных обозначениях», как рекомендовал патриарх нашего ремесла Александр Львович Брудно, блок-схемы были важным подспорьем. В таковом качестве во время оно их и застандартизировали.

    Прошли десятилетия, то есть минули целые эпохи. А от программистов по-прежнему требовали чертить эти чертовы стрелочки и ромбики. Смысла в этом было аж никакого. Во-первых, теоретически доказано, что любой алгоритм, записанный на языке высокого уровня (на любом языке) имеет эквивалентное графическое представление в виде блок-схемы и почти наоборот, любая правильная блок-схема (фишка тут в слове «правильная») эквивалентна некоторому тексту на том или ином языке программирования. Но текст программы завсегда лучше блок-схемы, хотя бы потому, что последней можно только любоваться, а первый – это реальный кусок программы, который компилируется и выполняется на машине. Есть разница? Во-вторых, блок схема может показать только синхронный, строго последовательный процесс вычислений, а в жизни такое наблюдается разве что в небольших несложных программах. Реальные же системы – это не однопоточные алгоритмы, а целые искусственные миры, где множество населяющих их объектов-персонажей (как программных, так и аппаратных) взаимодействуют друг с другом, посылая в непредсказуемые моменты времени сигналы и возбуждая прерывания, и где множество потоков вычислений исполняются одновременно и ассинхронно, порой еще и на множестве процессоров и машин. Получается, что блок-схемами можно проиллюстрировать только маленькие кирпичики, но никак не всю систему, но зачем дополнительно иллюстрировать то, что и так внятно и понятно (с комментариями) записывается в текстовом виде?

    Казалось бы, не нужны, так не пользуйтесь. А действительно не нужны – любой программист, хоть разработчик, хоть представитель заказчика предпочтет посмотреть исходный текст программы, а не эти картинки. Непрограммисту они – тем более до лампочки. И только ГОСТу, в лице его полномочного представителя – нормоконтролера, они нужны. Дороги как произведения изобразительного искусства. Он их проверяет на соответствие требованием оформления – такая-то ширина линий, столько-то миллиметров длина стрелочки, такой-то отступ квадратика от ромбика... Смысл схемы контролеру совершенно недоступен. Можете себе представить, какая халтура там процветала? В нашей конторе (как и в сотнях и тысячах таких же контор по всему Союзу) сидели тетки-чертежницы и тушью на кальках рисовали никому не нужные стрелочки и ромбики. Зато безработицы не было! Уже Союз загибался, но в девяностом году, если не ошибаюсь, успели под занавес выпустить новый ГОСТ все на ту же тему рисования блок-схем. Какая-то навязчивая, неотвратимая мания. Ну да ладно...

    gorod.tomsk.ru

Replies (3)

  • @RainerGomes, Если не забуду покажу как программируют электростанции. Там именно блок схемы в чистом виде. :) Позволяет гораздо более наглядно проводить и создание и контроль работы программы. Да и изменение вносится на порядок быстрее.
  • @RainerGomes, про блок-схемы очень смешно
  • @RainerGomes, Поржал . флоукод ,лабвью и туева хуча скада систем в блоксхемах/UML — это блоксхема тоже кстатей.
    Вся эмбэд и скада среды состоят из блоксхем.
    И если мне дадут выбор — читать vhdl/verilog/ иной хдл или посмотреть его блок схему — я выберу блоксхему.
    ПЫСЫ: >такое наблюдается разве что в небольших несложных программах. Реальные же системы – это не однопоточные алгоритмы
    Ингибиторная сетка Петри в своём роде тоже блоксхема — а если мне кто-то скажет что есть что-то что лучше позволяет проэтировать как раз параллельные системы — я громко закрякаю от удивления.