REPL: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
более не распознаётся как изолированная статья, Replaced: {{изолированная статья}} → с помощью AWB
м робот добавил: pl:REPL; косметические изменения
Строка 11: Строка 11:
REPL-среда очень удобна при изучении нового языка, так как предоставляет пользователю быструю обратную связь.
REPL-среда очень удобна при изучении нового языка, так как предоставляет пользователю быструю обратную связь.


==External links==
== External links ==


* [http://www.paulgraham.com/rootsoflisp.html Описание реализации REPL] в Common Lisp (Paul Graham).
* [http://www.paulgraham.com/rootsoflisp.html Описание реализации REPL] в Common Lisp (Paul Graham).
Строка 19: Строка 19:


[[en:Read-eval-print loop]]
[[en:Read-eval-print loop]]
[[pl:REPL]]

Версия от 23:15, 27 июня 2009

REPL (Read-eval-print loop) — простая интерактивная среда программирования. Данный термин наиболее часто используется применительно к интерактивной среде языка программирования Lisp, однако может использоваться и применительно к интерактивным средам языков Smalltalk, Python, Ruby, Haskell и других языков.

В такой среде пользователь может вводить выражения, которые среда тут же будет вычислять, а результат вычисления отображать пользователю. Название read-eval-print loop происходит от имён примитивов языка Lisp, которые реализуют подобную функциональность:

Функция read читает одно выражение и преобразует его в соответствующую структуру данных в памяти.
Функция eval принимает одну такую структуру данных и вычисляет соответствующее ей выражение.
Функция print принимает результат вычисления выражения и печатает его пользователю.

Чтобы реализовать REPL-среду для некоторого языка, достаточно реализовать три перечисленные выше функции и объединить их в бесконечный цикл.

REPL-среда очень удобна при изучении нового языка, так как предоставляет пользователю быструю обратную связь.