Cтраница 3
В приведенных примерах подключение автомата в сложные проекты предполагается путем передачи через порты сигналов. Используются спецификации портов input и output. Кроме того, AHDL позволяет непосредственно экспортировать и импортировать состояния автоматов. Тогда один из портов модуля-источника, представляющего управляющий автомат, специфицируется как machine output, а порт модуля-приемника - как machine input. Пример иерархического проекта, один из модулей которого экспортирует, а другой импортирует состояние автомата, рассмотрен далее. [31]
Предварительные совещания, работы комиссий, подготавливающие доклады, неоднократные прения в палате влекут за собой значительную трату времени. Каждый член хочет принять участие в суждениях, выставить себя на вид, показать свою деятельность избирателям. Отсюда бесконечные и бесполезные речи, составляющие язву собраний. Еще хуже многочисленные поправки, которые вносятся палатами в представляемые им проекты. Обыкновенно эти перемены производятся людьми малознакомыми с техническими приемами и даже с законодательным слогом, нередко на скорую руку, а потому неясно и неудовлетворительно. Иногда после долгих прений, в которых высказываются самые разноречащие мысли, собрание принимает случайную редакцию, [ с. История английского парламента представляет не один пример тщательно выработанного проекта, совершенно искаженного многочисленными и случайными поправками, которые заставляли министров брать свои предложения назад. К этому присоединяются столкновения партий, обыкновенно поглощающие внимание палат гораздо более, нежели самое дело. Сколько времени убивается на беспрерывные запросы, на систематическую критику, на бесплодные ответы... Как скоро вопрос касается отношения партий, он возбуждает всеобщий и горячий интерес, оратор за оратором требуют очереди, и речам нет конца. Когда же представляется на обсуждение вопрос чисто практический, имеющий существенную важность, но не представляющий пищи для борьбы партий и для красноречия, он проходит незаметно, среди всеобщего невнимания и решается наскоро и случайно. В английском парламенте к концу заседаний накопляется обыкновенно множество весьма серьезных дел, которые кое-как сбываются с рук. [32]
При строгом подходе, напротив, проектирование начинается с очень простых построений, допускающих существование независимых аргументов проверки правильности, а процесс кодирования программы является по существу развитием ее проекта. Проект программы обеспечивает устойчивость процесса кодирования, хотя при выполнении собственно кодирования и могут допускаться ошибки. Первоосновой строгого подхода является процесс человеческого мышления. Поэтому невозможно описать, каким образом возникает проект программы, хотя значение этого процесса, несомненно, велико. Существует несколько путей реализации строгого подхода при проектировании программ, к которым часто прибегают в практике программирования. Наиболее известные из них базируются на теории автоматов, формальных грамматиках и рекурсивных функциях. Вначале мы это сделаем на примере проекта программы определения сдачи, а затем - при построении проекта программы для игры в крестики-нолики. [33]