REPL
REPL je zkratka pro styl programovacího (čí častěji spíš skriptovacího) a ladícího cyklu Read–eval–print loop.
Na této stránce se pokusíme proniknout do tohoto způsobu programování.
Úvod
[editovat]Tradiční způsob skriptování je ten, že programátor nejdříve napíše celý skript, pak jej z příkazové řádky spustí a následně se snaží v něm nalézt (např. pomocí ladícíh výpisů) a opravit chyby. Naproti tomu styl REPL staví celý skript jaksi po částech, kdy každá část má nějaký vstup (read), pak se provede (eval) a výsledkem je nějaký výstup (print), který se může stát opět vstupem pro další část programu. Avšak styl REPL musí řešit i takové případy, kdy se nějaký výstup nedá jednoduše vytisknout a zobrazit tak, aby se mohl stát jednoduše vstupem pro jinou část programu (například odkaz na nějaký komplexní objekt).
Tento přístup je možno aplikovat v řadě různých programovacích jazyků, nejen interpretovaných, ale i kompilovaných.
Určitým mezistupněm mezi laděním celého skriptu a REPL je dnes už běžné sestavování skriptu po modulech, které můžeme ladit a testovat odděleně. Naskýtá se tedy otázka, v čem tkví přínos REPLu např. oproti takovému vytváření a ladění modulů.
Vzato z opačného (spodního) konce, REPL je možno využít i didakticky při výuce nového programovacího jazyka, kdy se student snaží pochopit činnost malých částí programů stylem "co to udělá, když". Takovou možnost ale už dávno nabízejí shelly (příkazové řádky) a IDE (vývojová prostředí) různých interpretovaných jazyků, např. Python. Takže zde je zase otázka, jaký je přínos REPL oproti takovýmto zaběhnutým přístupům.
Info
[editovat]Sajtny
[editovat]- repl.it – interaktivní sajtna s množstvím různých programovacích jazyků (kupodivu právě perl mezi nimi chybí)
REPL v různých jazycích
[editovat]- IPython – interactive computing
- dev.to Ryan Palo 2017-08-08: Your Own Python REPL in Twenty Lines or Less
- github.com: Jonathan Slenders, Latest commit 2017-07-27: ptpython – A better Python REPL
- Fosstack.com: Mohit 2018-02-06: Ptpython - A Python REPL You will Love!
- ABC Linuxu: Tomáš Znamenáček (Zoul) 2009-06-24: REPL v Perlu – řeší se pomocí modulu Devel::REPL, který spouští příslušný interaktivní shell.
Další odkazy
[editovat]- ABC Linuxu (překlad Monkey 2009-08-16): Pohádka o dvou programátorech, orig. Neil W. Rickert (nedostupný).
- quora.com: Read-Eval-Print Loops: