www.wikidata.uk-ua.nina.az
REPL Read eval print loop cikl chitannya obchislennya druku movna obolonka proste interaktivne seredovishe programuvannya dlya komp yutera yake prijmaye odnokoristuvacki vvedennya vikonuye yih i povertaye rezultat koristuvachevi programa napisana v seredovishi REPL vikonuyetsya poshtuchno Cej termin zazvichaj vzhivayetsya stosovno interaktivnogo seredovisha movi programuvannya Lisp ale mozhe zastosovuvatis i do interaktivnih seredovish mov Smalltalk Python Ruby Haskell JavaScript ta in Zmist 1 Oglyad 2 Vikoristannya 3 Osoblivosti Lisp 3 1 Vprovadzhennya 3 2 Funkcionalnist 4 Div takozh 5 PosilannyaOglyad red V takomu seredovishi koristuvach mozhe vvoditi virazi yaki seredovishe odrazu obchislit a rezultat obchislen vidobrazit koristuvachevi Nazva read eval print loop pohodit vid imen primitiviv movi Lisp sho realizuyut taku funkcionalnist Funkciya read chitaye odin viraz i peretvoryuye jogo v vidpovidnu strukturu danih u pam yati Napriklad koristuvach mozhe vvesti S viraz 1 2 3 yakij analizuyetsya u zv yazanomu spisku sho mistit chotiri elementi danih Funkciya eval evaluate prijmaye cyu vnutrishnyu strukturu danih i obchislyuye viraz sho vidpovidaye yij U Lisp obchislennya S virazu sho pochinayetsya z imeni funkciyi oznachaye viklik ciyeyi funkciyi z argumentami sho skladayut reshtu virazu Otzhe funkciya viklikayetsya z argumentami 1 2 3 sho daye rezultat 6 Funkciya print prijmaye rezultat obchislennya virazu otrimanij vid eval i drukuye jogo koristuvachevi Yaksho ce skladnij viraz vin mozhe buti formatovanim shob jogo bulo legshe zrozumiti Potim seredovishe rozrobki povertayetsya do stanu chitannya stvoryuyuchi cikl yakij zavershuyetsya koli programa zakrita REPL polegshuye doslidnicke programuvannya ta nalagodzhennya oskilki programist mozhe pereviriti rezultat persh nizh virishiti yakij viraz nadati dlya nastupnoyi perevirki Cikl read eval print zaluchaye programista chastishe nizh klasichnij cikl edit compile run debug Oskilki funkciya print vivoditsya v tomu samomu tekstovomu formati sho funkciya read vikoristovuye dlya vvedennya bilshist rezultativ drukuyetsya u formi yaku mozhna skopiyuvati ta vstaviti nazad u REPL Odnak inodi dovoditsya drukuvati nechitabelni ob yekti taki yak deskriptor soketa abo skladnij ekzemplyar klasu U cih vipadkah povinen isnuvati specialnij sintaksis U Python ce poznachennya lt module class instance gt a v Common Lisp lt whatever gt REPL mozhna stvoriti dlya pidtrimki bud yakoyi tekstovoyi movi Pidtrimka REPL dlya skompilovanih mov zazvichaj dosyagayetsya vprovadzhennyam interpretatora poverh virtualnoyi mashini yakij zabezpechuye interfejs dlya kompilyatora Napriklad pochinayuchi z JDK 9 Java vklyuchala JShell yak interfejs komandnogo ryadka do movi Inshi movi mayut dlya zavantazhennya storonni instrumenti yaki zabezpechuyut podibnu vzayemodiyu obolonki z movoyu Vikoristannya red Yak obolonka seredovishe REPL dozvolyaye koristuvacham otrimuvati dostup do vidpovidnih funkcij operacijnoyi sistemi na dodatok do nadannya mozhlivostej programuvannya Najbilsh poshirene vikoristannya REPL za mezhami obolonok operacijnoyi sistemi dlya mittyevogo prototipuvannya Inshi sferi vikoristannya vklyuchayut matematichnij rozrahunok stvorennya dokumentiv sho vklyuchayut naukovij analiz napriklad IPython interaktivne obslugovuvannya programnogo zabezpechennya porivnyalnij analiz ta doslidzhennya algoritmiv Osoblivosti Lisp red Vprovadzhennya red Minimalne viznachennya define REPL env print eval env read REPL env De env yavlyaye soboyu pochatkove eval uation seredovishe Takozh peredbachayetsya sho eval mozhe destruktivno onoviti env Funkcionalnist red Tipova funkcionalnist nadana Lisp REPL vklyuchaye Istoriyu vhidnih ta vihidnih danih Zminni vstanovlyuyutsya dlya vhidnih viraziv ta rezultativ Ci zminni takozh dostupni v REPL Napriklad u Common Lisp posilayetsya na ostannij rezultat i na poperedni rezultati Rivni REPL U bagatoh sistemah Lisp yaksho pid chas zchituvannya obchislennya abo druku virazu vinikaye pomilka sistema ne povertayetsya na verhnij riven iz povidomlennyam pro pomilku Natomist u konteksti pomilki zapuskayetsya novij REPL na odin riven glibshe Potim koristuvach mozhe pereviriti problemu vipraviti yiyi ta prodovzhiti yaksho ce mozhlivo Yaksho v takomu nalagodzhuvalnomu REPL vinikaye pomilka zapuskayetsya inshij REPL znovu na glibshij riven Chasto REPL proponuye specialni komandi nalagodzhennya Obrobka vinyatkiv REPL zabezpechuye perezapusk Ci perezapuski mozhna vikoristovuvati koli vinikaye pomilka dlya povernennya do pevnogo rivnya REPL Vvedennya ta vivedennya ob yektiv danih za dopomogoyu mishi Redaguvannya vvedennya ta specifika kontekstu pered simvolami imenami shlyahiv imenami klasiv ta inshimi ob yektami Dovidka ta dokumentaciya dlya komand Zminni dlya upravlinnya zchituvachem Napriklad zminna read base keruye tim sho bazovi chisla chitayutsya za zamovchuvannyam Zminni dlya upravlinnya printerom Priklad maksimalna dovzhina abo maksimalna glibina viraziv dlya druku Dodatkovij sintaksis komandi Deyaki REPL mayut komandi yaki sliduyut ne sintaksisu s virazu ale chasto pracyuyut z danimi Lisp yak argumentami Grafichni REPL Deyaki REPL Lisp priklad prosluhovuvach CLIM takozh prijmayut grafichni vhidni ta vihidni dani Div takozh red InterpretatorPosilannya red Opis realizaciyi REPL Arhivovano 30 sichnya 2021 u Wayback Machine u Common Lisp Paul Graham c repl Arhivovano 11 lyutogo 2009 u Wayback Machine REPL dlya movi C 1 Arhivovano 26 veresnya 2010 u Wayback Machine REPL dlya movi JavaScript Otrimano z https uk wikipedia org w index php title REPL amp oldid 35713144