"讀取-求值-輸出"循環

"J

“讀取-求值-輸出”循環(Read-Eval-PrintLoop,簡稱REPL)是一個簡單的,互動式的編程環境。這個詞常常用於指代一個Lisp的互動式開發環境,但也能指代命令行的模式和例如APL,BASIC,Clojure,F#,Haskell,J,Julia,Perl,PHP,Prolog,Python,R,Ruby,Scala,Smalltalk,StandardML,Tcl,Javascript這樣的程式語言所擁有的類似的編程環境。這也被稱做互動式頂層構件(interactivetoplevel)。
“讀入-求值-輸出”循環的名字來自於以下幾個Lisp用來實現這種機制的內置函式:
讀入函式接收一個來自於用戶的表達式,將其解析成數據結構並存入記憶體。例如,用戶可能會輸入一個s-表達式 (+123),這句活會被解析成一個包含四個元素的鍊表。
求值函式 負責處理內部的數據結構並對其求值。在Lisp中,求一個以函式名開頭的s-表達式意味著對接下來的參數調用那個函式。所以函式"+"被在參數123上調用,產生結果6。
輸出函式接受求值結果,並呈現將其給用戶。儘管當前的結果“6”並不具有複雜的格式,但如果是一個較為複雜的表達式,那么它將會被精心處理,以便於更方便地被理解。
REPL使得探索性的編程和調試更加便捷,因為“讀取-求值-輸出”循環通常會比經典的“編輯-編譯-運行-調試”模式要更快。

相關詞條

熱門詞條

聯絡我們