Абстрактная машина

Рассмотрим реализацию таких процессов в современных САПР (в большинстве случаев выполняемых на Фортране). Процессы с малым временем жизни обычно реализуются с помощью вызовов подпрограмм, для которых вся информация должна быть передана в качестве аргументов (или, возможно, через COMMON-блок, заполненный данными до вызова подпрограммы). Процессы с большим временем жизни могут быть представлены в виде последовательности обращений к пакетам подпрограмм. Примерами реализации таких процессов могут служить графические пакеты, разработанные на базе систем GKS или GSPS. Значения переменных в COMMON-блоке такого пакета характеризуют фактическое состояние соответствующего процесса. Для правильной работы такого пакета важно, чтобы все эти переменные использовались только этим пакетом. Отметим, что в двух рассмотренных выше примерах COMMON-блок выполняет различные функции: в первом случае он представляет собой просто сокращенную запись аргументов, во втором — характеризует состояние процесса. Отсутствие ясного представления о различии этих функций неизбежно вызывает трудности (а одним из недостатков Фортрана является то, что он способствует возникновению путаницы). Однако в действительности ситуация оказывается еще более сложной. Довольно часто одновременно существует несколько процессов одного и того же типа. Типичным примером может служить использование в одной программе нескольких графических дисплеев для различных целей: часть из них используется для крупных планов, диаграмм связи с пользователем, другая часть — для чертежей проекта и общих видов. Очевидно, что каждый раз, когда программная машина должна продолжить такой процесс, необходимо выяснить, какой конкретно процесс в этот момент должен быть продолжен. В то время как в первом случае (существование только одного процесса) нет явной необходимости различать этот процесс и машину, она становится очевидной, когда машина допускает функционирование нескольких параллельных процессов.

Releated Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.