REPL

Një lak read-eval-print ( REPL ), i quajtur gjithashtu një nivel ndërveprues ose guaskë gjuhësore, është një mjedis i thjeshtë programimi kompjuterik ndërveprues që merr hyrje të një përdoruesi, i ekzekuton ato dhe ia kthen rezultatin përdoruesit; një program i shkruar në një mjedis REPL ekzekutohet pjesë-pjesë.  Termi zakonisht i referohet ndërfaqeve programuese të ngjashme me mjedisin klasik ndërveprues të makinës Lisp . Shembujt e zakonshëm përfshijnë guaska të linjës së komandës dhe mjedise të ngjashme për gjuhët e programimit, dhe teknika është shumë karakteristike për gjuhët e skriptimit . 

 Historia 
Në vitin 1964, shprehja laku LEXO-EVAL-PRINT përdoret nga L. Peter Deutsch dhe Edmund Berkeley për një implementim të Lisp në PDP-1 . 

 Vështrim i përgjithshëm 
Në një REPL, përdoruesi fut një ose më shumë shprehje (në vend të një njësie të tërë përpilimi ) dhe REPL i vlerëson ato dhe shfaq rezultatet. Grillmeyer, O. (2013). Exploring Computer Science with Scheme. Undergraduate Texts in Computer Science. Springer New York. p. 239. ISBN 978-1-4757-2937-5. Retrieved 2021-06-26. The central component to the Scheme interpreter is the read-eval-print loop. Commands are read in, then evaluated. Finally, the evaluated result is printed. Emri laku read–eval–print vjen nga emrat e funksioneve primitive Lisp që zbatojnë këtë funksionalitet:

 Funksioni i leximit pranon një shprehje nga përdoruesi dhe e parson atë në një strukturë të dhënash në memorie. Për shembull, përdoruesi mund të fusë shprehjen s (+ 1 2 3), e cila analizohet në një listë të lidhur që përmban katër elementë të të dhënave.
 Funksioni eval merr këtë strukturë të brendshme të të dhënave dhe e vlerëson atë. Në Lisp, të vlerësosh një shprehje-s që fillon me emrin e një funksioni do të thotë të thërrasësh atë funksion në argumentet që përbëjnë pjesën tjetër të shprehjes. Pra funksioni + thirret në argumentet 1 2 3, duke dhënë rezultatin 6 .
 Funksioni i print merr rezultatin e dhënë nga eval dhe ia printon përdoruesit. Nëse është një shprehje komplekse, mund të jetë printuar bukur për ta bërë më të lehtë për t'u kuptuar.

Më pas mjedisi i zhvillimit kthehet në gjendjen e leximit, duke krijuar një lak, i cili përfundon kur programi mbyllet.

REPL-të mund të krijohen për të mbështetur çdo gjuhë të bazuar në tekst. Mbështetja REPL për gjuhët e përpiluara zakonisht arrihet duke zbatuar një interpreter në krye të një makine virtuale e cila ofron një ndërfaqe për përpiluesin. Për shembull, duke filluar me JDK 9, Java përfshiu JShell si një ndërfaqe të linjës së komandës për gjuhën. Gjuhë të tjera të ndryshme kanë mjete të palëve të treta të gatshme për shkarkim që ofrojnë ndërveprim të ngjashëm të guaskës me gjuhën.

 Përdorimet 
Si një guackë, një mjedis REPL i lejon përdoruesit të aksesojnë veçoritë përkatëse të një sistemi operativ përveç sigurimit të qasjes në aftësitë e programimit. Përdorimi më i zakonshëm për REPL-të jashtë guackave të sistemit operativ është për prototipimin interaktiv.  Përdorime të tjera përfshijnë llogaritjen matematikore, krijimin e dokumenteve që integrojnë analizat shkencore (p.sh. IPython ), mirëmbajtjen interaktive të softuerit, stolshënimin dhe eksplorimin e algoritmeve.