REPL(read-eval-print loop) 또는 인터랙티브 톱레벨(interactive toplevel), 랭기지 셸(language shell)은 단일 사용자의 입력(예: 단일 )을 취하고 이를 평가(실행)하고 결과를 사용자에게 반환시키는 단순한 상호작용 컴퓨터 프로그래밍 환경이다. REPL 환경으로 작성된 프로그램은 구간마다 실행된다. 이 용어는 보통 클래식 리스프 머신 상호작용 환경과 유사한 프로그래밍 인터페이스를 의미하기도 한다. 일반적인 예로는 프로그래밍 언어를 위한 명령 줄 및 유사 환경을 들 수 있으며 기법은 스크립트 언어의 특징과 매우 닮아있다.[1]

개요 편집

REPL에서 사용자는 (전체 컴파일 단위가 아닌) 하나 이상의 식을 입력하면 REPL은 이들을 평가하고 결과를 표시한다.

용도 편집

로서 REPL 환경을 통해 사용자가 운영 체제의 관련 기능에 접근할 수 있고 프로그래밍 기능에도 접근이 가능하다.

운영 체제 셸 밖에서 REPL의 가장 일반적인 용도는 즉각적인 프로토타이핑이다. 그 밖의 용도로는 수식 계산, 과학 분석(예: IPython)을 연동하는 문서 만들기, 상호 작용적인 소프트웨어 유지보수, 벤치마킹, 알고리즘 탐색이 있다.

REPL은 새로운 언어를 학습하는데 필수적인 부분으로 되고 있는데, 초보자에게 빠른 피드백을 제공하기 때문이다.

리스프 특화 편집

구현체 편집

최소한의 정의:

(define (REPL env)
  (print (eval env (read)))
  (REPL env) )

여기서 env는 초기 eval-uation(평가) 환경을 대표한다. 또, enveval에 의해 파괴적으로 업데이트될 수 있다.

같이 보기 편집

각주 편집

  1. Hey, Tony; Pápay, Gyuri (2014). 《The Computing Universe: A Journey through a Revolution》. Cambridge University Press. 76쪽. ISBN 978-1-31612322-5, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a REPL programming environment. ... The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language." 

외부 링크 편집