www.wikidata.uk-ua.nina.az
REFAL REkursivnihFunkcij ALgoritmichna odna z najstarishih funkcijnih mov programuvannya oriyentovana na tak zvani simvolni peretvorennya obrobku simvolnih ryadkiv napriklad algebrayichni virazi pereklad z odniyeyi movi shtuchnoyi abo prirodnoyi na inshu rozv yazannya zadach pov yazanih z shtuchnim intelektom Poyednuye v sobi matematichnu prostotu z praktichnoyu oriyentaciyeyu na napisannya velikih i skladnih program Vidminnoyu risoyu movi ye vikoristannya zistavlennya zi zrazkom yak osnovnogo sposobu viznachennya funkcij Zmist 1 Osnovni principi 2 Priklad vikonannya 3 Istoriya 4 Prikladi program 5 Literatura 6 PosilannyaOsnovni principi red Programa na REFALi mozhe skladatis z odnogo abo dekilkoh moduliv fajliv kozhen z yakih u svoyu chergu skladayetsya z funkcij REFAL funkciya yavlyaye soboyu uporyadkovanij nabir rechen sho skladayutsya zi zrazka i shablonu Na vhid funkciyi podayetsya deyakijviraz obchislennya funkciyi polyagaye v zistavlenni virazu po cherzi zi zrazkami vzyatih z pershogo drugogo i t d rechen Yaksho chergove zistavlennya prohodit uspishno to na pidstavi shablonu vzyatogo z togo zh rechennya formuyetsya novij REFAL viraz yakij i bude rezultatom funkciyi Yaksho z zhodnim iz nayavnih zrazkiv argument funkciyi zistaviti ne vdalosya nevdacha fiksuyetsya pomilka avarijno zavershuyetsya vsya programa Shob uniknuti cogo chasto naprikinci funkciyi pomishayut rechennya zi zrazkom yakogo mozhna zistaviti dovilnij viraz V deyakih suchasnih realizaciyah REFAL napriklad REFAL nevdacha bud yakogo virazu funkciyi zamist pomilki prizvodit povernennya nevdachi yak rezultat vikonannya funkciyi Virazi movi REFAL yavlyayut soboyu poslidovnosti termiv yakimi mozhut vistupati Zvichajni simvoli literi cifri tosho yaki zalezhno vid dialektu potribno abo ne potribno otochuvati apostrofami abo lapkami Simvoli mitki identifikatori konkretnij zapis yakih zalezhit vid dialektu tak v REFAL 5 identifikatorom mozhe buti dovilna poslidovnist latinskih liter i cifr sho pochinayetsya z bukvi Makrocifri cifrovij zapis nevid yemnih cilih chisel sho ne perevishuyut granichne znachennya Chisla z ruhomoyu komoyu REFAL zminni odnogo z dekilkoh viznachenih tipiv Dovilnij viraz otochenij kruglimi duzhkami v dokumentaciyi po REFALu takij term nazivayetsya virazom v strukturnih duzhkah Dovilnij viraz otochenij kutovimi duzhkami oznachaye viklik funkciyi takij term nazivayetsya aktivnim virazom V zalezhnosti vid situaciyi na virazi mozhut buti nakladeni obmezhennya tak u zrazkah zaboroneno vikoristovuvati virazi sho mistyat kutovi duzhki a v poli zoru REFAL mashini ne mozhut buti prisutnimi zminni REFAL zminni vikoristovuyutsya v zrazkah i zalezhno vid svogo tipu mozhut zistavlyatisya odnomu simvolu tobto bud yakomu termu krim virazu v strukturnih duzhkah odnomu termu bezpidstavnogo abo bezpidstavnogo virazu tobto poslidovnosti termiv dovilnoyi dovzhini Vidpovidni tipi zminnih nazivayutsya S zminnimi T zminnimi i E zminnimi U dialekti REFAL 2 pidtrimuvalisya she j V zminni zistavleni bezpidstavnogo neporozhnij vislovom v suchasnih dialektah taki zminni ne pidtrimuyutsya Semantika movi REFAL opisana v terminah virtualnoyi mashini tak zvanoyi REFAL mashini abo REFAL avtomatu Mashina maye pole zoru v yakomu mozhe perebuvati dovilnij REFAL viraz yakij ne mistit REFAL zminnih Vikonannya programi skladayetsya z krokiv REFAL avtomata na kozhnomu z yakih vikonuyetsya zastosuvannya funkciyi do virazu Dlya cogo REFAL mashina bere v svoyemu poli zoru najlivishe z najvnutrishnih aktivnih viraziv inshimi slovami vidshukuyutsya parni kutovi duzhki sho ne mistyat inshih kutovih duzhok a yaksho takih par ye dekilka vibirayetsya ta z nih yaka v poli zoru znahoditsya livishe za reshtu Pershij term virazu vkladenogo v kutovi duzhki maye buti simvolom poznachkoyu sho sluzhit im yam funkciyi chastina virazu sho zalishilasya ye argumentom funkciyi Yak bulo skazano vishe sered rechen yaki skladayut funkciyu znahoditsya pershe take zrazok yakogo mozhna zistaviti z argumentom funkciyi v hodi zistavlennya pripisuyutsya znachennya zminnim sho mistyatsya v zrazku Potim shablon vzyatij z togo zh rechennya beretsya za osnovu dlya formuvannya rezultatu obchislennya funkciyi prosto kazhuchi rezultatom ogoloshuyetsya viraz otrimanij z shablonu zaminoyu zminnih na yih znachennya Neobhidno vidznachiti sho shablon mozhe mistiti tilki zminni nayavni u zrazku takim chinom vsi zminni sho vhodyat u shablon pri formuvanni rezultatu budut zamineni na vidpovidni vislovi i rezultat zminnih vzhe mistiti ne bude Z inshogo boku shablon cilkom mozhe mistiti virazi v kutovih duzhkah Na zavershennya kroku REFAL avtomat zaminyuye u svoyemu poli zoru shojno otrimanij aktivnij viraz razom z kutovimi duzhkami yaki jogo otochuyut na otrimanij v hodi obchislennya funkciyi rezultat Slid zaznachiti sho kilkist kutovih duzhok sho znahodyatsya v poli zoru REFAL mashini mozhe pri comu i zrosti Vikonannya programi zakinchuyetsya koli v poli zoru REFAL mashini ne viyavitsya bilshe kutovih duzhok Viraz sho mistitsya v cej moment u poli zoru ogoloshuyetsya rezultatom vikonannya REFAL programi Priklad vikonannya red Rozglyanemo najprostishij priklad vikonannya programi na REFALi Nehaj dana nastupna funkciya Palindrom s 1 e 2 s 1 lt Palindrom e 2 gt s 1 True True e 1 False Cya funkciya analizuye viraz i povertaye yak rezultat simvol poznachku True yaksho viraz ye palindromom i False v protilezhnomu vipadku Funkciya maye im ya Palindrom Tut s 1 zminna S tipu e 1 ta e 2 zminni E tipu Takim chinom tilo funkciyi skladayetsya z chotiroh rechen pershe z yakih spracyuye yaksho argument funkciyi ye virazom sho pochinayetsya i zakinchuyetsya odnim i tim samim simvolom druge bude vikonano yaksho argument skladayetsya rivno z odnogo simvolu tretye zadiyuyetsya dlya porozhnogo argumentu i nareshti chetverte pidijde dlya vsih inshih vipadkiv Vidznachimo sho shablon v pershomu rechenni mistit aktivnij viraz sho yavlyaye soboyu rekursivnij viklik funkciyi Palindrom Ce vidobrazhaye toj fakt sho yaksho pershij ta ostannij simvoli odnakovi yih mozhna vidkinuti i pereviriti na palindromnist reshtu virazu Nehaj v poli zoru REFAL avtomata bude nastupnij aktivnij viraz lt Palindrom abcba gt Todi vikonannya bude skladatisya z troh krokiv pislya yakih v poli zoru budut taki virazi lt Palindrom bcb gt lt Palindrom c gt True Na pershih dvoh krokah bulo zastosovane pershe rechennya na ostannomu kroci druge Oskilki pislya tretogo kroku pole zoru bilshe ne mistit kutovih duzhok robota REFAL avtomata na comu zavershuyetsya Istoriya red Persha versiya REFAL bula stvorena v 1966 roci Valentinom Turchinom yak metamova dlya opisu semantiki inshih mov Zgodom vnaslidok poyavi dosit efektivnih realizacij na EOM stala znahoditi praktichne vikoristannya yak mova programuvannya Narazi osnovnimi dialektami movi ye REFAL 2 1970 ti REFAL 5 1985 i REFAL 1990 yaki vidriznyayutsya detalyami sintaksisu i naborom dodatkovih zasobiv sho rozshiryuyut pochatkovij variant Prikladi program red Nastupna programa na dialekti REFAL 5 obertaye navpaki i drukuye podanij na vhid ryadok ENTRY Go lt Prout lt Reverse lt Card gt gt gt Reverse e Text lt DoReverse e Text gt DoReverse E Scanned e Scannded E Scanned s Next e Tail lt DoReverse s Next e Scanned e Tail gt Cyu zh programu mozhna zapisati inakshe ENTRY Go lt Prout lt Reverse lt Card gt gt gt Reverse Yaksho ryadok ne porozhnij to perenosimo pershij simvol v kinec s First e Tail lt Reverse e Tail gt s First Obrobka porozhnogo ryadka Porozhno porozhno Nastupna programa na dialekti REFAL 5 otrimuye na vhodi ryadok danih sho yavlyaye soboyu desyatkove podannya deyakogo naturalnogo chisla N pislya chogo obchislyuye i drukuye chislo Fibonachchi z nomerom N ENTRY Go lt Prout lt Symb lt FN lt Numb lt Card gt gt gt gt FN Viklik dopomizhnoyi funkciyi v yakij realizovano zalishkovo rekursivnij cikl s Number lt DoFN s Number 0 1 gt Funkciya realizuye zalishkovo rekursivnij cikl Invariant ciklu lt DoFN s Counter s Current s Next gt s Counter kilkist iteracij yaki lishilis s Current chislo Fibonachchi vidpovidaye potochnij iteraciyi s Next znachennya chisla Fibonachchi na nastupnij iteraciyi DoFN 0 s Current s Next s Current s Counter s Current s Next lt DoFN lt Sub s Counter 1 gt s Next lt Add s Current s Next gt gt Literatura red Turchin V F Algoritmicheskij yazyk rekursivnyh funkcij REFAL M IPM AN SSSR 1968 Romanenko S A Turchin V F REFAL kompilyator Trudy 2 j Vsesoyuznoj konferencii po programmirovaniyu Novosibirsk VC SO AN 1970 Romanenko S A Realizaciya Refala 2 M IPM AN SSSR 1987 Smirnov V K Apparatnaya realizaciya yazyka Refal v IPM im M V Keldysha Preprinty IPM im M V Keldysha 2003 99 S 1 21 Gurin R F Romanenko S A Yazyk programmirovaniya Refal Plyus Pereslavl Universitet goroda Pereslavlya 2006 13 s ISBN 5 901795 08 3 Posilannya red Sajt Refal spilnoti Spivdruzhnist REFAL Superkompilyaciya wiki sajt prisvyachenij rozvitku movi Samostijne vivchennya REFAL 5 Poglyad studenta nbsp Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title REFAL amp oldid 39044622