Cтраница 3
По структуре программы он близок к ассемблеру с разветвленным аппаратом макроопераций, имеет хорошо продуманную структуру данных. Однако использование рекурсии в IPL-V затруднено. Поэтому он может применяться при реализации неграмматических блоков модели. Другим недостатком языка IPL-V является зависимость качества программы от квалификации программиста и высокая сложность программ, затрудняющая обмен информацией между пользователями. LISP - язык высокого уровня, ориентированный на решение задач, связанных с обработкой списковых структур. Программа на этом языке состоит из произвольного числа обращений к LISP-функ-циям как стандартным ( встроенным), так и определенным самим пользователем. Основным достоинством языка LISP является наличие в нем рекурсий, широко используемых при реализации грамматических конструкций в блоках Анализатор, Коррелятор и Экстраполятор ситуационного управления. Кроме того, в числе стандартных функций имеется полный набор арифметических и логических операторов. [31]
Реализация блока ДСС связана с формированием структуры объекта управления, специфичной для каждой конкретной модели. Однако операторы образования, пополнения и изменения полученной структуры гари переходе от одной модели к другой не меняются. Формирование ситуаций в блоке Анализатор предполагает использование стандартных операторов эффективного поиска подходящих травил и их применения. Реализация блоков Коррелятор и Экстраполятор предполагает использование алгоритмов вхождения в классификатор, сформированный на этапе обучения, и проведения выводов на подмножестве правил корреляционной и трансформационной грамматик. Кроме того, реализация блока Экстраполятор связана с использованием вычислительных процедур, необходимых для пересчета характеристик объектов, перемещаемых на дискретной сети в результате принятого решения. Таким образом, в каждом блоке ситуационного управления можно выделить постоянную часть, не меняющуюся при переходе от одной конкретной модели к другой, и переменную - характеризующую данную модель. Поэтому эффективная реализация широкого класса ситуационных моделей управления возможна при использовании достаточно гибкой и универсальной системы программного обеспечения, обладающей способностью настраиваться на конкретную модель управления. [32]
Присваивание экземпляров функционального блока. [33] |
Входные переменные внутри блока доступны для записи. Это вызывает определенный соблазн для программиста. Так, например, входную переменную удобно применить в качестве счетчика итераций, если она как раз и отражает число нужных повторений. Поскольку при вызове экземпляра блока вводная переменная должна получить новое значение, ничего страшного на первый взгляд нет. Вызов экземпляра не обязан сопровождаться присваиванием значений всем формальным параметрам. Возможно, в какой-то момент вы решите, что входной параметр уже определен, и можно не задавать его повторно. В результате значение параметра будет равно тому значению, которое он имел при работе в роли локальной переменной, при предыдущем вызове экземпляра. Конечно, можно придумать много примеров, когда изменение значения входной переменной безопасно. Но все же использовать такой прием нужно исключительно обдуманно и осторожно. В общем случае при реализации блока входные переменные нужно рассматривать как константы. [34]