Ордена Ленина ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ имени М.В. Кеп.аь1ша Академии А.В. Климов , наук СССР С.А. Романенко СИСТЕМА ПРОГРАММИРОВАНИЯ РЕФА~2 ДЛЯ ЕС ЭВМ ОПИСАНИЕ БИБЛИОТЕКИ ФУНКUИЙ Преnринт Москва N!> 200 за 1986г. Ордена Ленина ИНСТИТУТ ПРИКЛАдНОЙ МАТЕМАТИЮI им. 'М.в. RвJUUUa Академии Наук С<Х:Р Анд.В.Клвмов, СИСТЕЪ!А С.А.Романенко IIPOI'P АhUИРОВАНИЯ РЕФАЛ-2 ДЛЯ ЕХ: ЭВМ. ОПИСАНИЕ БИЕ/IИОТЕКИ ФУнкциИ. Москва 1006 УдК 681 о з. Об Описана библиотека программиро:вания t аJ[Г()ритмичесюПt обработки функций, рефап-2 поставляемая для ЕС язык рекурсивных функций) информации, представленной древовидкую структуру. по.цстановка :в:вода-:выво~ арИJiиетичес:юtt операций над в виде Основными явжяются соnоставление с и рекурсия. теиС'rов рефал предназначен для имею~~~их изобразительными средствами рефала Ф3ющии системой Язык символьной выражений, образцом, с Эlll. Библиотека :в содержит ПОQJiе,цо:вате.п.ЕВе целш.m ЧИСJJаМИ ~. неоrраничешюй разряд:нОО'l'И И р1Щ .цруrих фушщd. КЛЮЧЕВЫЕ СЛОВА информации, И ФРАЗ:.!: рефал, функциональное программирования, обработка симюльной программирование, язык библиотека подпрограмм. СОДЕРЖАНИЕ Введение 1 • Функция 2. Функции • • о CARD печати э о • , • з. ФУнкции арифметики 4. 5. 6. 7о • Функции лексического анализа Функции • и PI М! • " о о APPL У В. Функции для работы с символами-метками 9. 4 • 5 6 о Функции для работы с символьными файлами о Функция о • • • о • о 14 20 о • 21 •• 25 • • 26 Ф~ции для работы с лексикографически упорядоченными множествами выражений Благодарность Литература • о • • 29 • о .26 35 • • • • • • • о • о • о • • о Алфавитный указатель функций о о • :J1 3 ВВЕ!I.ЕНИЕ В состав функций, в системы программирования реф8..11-2 вх:одит на6ор которые могут Онть испо.11ьзованы в рефа.Jr-программах качестве внешних и хранятся в ОиОJ!иотеке оО' ектнЬJХ модулей, поставляемЬJХ с рефал-системой, ЧтоОы использовать люОую написанной на рефале, из этих функций в достаточно оо'явить соответствующем модуле с помощью директивы Часть ОиОлиотечнwх функций скомпилирована в КОМПИJ!Ятора. ИJIИ PL/1 п е р С в и написана на модуJIИ Ост.альны~ функции на ч оО'ектные н языке ы м с nрограмме, ее внешней EXТRN в • peф8Jie и помощью затем рефал­ запрограммированы на языке ассемО.11ера. Эти функции именуются и. точки зрения польэовате.11я рефал-системы единственное от.11ичие первичных функций от "о::Sычнwх" функций, описанных на рефале, состоит в том, что оОращения к первичным функцИJIМ всегда поJПiост:ью :ВЫЧИCJI.IIIITCЯ за если при этом посJiедователъность ВШIОJПiении этих один шаг реф8..11-машины lдаже совершается действий) , дJIИиная а такzе в оОращений может возНIDtать и том, СJ!оzная что при поОочннl эф~Jект, т,е, взаимодействие со средой, внешней по отношению х реф8JI­ машине. В частности, с помощ:ью первичных функций реализ:уются операции ввода/вывода. 4 I. ФУНКЦИЯ CAiD Первичная функция дает возможность CAiD из входного фай.11а с О~именем Фай.11 доDен SYSIN Fll.EDEF tдц бЫ'l'ь описан СМS ИJIИ IЩО) с JIИ6o с , читать записи SYSIN. помощЫJ пред.11ожения ПОМОЩЫJ D~пред.11ожения tдц ОS/Э60 :и.IIИ ОС ЕС). Записи в фай.11е переменной д.ч:инн, менее 80 SYSIN доDtНн .IIИТер допожняются до Обращение к бнть дJIИНой не более CARD 80 80 ..rep фиксированной .11итер. ИJIИ Записи д.11иной пробе.11ами справа. имеет следующий вид: <:CAiD> и внпоJIНЯется следующим образом. EcJIИ файл SYSIN еще не открЬl'l' - он открнвается. EcJIИ файл SVSIN функции CAiD пустое до кщща, ра6ота а результатом замени является внрааение. Если очереди~ первые пуст иu уае прочитан заJtанч:ивается, файл еще запись не и дочитан ВНдаеТ в до конца, качестве C.AR.D результата читает эаменн 80 литер этой записи. Например, информацию из следуЮЩая SYSIN функция CARDS читав т всю вход~ де конца и оставляет ее в по.11е зрения. 5 = <CARDS1 CARDS CARDS1 2. <CARD>> VX = ( VX) <CARDS1 <CARD >> ФУНКЦИИ ПЕЧАТИ Для nечати результатов PROUT nервичные функции и счета, можно PRINT • исnользовать Обращение к ним имеет следующий вид: [Е) "> <PROLfТC (Е] > <PROUТ (Е]"> <PRINTM (Е] <PROUTM > <PRINTC [EJ "> <PRINT [Е] "? где [Е] В - nроизвольное об' ектное выражение. результате вычисления этих термов, !;YSPRINT, начиная с новой строки, Если выражение не nродолжается на в выходной файл выводится выражение (Е]. помещается в одной nечатной следующих строках. Печать строке, оно пустого [Е] вызывает проnуск одной печатной строки. Длина строки устанавливается nри с nомощью опции C1NES1ZE Если фа.Ил открывается неявно, длина строки равная 120 При использовании выводится в том же SYSPRINT 120 литер. автоматически устанавливается P&INTM функций виде, рефал-программах. заключается в что менее литерам. исходных том, открытии файла и должна быть не nри в и котором PROUTM оно Единственное nереходе выражение записывается на следующую в различие заnись не 6 "+". ставится nризнак nродолжения PRINTC ФующЮI PRINTM и PiOUТM и , PROUТC за работают исключением обрамляют тела составных символов знаками При использовании функций вЫБодится сJiедующим и PRINT образом. так того, скоски .. t" выводятся в виде литер '')" в том же рефал-nрограммах, за виде, Результатом вызова функции является PRINTM , 3. пустое и "t" как они исключением того, ограничителей используется не выражение. и не выражение (Е] PROUT t об' ектные СИ!\IВОлы-литеры выводятся в виде соответствующих литер. и как они ''/ ". знаки) символы nечатаются же что Структурные ')" • Составные И2<'!~ражаются что в в качестве "; ", а апостроф" 1 " . PROUТM , PROUТC Результатом PROUT или вызова функции PRINTC или PRINT является выражение [Е]. ФУНКЦИИ АРИФМЕI'ИКИ В этом разделе оnисаны функции для работы с цель~и числами произвольной разрядности. Для того, раэряАНости, чтобы работать с целыми числами неограяиченной прежде всего чеобходимо об'ектных выражений. используют Целое следующее число символов-чисел символ-литера представление изображается tмакроцифр), 1+1 или подразумевается знак представить их в виде Все функции, оnисанные в этом разделе, '-'. 1+ 1 • чисел. в nеред виде nоследовательности которой может стоять EcJiИ знак числа отсутствует, то ? Примеры целых чисел: /1?/ /242/ /1503/ /5/ /f.?/ /242/ /1503/ /5/ 1+ 1 ,_, /2/ /0/ ,_, /3/ /20'&5/ Такое представление числа является системе счисления 24). по основанию Таким оОразом, записью в nозиционной 2••24=1677?2{6 t2 в степени три символа ,_, /3/ /2035/ изоОрааают число -t 3 * 2.. 24 + 2035) ОсоОнА вопрос nредставлен макроцифрн, Все лиОО функции, оnисанные в nустого воспринимают его вwtают нулевой - Функции ADD , nустого ADD SUВ вычитания, < (F] данном выражения как нуль. в только Онть нулевне допускают аргумента и некоторые функции виде макроц~рн /0/, а выражения. MUL , , разделе, качестве При этом, MUL умножения, нацело соответственно. где [F] Нуль может содераащим результат раООтн в в виде Ф у н к ц и и сложения. представпение нуля. выражением, лиОо пустым выражением. использование некоторые - = 50333683 SUВ и , DR , DIV • DR деления служат для выполнения с остатком и деле!!и.я ООращение к ним имеет следующий вид: t (N1] ) (N2J > - имя функции, а [N1j и (N2] - целые числа tмоает 8 быть - пустые). ADD , Ре зуJ!ьтатом вызова функций целое чис.11о. Ес.11и резу.11ьтат , SLIВ ПOJIOZИTeJieн МJL - знак является 1+ 1 не ставится. Нулевой результат выдается в виде одной макроцифры Например: /0/ • <ADD <ADD ~/1/) ............. /2/> ...... ) /2/> ~ <SUВ ~/1/) /2/> /2/> <Mt.t. ~/2/) 1- 1/2/> <Mt.t. t/2/)> <SUВ ~/2/) ~ Испо.11ьзуя эти функции можно, РАС , /З/ /2/ 1_1/l/ /0/ '-'14/ /0/ например, описать функцию вычисJ!ЯЮщую факториал неотрицатвлъиого це.11ого чис.11а. ЕА = FAC FACI ~ЕА) <FACI /i/> ~/0/) ЕВ = ЕВ (ЕА) ЕВ = DR Функция t<SUВ ~ЕА)/1/>) .(МЦ. (ЕА)ЕВ>> <P.ACi вwцает резу.11ьтат в виде [Q} t [R] ) где [Q] - частное от деления (Ni] на [N2] , а ~R] - остаток. И частное, знака и остаток выдаются без незначsцих ну.11ей и без Нулевые 1+ 1 • и [Q] [R] ВЫдаЮтся в виде макроцифрн /0/. Попнтка дe.IJI'l'ь на но.11ь приводrr к авосту "отохдестВJiеиие невозмоано' • Эн81U1 ЧИСе.l учитНВ81>ТСЯ произВОД81 дежевие, часrному и не оствrку CJieдJIIЩJIU o<Sp81118J1 ВR818НJIJf nриписнваем ООравом: на зваки, такие знаки, CHaЧ&Jia а звrем чтобн 9 выполнялось соотношение: [Ni] = (~ * [N2) + (&] Т.е. частнее положительно, совпадают, нуто если знаки делимого и делителя и отрицательно в противном остаток всех·да имеет случае, а не равный знак далимого. Например: <DR. <DR <DR. c::.DR Функция t/5/) /3/> t/5/) '-' /3/> t 1- 1 /5/) /3/> t 1- 1 DIV /'I./ i./2/) '-'Н./ t/2/J 1- 1 /'I./ t'-'/2/) /1/ t'-'12/) ~ ~ ~ ~ /5/) '-' /3/> выдает результат в виде [Q] где [Q] - частное от деления на [N1] [N2] какое подучается при обращении к функции <DIV <DIV <.DIV <DIV t/5/) /З/> t/5/) 1- 1/3/> t 1- 1 /5/) /3/> t 1 - 1 /5/) 1- 1 /3/> ADDN Функции В некоторых макроцифрой случаях /0/ , SUВN ~ /'1/ ~ '-'/!/ '-'/!/ .... - /!/ , MULN , удоОно , точно такое же, DR. • Например: DRN , представпять а пустым выражением. только , DRN • тем, Они от;:ичаются от что пустого выражения. всегда ВЫд810Т ADD , нулевой Например: <MLLN t) /3/> -+- [пусто] нуль не Для раОоты с таким представлением чисел предоставляются функции МЦ..N DIVN • SUВ ADDN , , MUi.. результат в SUВN и , DR виде !{) <SUВN l/0/)> -.. [пусто] <DRN (/{0/) /5/> ... /22/ () <DRN l) /3/> <DIVN l) /3/> ~ Ф у н к ц и я ФуНКцИЯ GCD -- () [пусто] GCO • предназначена для вычисления наибольшего общеего делителя двух целых чисел о Формат обращения: <GCD ( (Nf) ) [N2] > где [Nl] и [N2] - целые числа (которые могут быть пустыми). Результат замены имеет вид: [N] где {N] - положительное целое наибольшим оОО!им делителем чисел число. которое [NI] и [N2] о является Наnример: /Э/ <GCD (/6/) /I5/> ..... <GCD ( 1- 1 /6/) /{5/> <GCD t/!5/) /!/> <GCD (/!5/) /0/> <GCD t/f5/)> /3/ _.. /I/ ~ .... /15/ ~ /15/ Наиоольwи.И общий делитель не мажет быть нулем, поэтому не возникло необходимости иметь еще и функцию Если и и [N!] , [N2] равны ну1111, GCI)Ч • возникает авост "ото.ждаствление невозможно''. Исnользуя функцию О& , можно бЫJ\О бы описать рефале следующим образом: GCO (Е{) ЕА l/0/) =Е! tE!) ЕА (Е2) = <.GCD (Е2) <.D.R. (Е!) Е2>> GCD на II NREL • Ф у н к ц и я NREL Функция предназначена для сравнения целых чисел. Формат обращения: где ~NiEL t (N!] ) (N2) и - [NI] Результат [N2] > целые числа или пустнв ВЬiра&ения. замены имеет вид: (zj t [NIJ ) (N2) где символ-литера. При этом [z] - 1,.. Если [N!) > (N2) • то fl] Если (N!] = (N2) • то [z] = 1=1 то [z] = 1< 1 о Если [Nf] < (N2] • Числа [Nf] и [N2] сравн.иввются целые с учетом знака. R8lt При этом пустое выражение воспринимается K81t нуль. Например: <N:Ш... t/5/) <NREL t 1-'/5/) '-'IW> <NiEL t) Функции NLttffi , IЗI> /0//Q/> SУМВ • CVB 1 ~ 1 =1 и перевода чисел из десятичной системы 2••24 CVD t) 8 - 1 /З/ /0//0/ примеюштсв для в систему по основанию и обратно. Ф у н к ц и Я Для перевода ве.mчине систему NUМВ >1 t/5/) /З/ - .... '<' ( 1- 1 /5/) • NLМВ чисел, • не превосходящих по абсолютной 2**31-I = 2147483647. из десятичной системы в по основааио 2••24 используется перэичная функция Обращение к неИ имеет следуюЩИЙ вид: 12 <NUМВ [D]> где [о] - цепочка символов-литер, записw целого в~~~раzение. ОСНОВВ!IВЮ чис.11а со знаком ми - Результат зшенн Пустое 2**24. то или пустое ае число /0/ • Нулевой резу.11ьтат изобрваается как (NUМВ> десятичнои без него, ~ ,_, ~ -- Функция SУМВ. как по нуль. Например: /1000/ /1/ /0/ /0/ ~ <NLМВ 1 1000000000 1> <.NUМВ 1 +025 1:> в системе воспринимаетсн [D] <NlftiВ 1 1000 1"> <NUМВ 1-i6777216'> являющмсн /59/ /10144256/ /25/ для перевода чисе.11, не преВi1ШаJЩИХ: по абсоJIЮтной величине 2**3!-1 = 2147483647, из системы по основанll) деснтичиую систему испо.11ьэуетс.я функция SУМВ • 2**24 в Обращение к ней имеет СJiедуi)ЩИЙ вид: <SYNВ [NJ> где це.11ое чис.11о в системе по основанию 2**24 tкоторое [NJ - моает бld'ь пустнмJ житер, • явлsощмс.я счис.1ения. Ну.11евой Результат земенн записью числа результат в - цепочка симвоJiо:в­ десятичной изобраzавтсн как Например: <SVЫВ /!000/> <SVUВ 1 - 1 /!/ /0/> <SУМВ> <.SVМВ <~ /0/> /59/ /10144256/> <SУМВ 1 - 1 /0/ /25/> ... ...... .... ...... ~ ~ '1000 1 1-167772!6 1 '0' '0' 1 1000000000 1 1-25 1 системе '0' 13 ф у н к ц и я сvв о для целых перевода чисел произвольной CVB • функция <:,CVB где ведичины 2••24 десятичной системы в систему по основанию Обрацение к неl имеет едедующий вид: [D] > - цепочка символов-литер, являющаяся [D] записью целого выражение. основанию из используется числа со знаком или - Результат замены 2н24. Пустое то [D] же число десятично.14 или в восnринимается Нулевой результат изобра~ется как Ф у н к ц и я 6ез него, пустое системе как по нуль. /0/ • CVD • Для перевода целых чисел nроизвольной величины из системы по основанию CVD • 2••24 <CVD [N] где [N] в десятичную систему используется функция Обращение к ней имеет едедующий вид: > - целое число в системе по основанию 2••24 ~которое Результат замены цепочка символов­ мажет быть пустым). литер, являющаяся записью числа в десятичной счисления. Нулевой резулшат изображается как Функции CVB и CVD описаны образом: SТАRТ ENТRY CVB CVB,CVD EК'IiN NLМВ, SУМВ EXТRN ADD,MUL,DRN 1- 1 1+ 1 Vt DJ Х Vt DJX = 1= Е~ D) Х = 1 (СVВ0 VX> <СVВ0 VX> <CV.OO ЕК :::> на '0 1 рефале системе • следующим 14 CVOO VX 5I 52 53 S4 S5 56 <;Л S8 59 = + <ADO ~<MUL {<СVВ0 VX>) + /59/ /1:0!44256/>) + <NUМВ 5! S2 53 S4 55 S6 ';Л 58 59>> ЕХ CVD = <NLМВ ЕХ> V{N)X = 1 - 1 1 + 1 V{N)X = Е{ N) Х = ЕХ = <.CVM <D~N <.CVD0 VX> <CVD0 VX> <.CVD0 ЕХ > ~ЕХ) /59/ /!0144256/>> 1- 1 CVD0 CVDi {ЕУ) = <SУМВ ЕУ> = + ЕХ {ЕУ) CVD2 <CVD0 ЕХ> + <.CVD2 <5УМВ ЕУ>;> Sl S2 SЗ 54 S5 S6 'fП S8 S9 = + Si 52 SЗ S4 S5 56 ~ S8 59 ЕХ = .(CVD2 1 0 1 ЕХ> END Обратите внимание на то, представленнем целого числа 4. что /59/ /10144256/ является 1000000000. ФУНIЩИИ ЛlliСИЧЕСКОГО АНАЛИЗА Ф у н к ц и я Функция ТУРЕ ТУРЕ • предназначена для терма, с которого начинается выражение. распознавания типа Эта функция не дает аикаких новых: возможностей по сравнению с теми, которые дает использование только для спецификаторов. того, Она включена в чтобы обеспечить СОВ\\естимость библиотеку с другими реализациями рефала, и имеет следующее описание на рефале-2. 15 SТARI' E)jT:&Y ТУРЕ TVPE St:F) Х Е! = 1 F' SX Е! StNJX Er = 1 N1 SX El StiJI Е! = 1 2 1 SX Е! StLJI EI = 1 L1 SX Ei StDJI Ei = 'D' SX EJ StO)X Е! = '0 1 SX М tEX) Ei = 1 В' tEXJ El = '•' E)jQ ф н к ц и я 1 Эта фующИJt FliSТ о пр~;~.цназнач~;~на внраzения части, вмеет отщешrения длину. от начuа Обращение к ней вид. <FIR.SТ (N] где дм вмеющей указанную [~ - (EJ > макроци))ра, а [Е] - произволыюе о6 1 екпое внраzение. EcJIИ (Е] представмет собой посJiедава'l'еJ[ЬНостъ из ~нее, чем [N] термов, резуJIЬ'l'атом замены JIВJIЯeroя вырааеиие '•' (Е] Если ае дJDIНa [Е] не меньше, чем [NJ термов, резулЬ'l'атом замены я:вмется [Ei] ) где [El] и [Е2] - [Е2] такие внраzенiiЯ, что [Е]= [Е!] [Е2] ЭТОМ [Е!] SIВJIJIB'l'CSI ПOCJIBДOВ&'l'eJIЬHOC'l'bll ИЗ рОВНО u~J и при Т8}*0В. !6 Наnример: <FI&ST/2/ 1 А 1 \ 1 В 1 )'С 1 > ...- t 1 A1 t 1 B1 )) 1 C1 <FIRSТ /5/ 1 А 1 \ 1 В 1 ) 1 С'>-.. '•A 1 t 1 B1 )'C 1 Ф у н к ц и я Эта функция выражения части, LASТ • предназначена для имоощей указанную отщепления длину. от конца Обращение к ней имеет следующий вид: > <LASТ [N) (Е] где [N] макроциi>ра, - а [Е] - произвольвое об' ектное выражение. Если [Е] чем представляет собой последовательность из менее, [N] термов, результатом замены является (Е] '•' Если же длина [Е] результатом составляет не менее, чем тер.4ов, [N] замены является [EI] \ (F2] ) где и [Е2] [EI] этом (Е2] - такие выражения, что [Е]= [Ei] (Е2] и при является последовательностью из ровно (N] термов. Например: /2/ 'A'l 1 B1 ) 1 C1 > ~ <LASТ /5/ 1 A1 l 1 B1 )'C'> ~ <LASТ П р и м е р. очередную запись литеры, Опиmем функцию из файла а остальные - SYSIN отбрасывает. 1 А 1 \\ 1 В 1 )'С') 1 А 1 \ 1 В 1 )'С• 1 CA&D72 , и берет которая из нее читает первне 72 I? CARD?2 CARD?2X EXTRN CARD = <CARD?2X <.LASТ /8/ <.CARD >>> Ei t Е2) = Е! '•' = Напоминаем, что когда CARD достигает конца файла она выдает пустое выражение в качестве результата замены. Именно этот случай CARD?2X предусмотрен во втором предложении функции о LENGW Ф у н к ц и и LENGR. и о Эти функции предназначены для вычисления длины аргумента. Обращение к ним имеет следующий ВИд: <LENQW <LENQR. [Е] > (Е)> где [Е] - произвольвое об' ектное выражение. Результатом замены является выражение где [N] - макроцифра, которая равна длине выражения [Е] При этом функция в термах, т.ео состав.JU~Ющих [Е] дJIИНу выражения, соста~W~Ющих (Е] • LENQW выдает ДJIИну выра:еНИR, кожичество а функция т.е. термов LEN~ количество - измеренную нулевого CИМIIOJIOB и Например: <.LENQW 'А' 0 { 1 А 1 )> +- /3/ 'А' 0 { 1 А 1 ) 1 А 1 t) t 1 А 1 )'> .... /6/ 1 А 1 t) t 1 А 1 ) <.LENQW> ~ /0/ < LENQR, уровня, :выдает wреальную" схооок, 18 Ф у н 1t ц и я Эта функцu JIU..TE • копирует tразмноаает) вwраекие :в sа.цаином ко.ачест:вв акавмп.аяров. 06раqвние к ней имеет ви.ц • .(JIJLТE [н] [Е) где [н] > махроц.Wа, - а [Е] - проиsвоАыюе об'ектное внраение. РеsуАьтатом замвин является (Е) (Е) ••• (Е) rде Вliраевие [Е] повторяется [н] раз. (N] равно нyJIIO, результатом зааенн В частности, eCJIИ является ПfСТОе внраевие. Например: Во (МЦ.ТЕ <МULТЕ /5/ 1 А'> /2/ 1 А' <МIЛ.. ТЕ /0/> вСЯJtой с:уществует прiiНВтой ~ реализации отношение в ~ t 'В')> .,... этой рвф&J~а порядка, реализации. ВОСПОJIЬSОВ&ТЬСЯ С ПОМОЩЬЮ функции Ф у н к ц и я Функцu СРSУМВ СРSУМВ 'ААААА' 1А•t •в• >• А • t •в• > [пусто) на множестве определяемое Этим СРSVМВ свмвоАов кодировкой, оrношвнием • предвааначена для сравневи.'i CIIIOOJioв. Формат обращенu: <СРSVМВ rде [А] и [в] [z] - LAJ [В]> симвоАы. моаво • Резуnтат замены имеет ·вид: 19 где z - симвож-яитера. При этом 8С4И [А]> (в] то [z] е ежи (А] = [в] то ~] '=' ; ЭС4И (А]< (в] то (Z] '<' = '>' Симвожы сравниваются по их првдСТВВ48ИВ11 0 ~~епользованном,у Это ЭH&ЧII'l 1 ЧТО R.U.CCЫ CIDIВ040B В даннОЙ р88JIИЗ8ЦИИ рефв.Jrа. упорядочены сжед3I011tИМ образом ~в поряце возраст~) - симвоян-яитеры, симвожн-метки, симвожн-чисжа, СИМВ04Ьl-ССЫАКИ. Сами симвожн-яитеры с:вмвоJ~н-Метки - - - по в порядJtе описания - в зависиwбсти память З11tt); ccWiltИ упорядочены коду EВCDIC ; по а.цресам расшояоаениs фующий в памяти ЭВМ ~внутри одного модуц кодуJIЯМИ : фymщlllt. от поСJiедо:ватеяьности сим:вояа-:-чисжа - по значвиа чисея; мцду эаrруз:ки :в CJIIIВOЖн­ по а.цресам -rояов JIIIIИROB ~JWТорые видi01 ва печати). Напр1116ер: <СРSУЫВ 'А' <CPSYIШ 'Z'> /2/ /!/> <СРSУМВ 1 А' IXПI> <СРSУМВ /ХП/ /0/> ....... .... ~ '<' '>' '<' '< 1 ~о 5. ФУНКUИИ Pi И Ш Первичные функции вычитание единицы из следующи.И Pi и МI макроцифры. производят приоавление и Обращение к ним имеет вид: <.Р! <МI (N]> [N]> rде [N] - макроцифра. Результатом замены для Р! является макроцифра, на единицу большая, чем [N] Результатом замены для Ivd является макроц!IРра. на единицу меньшая, чем [N] • Например: <:Pi /!/> +- /2/ /ffi0/ ...- /9/ /?ffi2/> ~ /?ffi'I./ /!/> .... /0/ <Pl /'379/> .: : rм /!0/> <Мi <М! Попытка вычесть ~ nри6авить единицу единицу из к макроцифры "отождествление невозможно•. макроцифре /0/ /!6??'72!5/ приводит к ИJШ авосту ~I 6. ФУНКЦИИ ДЛЯ PAOOГil С СИМВОЛЫii.IМИ ФАЙЛАМИ В этом CLSGET , разделе LIВPtfl' оnисаны , OPNPtfl' , функции работы с последовательными файлами. записями ФиксированноИ ООлее АИТер. 80 LIВGET до 80 литер. 80 КаlдНЙ файл, содержацими не литер допояняются Записывать можно файлы с заnисями фиксированной длины по с которым будет дoJDJteн 6ыть описан , Читаться могут файлы с и переменной длины, Записи длиной менее справа пробелами OPNGEТ , предназначенные дл.я CLSPtfl' , 80 только в житер. работать рефал-nроrрамма, перед ее запуском с помощоо nредложения FILEDEr tдл.я CMS или .!ЩО), лиОО с помацью DD-предложенм tдл.я OS/360 или ОС .ЕС). При этом до.uны быть указаны параметры ОСВ: ШРМ и LRECL. Например: FILEDEF ХХХ DISK ААА PLIOPT А tШFМ F LiECL 80 / /ХХХ DD DSN=t.IB. SVMt МЕМВЕR!), DISP=SlШ, DCВ=tR&CFM=FВ,LRECL=80,ВLKSIZE=800), UNIT=2Эi!,VOL=SER=AUТOL Описанные в 60лее чем с этом разделе функции позволяют двум.я файлами одновременно. этих файлов доступен толъко на чтение tи чтения'>, файл - а другой При работать не этом од101 из именуется "файлом доступен толъко на запись tи именуется •файлом заnиси•). Чтение файлов LI:OOEТ , OPNGET nроизводится с и CLSGE."'' • nомощью nервичных функц~ OPNQET • Ф у н к ц и я Прв.де о т к р чем wт ь начинать чтение ero файла, с помацш функции OPN~ • с.аедует Обращение к ней JIМeeT С.lедуi)ЩКЙ ВИД: <OPNGEТ [D[)IAA!E] > rде [DDN.AМE] это - представляет собой ИМ.11 цепочка симво.аов-.11Итер, тоrо прв.цжоzения PILEDEF которан DD, и.11и в котором описан открывавмнИ фай.11. Ф у н к ц и я После того LIOOEТ • ках файл oткplll', записи с помощш функции можно ч и т а т ь LIOOEТ • Обращение к из иегu ней имеет с.аедующий вид: <LIВQET> В рdзультате обращения функция прочитать очередную запись из файжа. LIEQEТ пытается Если файл прочитан до конца, результатом замены ЯВJIJiется пустое выражение. Если же в фай.ве еще остались очередную запись 80 виде цепочки из Ес.11и в иепрочитанные записи, и вьщает ее момент обращения к LIBqEI' автоматически (D[)IAМE) =' SYSGET 1 • После тоrо. з а к р н т ь CLSQEТ LIВQEТ фейж чтения открывает файл, • с помощш ней JDI3eт след~ ВИд не 6ш д.вя котороrо как работа с файлом чтеНИR закончена, ero читает символов-литер. открыт, Ф у и к ц и S:l LIOOET в качестве резу.аьтата замены в функции CL~ • нужно О(jращеиие к 23 Резу.11ьтат замены Пос.11е того, - пустое выраJtеи:ие. как оdра'П'IЬСЯ 1t фующп фа1.11 чтения OPNQEТ закрыт, мааио вновь и начать чтение дpyroro фвйJ18. В ча~ости, аю..ио прочиать повторiо rот ае oi!IIНЙ фай.11. Запись в OPNPur , фай.11ы производиов с ПOМOIILЬII Ф у н к ц и я llp81Щe, о т 1t р фушщ.d LIВPur , CLSPur • OPNPUТ чем wТ ъ • Ч'l~JI:ИciO с DИС&!'Ь помацю В файJI, пврв:ичной 91'0 фувх.ци c.I8ДJ8'1 OPNPIЛ • Обрщеиие к ней имеет с•~ вц: <OPNPur [DDNAЫE] > где [DDNAМE] - цепочка СJ81В0.10в-&твр, которая предст8В.Jiяет roro собой имя FIL.EDEF пред.Jiоаеиия IIUIИ 'DD, в котором оп:исаи и с а т ъ в него О'l'ltрываемый фа1.11. Ф у и к ц и в ПосJ:е того, записи с LIВPIЛ • it81t фв1.11 onpwт, помощJЮ Фtвкцп мокио LIВPIЛ • n обращеаие :к :которой имеет с.11ед;ующий вц: <LIВPIЛ [Е]> где [Е] - об' ектное внрааеюtе, которое не coдepu:'l составиlil СИМВОЛОВ. В результате записывается формируются обращения :вооеjще следующим говоря к LIВPUТ неско.11:ысо образом. в вwxQДSOI записвl, Снача.11а все фа1.11 :которые С!рJК'lурвве 24 скобки в выражении [Е] 1) 1• на куски по 80 иреобразуются в символы-литеры Sгrем получиВIIаяся 80 литер. 80 JIИTep пробелами справа. в результате этих деlствий получается частности, N и EcJIИ последний кусок содержит менее литер, он допоJIНЯется до файл записывается '1.' цепочка символов-литер разбивается записей, есJШ аргумент N кусков, кщдая [Е] ДJIИНОЙ в пуст, 80 в файл Если в выходной JIИTep. В добамяется нулевое число записей, т.е. состояние файла не изменяется. Результатом замены для LIВPUT всегда является пустое выражение. ЕсJШ в открыт, которого момент обращения к LIВPUT файл записи еще не LIВPIЛ автоматически открывает на запись файл, для (DDNAМE]= 1 SYSPUT 1 • CLSPUT • Ф у н к ц и я После того как работа с фаИлом записи закончена, з а к р н т ь его с помощ:w функции CLSPUТ , следует обращение которой имеет следующИЙ вид: .(CLSPUT> Результатом замены для CLSPUТ всегда является пустое вырааение. После того как файл записи закрыт. качестве файла Ч'!'ения с помощ:w функции его содержимое. Кроме того • можно OPNGEТ открыть его в и прочитать можно о'Dtрыть на запись другой файл и записывать в него информацию. 25 7. ФУНКЦИЯ Во APPLY мноrих случаях аварийной 11свооодная свою требуется, ситуации память работу, анализировала какие-то дальнейшие случаев предусмотрена функция к ияи не прекращаяа аварийную действия. ситуацию и Дм таких рефал-проrраммы имеет APPLY • APPLY • Ф у н к ц и я Обращение возникновении невозможно'' исчерпана'' рЕфSJJ-программа а nредпринимала чтобы при ''отождествление этой функции из сяедупций вид: <APPLY (Е]> rде [Е] - произвояъное выражение. Выполнение Создается этоrо новое вызова происходит попе зрения, в следуЮщим которое образом. помещается функциональный терм <(Е)> После этоrо даяается попытка вычислить этот функциональннй терм. Возможны три t N) , исхода этой попытки: останов "отождествление "свободная память исчерпана'' В случае N результатом нормальиыi! невозможЖ>" t:Ю t S) • замены будет выражение и останов останов 26 [ж) 1 N1 резуnтат вычис.1еим терма [mJ - где В cJJyЧae • результатом замвин будет выpazвiUie R. (Ж] IR,I где [EI] <. [EI] > .::: [Е]> - оод&J8111110е того ф;увкцисвальноrо терма ВИда пommca внчислеiUIЯ • которого приве.11а 1t авосту •о'l08ДеСТВJiение иевозмааво". В CJIJЧae S результатом З8111e&li будет :внрааение 1 Sl lloCJie тоrо, х APPLY , Моzио ~OIJI!IPOBSН, замвин резу.11ьтаж :К8lt дoпo.uurreJiьиoe поле зренИR, ооздаиное в результате обращения уничтоаавтся. обр&lllаться х ре:курсивно. APPLY В ЭТОМ С.tуЧае образуется стек из по.1ей зрения. 8. Ф1НКЦИИ ДЛЯ Р .АБОI'Ы: С СИМВОЛАЮhМЕТКАII! В возникает необходимость некоторых с.11учаях цепочку литер в СИМIIО.Il-Метку символа-метки Например, из / AВCD-Eli/ И.U, цепочку 1 А-!23 1 • цепочку цепочки JIИТер, литер например, наоборот, ИJIИ, составляющих 1 AВCD-Eii' 1 СИМВОЛ превр~ить nолучить из ero построить / А-!23/ превраТИТЪ В При этом до.uно внполняться сле.цующее требование: будем превращать одну и ту ае цепочку тело. CIDIВOJI если мы JIИT&p в СИМВОJI-М&'l'КУ 2? несколько раз, то все созданные символы-метки равны друr другу, же т.е. должны быть являться экземплярами одного и того СИМВОJ[а. Для создания и функции Fl'OCНAR. Ф у н к ц и я Эта расчленения символов-меток и CНAR.TOF испо•ьзуются • Fl'OCH.AR. • функция иревращает симво•-метку которая является TeJ[OM символа-межки. в цепочку mтер, Обращение к ней имеет вид: <Fl'OCНAR. (F] "> где [F] - символ-метка. Результатом замены является цепочка литер, IIBJIJI!Oщaяcя телом символа [F]. Например: <:FТОСН.АR. /А-!23/> -.. 1 A-I23 1 <FI'OCНAR. /АВСD/> - 1 АВСD 1 Ф у н к ц и я Эта функция CНARTOF • превращает цепочку литер в символ-метку, имеющий тело, совпадающее с заданной цепочкой литер. та же цеnочка метку. литер превращается где [С] и тот же Одна и символ­ Обращение к функции имеет вид: <CНAR.TOF метка. в один - [С) > цеnочка литер. Результатом замены является символ­ Например: <СНАRТОF 'А-!23 1 > <..СНАRТО? 1 АВСD'> Функция CНARTOF -.. /А-!23/ .... /АВСD/ создает и поддерживает таблицу символов-меток, порожденных ею из цепочек литер. цепочка литвр встретилась в первы11 раз, функция, имя меткой. новая которой является Если то создается пустая соответствующим символом­ Если такая же цепочка литер встречается аце раз, то функция не создается, а в качестве результата выра6атываетс~ имя ранее созданной функции. В некоторых создаваемшt из случаях тре6уется, цепочки символом-меткой. литер определенным (С] что6ы FUNCTAВ СНАИ'ОF , с и ИМ80ЩИ11( FUNCTAВ • • Эта функция регистрирует в та6лице символов, функцией совпадал в рефал-прогр8111.1:е тело [с]. Это достигается с помощью функции Ф у н к ц и Я символ-метка, заведомо указанный символ-метку. соцдаваемоlt 06ращение к ней имеет следуюЩИЙ вид: <FUNCTAВ (F) > где [F] - сиМБОл-метка. Результатом [F) регистрируется в та6лице замены является [пусто). Символ всякий раз, когда функция CНAR.TOF литер. совпадающую с телом символа СНАR.ТОF 6удет СИМВОJI Функции построения CНAR.TOF После этого, 6удет получать цепочку [F], результатом функции [F]. и FUNCTAВ та6лицы символов, увеличить количество памяти. ISASIZE символов. нуzдаются поэтому мажет в памяти для потре6оваться заказываемой посредством опции при заnуске рефал-программы. 29 9. ФУНКЦИИ ДЛЯ РАБОТЫ С ЛЕКСИКОIРАФWШСКИ УПОРЯДОЧШНШ.Я МНОЖЕСТВАМИ ВЫР .АЖ.ШИЙ В этом ра~еяе описываются функции, статического и динамического ящиков задачи. многих: Во прияоzен.мх аналитических: вычислениях выражения по на ЭВМ) векоторому использующие понятия дпя решения Рефала следующей ~например, отношению порядка и строить составные даниве из частей с учетом этого поря.цка. выполнение форме.) операций В над полиномами таких алгоритмах в требуется упорядочивать в Шример: "нормализованной" сравнение выражений является одНой иэ частых операций. Проrраммируя обычно заводИт операции над уnорядоченными вспоuогателъиуD функцию двух выреиениями, аргументов, имеющую примерно тахой формат вызова: <(СОМРШ t [EI]) ~ [F2} )> где ~ (z] [Z] - это символ-литера '.t...', TaRёJi фухщия сравнивает 1 =1 или :внрзzения '>'. [EI] и [Е2] по зархсированному в ней отношенJ!Ю порядха. вычисление значения функции сравнения СОМРАRЕ часто требует достаточно много шагов рефал-мвmины lособевно, [Ei] и [Е2] •ДJIИННые" и •почти совпадаот": простейшем лексикографическом порядав просмотреть совпадаощие части) С другой сравнения, п~аются гораздо tНапример, самый такова, pese, нужно посяедоввrельво • статистика стороны, как npaвJUo, если ведь двае при использования функций что значения ее аргументов чем они оравниваотел r.1>ЖдУ собой. быстрый алгоритм сортировки N "неизменных" эл~нтов собой N•LOG~N) последовательности сравнивает В связи с этим возникает вопрос: анализу вырааений для множестве перенести их мецу раз.) пороидения, а нельзя .11И работу по выяснения их места в упорядоченном из стадии попарных сравнений чтобы собственно сравнения на период вычислялисъ "быстро•? О'!вет: можно; предВарительного В только надо гд&-то хранить результаты этого анализа. Рефа.л&-2 статическими ~"об' екта" понятие и если - ~места динамическими хранения" ящикаа. использовать ориетированного подхода в Ба'КНЫМ свойством: реализуется Понятие те~ологию программировании) ящика об' ектно­ обладает одним в ящик можно поместить JIЮб;ую информацию, а затем в качестве представителей этой информации в данных и аргументах к и , функций использовать которые сами иЩюрмаци:и; доступ по себе к содержимому фиксированным набором функций. представление данных и JIIOбol хранимой в ящиках. Здесь на ящика с момент моменты создания использования вычислениях. В с и м в о л н никак не - с с н л отражаnт вида ящиков можно - этой ограничить в которых будет с к р н т о дополнительной информации, BSIШO наличие четкого разделения занесением в содержимого него ящика момент ФОIХИIJОвания значения в и последующих ящика можно один раз ВЫЧИСЛИТЬ И запасТИ В ЯЩИКе JIIOб;yiO ДОПОJIНИТеЛьнуiО информацию: "снаружи" этот факт никак не будет виден. Будем называть т а б у л я ц и е й использования ящиков, когда помещаемая в них такой стиль информация в дмьнейшем не уничтааается, хранится все время •жизни" ящика и используется в фиксированном наборе функций от содераимого ящика. Про эти функции и будем ''табулированн" с помощЬI:J данных ящиков. говорить, что они 3I В чем может заключаться Иначе: Для по этого достаточно который отражает элементов, того, со хранить в его место для которых самих значениИ его можно &лесте упорядоченного множества номера, "табуляция отношения порядка''? како!-i инфо JЪ!аL\ИИ вычислить "быстро" 1 значением в отношении номер, порядка среди :уже nоро.ждены sцики, и сравнивать эти небольшив целые конечно, элемента ящике некоторый зажем числа. Эти должны быть скрыты от пользовтеля: они могут меняться, т.к. время от Т6[ вместо I:!ремени более возникает необХодимость в перенумерации. В существующей версии поддерживается л е к с и к о г р а ф и ч е с к о е некоторыми дополнительными Реализованный выражений использует с "рычагами уnравлеНШ!" \В будущем предполагается ввести nорядка.) одно порядка только отношение порядком. средСВа описания отношения лексикографический следующий порядок порядок злементов выражения \в порядке возрастания): - иравый конец выражения; - "J" - nравая структурная скобка; - "\" - левая структурная скобка; - символы, кроме ссылок \сами функции СРSУМВ символы ссылки упорядоченных они упорпдочены с помощ110 ); на ящики, множеств представл.RЮщи& t они сами элементы уnорядочены по присущему им отношению nорядка>. В выражениях, использовать функциями, подлежащих символы-ссылки кроме уnорядочению, на ящик~, созданные нельзя .цруги.ми оnисанных: в этом разделе. Для структуризацшt совокупности упорядоченных ящиков она З2 раз6ивается на конечное число и ~ е и я щ и к о в ТоКо с е м е й с т в о семейств используются в tкоторьtе д.u других нп хранится данному имена цепей использовать нельзя. иехоторая информация, семейству). Таким В качестве с т а т и ч е с к и х о6разсм, отиосяща.яся к чтобы определить упорядоченные семейства, ну.ано в программе написать одно или несколько предложений вида: SWAP (F] где [F] - имя семейства Элементы tc семейств t1D411 разпи:чннх статическоrо ящика) о семейств помощыэ функции сравнива>тся СРSУМВ ): по 6оnвпе то, именам которое об'явлено нике по тексту проrраммьt. Имена описанных ниже функций начинаются REFERENCE t ссыпка) слов что речь идет о их с 6укв tпорядокJ, операций представленных JIO - от что ознв.чает, над элемент&\!И симвопами-ссыJ!Ками на содержащие о Ф у н к ц и я - RОТАВ ченного множества'' ''табулировать элемент упорядо- : <RОТАВ (F] [Е]> где [F] ORDER вшtолнении упорядоченных: множеств, ящики, и - символ-метка - - [R] имя семейства, элемента семейства, [R] представпяющий элемент семейства. содержать символов-ссылок кроме функцией RОТАВ [EJ - значение символ-ссiiJIКа на ящик, Вьtражение [Е] не доJIЖно тех, которые созданы ранее • Эта функция заносит значение [Е] в семейство [FJ вwцает представитель гтоrо элемента - символ-ссылку Пр:а повторном о6ращении к и [R.] о RОТАВ с такими же значениями [F] зз и [EJ вьщается ccblJIRa на тот же С1114ЫЙ ящик tкроме случаев, когда тот ящик 6ыл уничтааеи сборкой мусора из-за отсутствия CCWIOR на него). ф у Н R Ц И Я элементы ~REL сравнивает два упорядоченных семейств. СИМВОJI&-ССЫЛКИ на сформированные функциеl RGI'AВ [&] [Q] '> ~ c(IIOiEL где [R.] и u• '>' (R1= [Q]) • '=' [z] [Q] - символ~о~-ссWJWt. [z] - CIDU!OЛ-J[И'l'epa t 1 =1 выдается тогда Значение функции и только тогда, внчисJUiется за время, IOR.EL 1.( 1 , когда сравнимое со средним ШЮ"Ом реф8JI-машииы. ф у н R ц и и значение Где ЮFАМ элемента, и IOVAt. - ВiiдМ>Т имя сеАЕйства :и. соответственно: <iDFAМ [R.]> ~ [F] <.liOVAL [&]> ~ (Е] (R.l - CIOOIOЛ-CCWIКa, сформироваивнй функцией ЮТ АВ . резуJ[Ьтате обращения к ней и ииде: <IЮТАВ [F] [Е]> Именно эти [F] и [Е) :вwцаются фующами liiOFAМ и IIOVAL • 34 Кроме использования ношения порядка, н и м а n ь н и й и Ф у н к ц и и <JIOМIN встроенного лексикографического в каждом семействе м011но м а к с и м а ~N и ЮМАХ (F] (Е)> ~ < liШU [F] (Е]> n об' явить ь н ы й от- - м и эпементы. имеют такой формат: [пусто] ~ [пусто] где [F] - им.ч семейства. [EJ - значение элемента семейства. При первом обращении семейству [F] значением минимаАьного элементов <~ОТАВ функции IIOМIN в нем эапшинается, даниого [F] (Е]> tИJ[и lсоответственно: семейства. будет В выдан ЮМАХ что отныне [Е] ) к буде т максимального) дальнейшем при вызове симвоп-ссWIКа на ящик, представJIЯЮщий этот эпемент. Еспи к функции раз, то :IIOМIN lипи о т р е э о к t соответственно: эпементов семеИства: возрастания. для RОМАХ При использовании - обратиться несколько JiU11AX ) формируетсs начальный дnя ко&ечныl) - iOМIN в порядке в порядке у6ыванv.я. ROМIN и &ШАХ возникает конфликт, если обращение к одной из них происходит поспе того, как уже был вызов [Е]. JЮТАВ :IIOМIN , или :IЮМАХ с такими ze [F] и Этот конфликт разрешается спедущим образом. Еспи эпемент минимальных со значением ипи маtсимальных тот новое обращение к ROМIN [Е] уже есть элементов данного или ROМAI в списке семейства, ~~норируется. Еспи с одинаковыми аргументами поспедовательно вызывались R.al'AВ , ROМIN два обращени к на tиu RОТАВ раэпичные элементы сформирован в порядка, ROOX ). а R()ЛАХ ) • семейства; соответствии с второй а затем снова ~аrАВ , то выдадут не совпацазщие символн-ссЫJIКи - по при этом первыli будет пексикографическим отношением указанию функции ROМIN l или 35 Ф у н к ц и я R.O:IilliSET счищает <: RORESEI' [Fi] ••• (FN]> ~ где [FI] ••• [FN] В результате семейств укаэшJные семейства: [пустоl последовательность имен семейств. обращения к забываются элементов и все ящики, nереводятся в функции списки nредставляющие специальное ROiESEТ минимальных: состояние, и у указанных: максимальных: элементы семейства, которое авосту при исnользовании их в аргументах функций, в этом разделе. ссылок, Лцики - элементы семейств, будут в дальнейшем удалены приведет к описанных: на которые пет из nамяти ЭВМ очередной соорхой мусора. БЛАГОДАРНОСТЬ Авторы выражают благодарность Е.В. Травкиной. трудоемкую работу по реализации ассемблера. вьmолнивпей функций ари!lметики на языке 36 ЛИТЕРАТУРА (БР 1977] Базисныit машинах о Мо рефал , и его ЦНИПИАСС , реализация на вычислительных 197? о [КПРТР 19?5] АноВ.Климов, Е.В.Травкина. ЛоВ.Проворов, С.А.Романенко, Рефал в мониторной системе Входной язык компилятора и запуск программ. АН СССР N 8, М., Ду6на БОСМ-6. Препринт Иillvl 1975. [кР 19?5] Ан.В.Климов, Дубна БЭСМ-6. СССР, М., 1975. С.А.Романенко. Рефал в мониторной системе Интерфейс рефала и фортрана. ИПМ АН АЛ~АВИТНЫЙ УКАЗАТFJlЬ ФYНIЩJit (ADD t (NI] ) (N2] > _. <ADDN t (N1] ) [N2]> ~ ~ <~LY ~1 ~]> .,.... (С.АВD> ..,. <СН.АВТОF (С]> .,. (CLSQEТ> ~ <CLSPUf> (N] 7 9 (N] [Z] [Е!:] ljiycтo) 25 4 27 (F] Jjlyc'l'dJ 22 JjlycтQJ 24 ... [zl I8 - (N] IЗ - IЭ > - [D] (N] <DIVN ~ [Ni] ) [N2]> - IN1 7 9 7 t [EI] ) [F:a] 15 (с] jWcтo] 27 28 I0 (сРSУМВ <CVB [Al (В)> [D] "> <CVD [N) > <DIV ~ (N!] ) [N2) t (Nil ) (N2] > t (Nl] ) [N2] > (Fl:&ST [N] (Е1 > (DR. <D&N ... - [Q] ~ [R] ) [Q] t [R.] ) <F'l'OCНAi. (:F) ) <PUNCTAJ:! (:F] > <QCD t (Ni] ) (N2) > (LASТ (N) (Е]> (LENQi, [Е)> <LENQW (Е]> - (N] ..,. - ('roj] [N) <LIВGET> - <LIВPur [Е]> ( MUL t (N!) ) (N2)> <МULN t (N1) ) (N2)> <.MULТE [N) [Е]> <М! (N] <N:Ш.. t (NI) ) (N2) <NUМВ [D]> (OPN~T [DDN.Aм&J> <.OPNPUf [DDNAМE] > - - 9 ~I] ~ [Е2] Iб (Е] [Е] I7 (Ii:JCТO) 17 22 23 _. - [N] 7 ~ 20 ft+-I) [Z) t (NI) ) (N2) П: - - - [Ш0] [N] 9 [El rю ••• 1ю 18 ~] (nycro] I!IYcro] 22 23 п З3 <PilNT IE1> <Pii NTC (Е] > <PRINТМ ~J> <.PROUI' ~]> <.PROU'ro [Е]> <.PiOt!l'M (Е]> <.Pi [N]> <JIOF.AМ (R.]> <.IIOМIN [F} [Е)> <:!ЮМАХ (F] (Е]> <ШТАВ [F] [Е]> <.iOVAL [R]> <.ЮiEL (R!] [В2] > <.iOiESEI' [11] ••• (F.2]> <SUВ t [NI] ) [N2]"> <SUВN t (NI] ) (N2] > (SУМВ [N]> <ТУРЕ [Е)> --------~ ~ ~ - !}:] iiO I.EJ litycтo} ljiycтo] D:Iycтal [r-/+!] (F] (Jiycтo] (j:Iycтo] [2) (Е] (Z] [пусто] il) 5 5 5 5 5 5 20 29 29 29 29 29 29 29 7 (N] 9 /Р] 12 f?] [.Е] !14 Климов Андрей Вапентинович, Романенко Сергей Анаталъевич тема программирования Рефвп - 2 • Сие - для ЕС ЭВNI.Оnиса.ние бибпиотеа:и фуикuчй •• Редактор В.С. Штаркмвн. Корректор А.О. Лацис. Подоисанок печати 08.12.86г. N' Т- 21902. Заказ Ni 47Э. ФОрмат бумаги 6ОХ90 1/16. Тираж 430 экз. 055 (02)2 Объем 1, 7 уч..-изд.л. Uена 14 и:.оп. Оrпечатаво на ротапринтах в Институте прикпвдноА математик АН СССР © .Мосхва, М кусекая IUI. 4. Все авторские права на иветояшее издание принв.дпежат Институту nрикладной математики им. М.В. Келдыша АН СС<':Р. СсыJIКи на издшmе рекомендуется делать по следующей <f.орме: н. о., ~миlDtя, назна.ние, лрепринт Ин. АН СССР, год, прикл. мате м. им. М.В. Kcnд},JU!a No. Распространение: препринты института продаются в магnзинах АхадеМ!DIИги г. Москвы, а также распространяются через Библиотеку АН СССР в порядке оuмена. Адрес: СССР, 125047, Москва-47, Миусская пл, 4, Институт прикладной математики им. М.В. Келдыша АН СССР, ОНТИ. PuЬlication are reserved the USSR Ьу Асаdещу a.nd distribution the Keldysh Institute of Applied blathematics, of Sciences. The references should initials, Асаdещу nаше, Ье typed title, preprint, the Ьу f~llowing Inst.Appl.Мathem., form: the USSR of Sciences, year, N(number). Distribution. The preprints of the Applied for this j!reprint rightв Мe.thematicв, the USSR Асаdещу Keldyвh Institute of Of Sciences are sold 1n thc bookstores "Academkniga", Moscow and are distributed USSR Асаdещу of Sciences Library Adreвs: USSR, 125047, Moscow Ieldysh Institute of Applied Information Bureau. ав Ьу the an exchange. А-47, Мiusskaya Мathematics, Sq.4, the Ac.of Sc., the USSR, Uена 14 коп.