Cтраница 2
![]() |
Функция переходов для SECD-машины аппликативного порядка. [16] |
Для данного текущего состояния ( 5, Е, С, D) следующее состояние определяется управляющей строкой С. Существует два случая, которые нужно рассмотреть, причем первый из них имеет несколько вариантов. [17]
Величина, связанная с X в текущем контексте, проталкивается в стек S, и объект X удаляется из управляющей строки С. В случае если X - это константа, величиной X является сама эта константа. [18]
Спецификация преобразования помещается в управляющей строке формата scanf для того, чтобы показать, что будет вводиться целое число, и в управляющей строке формата printf, чтобы показать, что будет выводиться целое число. [19]
Набор Dumps состоит из четырех элементных кортежей, первые три компонента каждого из которых являются членами множества стеков Stc, множества контекстов Епи и множества управляющих строк Cst соответственно. Множества Stc и Епи определены через другое множество Clos-множество замыканий. [20]
Символ Alt-255 вводится последовательным нажатием клавиш ( Т), [ Г) и QD на правой части клавиатуры при нажатой клавише ( Alt), на экране он изображается перевернутым вопросительным знаком с. В управляющей строке символ Alt-255 должен находиться в первой колонке. [21]
В данном случае printf имеет два аргумента, Sum is % d n и sum. Первый аргумент - управляющая строка, определяет формат вывода. Он содержит несколько символов, которые будут отображены, и спецификатор преобразования % d, определяющий, что будет напечатано целое число. Второй аргумент задает значение, которое будет напечатано. Отметим, что спецификатор преобразования для целого одинаков как для printf, так и для scanf. Это справедливо для большинства типов данных в С. [22]
Новой особенностью является использование для ввода-вывода форматных функций printf и scanf. Параметрами функции являются управляющая строка ( % d) и собственно идентификатор вводимой-выводимой переменной. [23]
Функция scanf получает значения, которые пользователь обычно вводит с клавиатуры. Ее первый аргумент - управляющая строка, задающая формат считывания, которая сообщает компьютеру, какой тип данных должен быть введен пользователем. Спецификация преобразования % d определяет, что эти данные должны быть целыми. Каждому из оставшихся аргументов должна соответствовать спецификация преобразования в управляющей строке формата считывания. Имя каждой переменной обычно предваряется амперсандом ( &), называемым в С операцией взятия адреса. Амперсанд при объединении с именем переменной сообщает компьютеру ячейку памяти, в которой будет храниться значение. Затем компьютер записывает значение в эту ячейку. [24]
Аргументы функции printf обычно не предваряются ам-персандом. Аргументы, следующие за управляющей строкой формата функции scanf, напротив, обычно предваряются амперсандом. [25]
Когда применение ( FA) находится в начале управляющей строки, необходимо вместо вычисления аргумента А сформировать задержку для А и протолкнуть ее в стек S. После этого вычисляется F и применяется к этой задержке, как ранее. [26]
Интуитивно эта функция представляет загрузку машины термом из управляющей строки, работу машины с этим термом и затем выгрузку результата из стека машины. [27]
При энергичной реализации выражения А и F вначале вычисляются, а затем величина F применяется к величине А. Это выполняется с помощью замены элемента FA в управляющей строке на три элемента A, F, , где - это специальный символ применения, который ( как увидим далее) при своем появлении в начале управляющей строки вызывает применение верхнего элемента стека к элементу, находящемуся непосредственно под ним. [28]
Функция printf может использоваться для вывода на печать заключенной в кавычки строки и значений выражений. При печати целого значения первый аргумент функции printf - управляющая строка, задающая формат вывода, должна содержать спецификатор преобразования % d и, кроме того, может содержать любые другие символы, которые должны быть напечатаны; второй аргумент - выражение, значение которого необходимо напечатать. Если на печать будет выводиться более одного целого числа, управляющая строка формата должна содержать % d для каждого целого, а разделенные запятой аргументы, следующие за управляющей строкой, содержать выражения, значения которых должны быть напечатаны. [29]
![]() |
Использование списка аргументов переменной длины. [30] |