User Tools

Site Tools


trac:trac:readme-r

Интерпретатор языка TRAC (Mooers C. N., CACM, 9, 3, 1966)

Вызов:

trac [файл ...]

TRAC представляет собой язык программирования общего назначения. По идеологии ближе всего к нему находится LISP. В данной реали- зации по сравнению с описанием, приведенным в книге Ч.Уэзерелла “Этюды для программистов” изменена мнемоника, работа с бланками на внешних устройствах, трассировка, нет функций установки и чтения указателя, функция list по умолчанию использует раздели- тель “,”, конец файла выступает как металитера.

Интерпретатор по очереди считывает и выполняет файлы, указанные в списке параметров. Если параметров нет, считывается файл стан- дартного ввода. Сигнал прерывания (“^C”) приводит к прерыванию выполнения текущей цепочки и выходу на основной цикл, сигнал выхода (“^\”) - к немедленному выходу из программы.

Синтаксис выражений языка TRAC:

#( имя, пар1, ... )     - активный вызов функции
			  (с повторным сканированием)
##( имя, пар1, ... )    - пассивный вызов функции
			  (без повторного сканирования)
( цепочка )             - защита цепочки от выполнения

Встроенные функции:

#( add, a, b ) - арифметическое сложение. #( and, a, b ) - логическое “и”. #( basis, b1, b2, x ) - изменение основания. #( call, name, arg ) - вызов бланка. #( char, x ) - выдача символа по коду. #( clear ) - уничтожение всех бланков. #( code, x ) - выдача кода символа. #( define, name, body ) - определение бланка. #( delete, file ) - уничтожение внешних файлов. #( div, a, b ) - арифметическое деление. #( eq, a, b, T, F ) - сравнение строк. #( exit ) - перейти к следующей программе. #( find, name, line, Z) - выдача бланка name до строки line. #( get, name, n, Z ) - выдача строки бланка длиной n литер. #( getchar, name, Z ) - выдача символа из бланка. #( getline, name, Z ) - выдача строки бланка до метки. #( gt, a, b, T, F ) - сравнение строк. #( halt ) - выход из интерпретатора. #( input, Z ) - ввод строки до металитеры. #( inputchar, Z ) - ввод символа. #( length, x ) - выдача длины цепочки. #( list, x ) - выдача списка имен всех бланков. #( meta, x ) - установить металитеру. #( mul, a, b ) - арифметическое умножение. #( not, x ) - логическое дополнение. #( notrace ) - выключение трассировки. #( or, a, b ) - логическое “или”. #( output, x ) - вывод строки в файл вывода. #( print, x ) - печать бланков в файл диагностики. #( range, name ) - выдача максимального номера метки бланка. #( read, file, … ) - считывание бланков из внешних файлов. #( remove, name ) - уничтожение бланка. #( rewind, name ) - установка указателя в начало. #( rshift, n, x ) - циклический логический сдвиг. #( scan, name, arg ) - сегментация бланка. #( setin, file ) - подключение ввода. #( setout, file ) - подключение вывода. #( shift, n, x ) - логический сдвиг. #( stop ) - перейти к следующему файлу. #( sub, a, b ) - арифметическое вычитание. #( trace ) - включение трассировки. #( write, file, name ) - запись бланков во внешний файл.

trac/trac/readme-r.txt · Last modified: 2006/02/18 04:38 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki