REPL
REPL (Read-eval-print loop — цикл читання-обчислення-друку) — просте інтерактивне середовище програмування. Цей термін найчастіше вживається стосовно інтерактивного середовища мови програмування Lisp, але може застосовуватись і до інтерактивних середовищ мов Smalltalk, Python, Ruby, Haskell, JavaScript та ін.
В такому середовищі користувач може вводити вирази, які середовище одразу обчислить, а результат обчислень відобразить користувачеві. Назва read-eval-print loop походить від імен примітивів мови Lisp, що реалізують таку функціональність:
- Функція read читає один вираз і перетворює його в відповідну структуру даних у пам'яті.
- Функція eval приймає одну таку структуру даних і обчислює вираз, що відповідає їй.
- Функція print приймає результат обчислення виразу і друкує його користувачеві.
Щоб реалізувати REPL-середовище для певної мови, досить реалізувати три перелічені вище функції й об'єднати їх у нескінченний цикл.
REPL-середовище дуже зручне при вивченні нової мови, бо надає користувачеві швидкий зворотний зв'язок.
Особливості Lisp[ред. | ред. код]
Впровадження[ред. | ред. код]
Мінімальне визначення:
(define (REPL env)
(print (eval env (read)))
(REPL env) )
Де env
являє собою початкове eval
-uation середовище. Також передбачається, що env
може бути деструктивно оновленим eval
.
Див. також[ред. | ред. код]
Посилання[ред. | ред. код]
- Опис реалізації REPL у Common Lisp (Paul Graham).
- c-repl REPL для мови C
- [1] REPL для мови JavaScript