Cтраница 1
Главная программа на Лиспе имеет сравнительно тривиаль-ную форму: последовательность определений подпрограмм-функций, за которой следует последовательность вызовов этих функций с конкретными аргументами. Каждая подпрограмма-функция определяется отдельно. [1]
Главная программа просто определяет эту подпрограмму и затем вызывает ее для теста три раза с конкретными списковыми структурами. [2]
Главная программа транслируется Лисп-системой в один сдвоенный список. Сдвоенный список содержит в качестве элементов пары имя функции - список фактических параметров, взятые из главной программы. Имя функции - это обычно атом, а список параметров - обычная списковая структура Лиспа. Список параметров может содержать определения функций ( если именем функции является DEFINE) или списки данных, с которыми должны работать определяемые функции. Трансляция по существу тривиальна - транслируемые списки сканируются элемент за элементом и строится внутреннее представление списковых структур. Во время трансляции числа переводятся в двоичную форму, дескриптор помещается в отдельное слово. Единственная трудность связана с обработкой атомов. [3]
Главная программа начинается с вызова функции DEFINE, чтобы определить подпрограмму. Аргументами DEFINE являются ( 1) имя подпрограммы, REVERSE, ( 2) имя формального параметра, X, ( 3) имя локальной переменной, Y, и ( 4) метка инструкции, с которой начинается тело подпрограммы, REV. После завершения работы DEFINE управление передается инструкции с меткой МАШ. Этот переход нужен из-за того, что иначе управление было бы передано следующей по порядку инструкции, которая оказывается первой инструкцией в теле подпрограммы REVERSE. REVERSE после главной программы, исключив тем самым необходимость передачи управления для обхода тела подпрограммы. [4]
Простая модель монолитной системы. [5] |
Главная программа, которая вызывает требуемую служебную процедуру. [6]
Главная программа является обязательным компонентом любой программы. Это тот набор операторов, которому операционная система передает управление при запуске программы на исполнение. Главная программа должна быть единственной, иначе у операционной системы не будет возможности определить точку входа - место, с которого начинается исполнение всей программы. [7]
Главная программа не должна знать адресного пространства этих методов, поскольку его знают объекты, точно так же как они делают с полиморфными вызовами. [8]
Пример программы с обработкой прерывания от ввода-вывода. [9] |
Главная программа, выполняемая центральным процессором. [10]
Главная программа обеспечивает загрузку 16-разрядного слова в индексный регистр X и вызывает подпрограмму WCNT1S, с помощью которой осуществляется подсчет числа единиц, записанных в индексном регистре X. Подпрограмма WCNT1S разбивает содержимое этого регистра на 2 байт и вызывает подпрограмму BCNT1S для подсчета числа единиц в каждом байте. Эффективность использования подпрограмм очевидна, поскольку подпрограмму BCNT1S можно вызывать более одного раза и при этом каждый раз производить преобразование различных байтов. [11]
Подпрограмма обмена, использующая переменные параметры.| Подпрограмма обмена, использующая значащие параметры. [12] |
Главная программа на рис. 9.14 передает копии переменных подпрограмме, которые последняя непосредственно обрабатывает. Подпрограмма не имеет доступа к первоначальным переменным. [13]
Главная программа, в которой используются драйверы LINEIN и LINEOUT, приведена на рис. 10.17. Программа считывает входную строку, переставляет символы в обратном порядке и выдает строку на дисплей. Псевдокоманда ассемблера FCC ( Form Constant Characters) воспринимает строку символов как операнд и помещает значения символов в коде ASCII в последовательные байты памяти. Отметим, что форматы входных и выходных буферов совпадают, поэтому содержимое входного буфера, заполненного подпрограммой LINEIN, может быть выведено, если подпрограмме LINEOUT передан адрес второго слова буфера. [14]
Главная программа может выводить строку на - дисплей, вызывая программу STROUT с адресом строки, хранимым в регистре X. Программа STROUT разрешает прерывание, осуществляет вывод первого символа и возврат управления в главную программу, которая может продолжать работу. [15]