hoomin.kani

KANISAN WEB

インフラ・サーバーサイドを頑張るカニが学んだあれこれ。

結局、REPLって何なの?

f:id:hoominkani:20190623185058p:plain

当たり前のように言うけどさ

「さぁ〜て、REPL使ってサクッと動かしてみるか」

そんな言葉を耳にする機会がたまにありますが、そもそもREPLって何なのか、ちゃんと説明できるか、自分の胸に問いかけたことはありますか?

そもそもREPLってなんて読むのか分からない人もいると思います。かつての私です。

おまけにインタープリタと何が違うのか?なんて聞かれると、頭の中はもうパニック。

横文字に強いエンジニアになるべく、ここでサクッとおさらいしておこうと思います。

REPLとは、ループのことである

嘘、と思った人、嘘じゃないですよ。だってREPLのLはLoopのLですから。

REPL(リプル)とは、Read-Eval-Print Loop、つまり

入力・評価・出力のループ

のことを指します。

wikipediaによると

REPL (Read-Eval-Print Loop) とは、入力・評価・出力のループのこと。主にインタプリタ言語において、ユーザーとインタプリタが対話的にコードを実行する。

……だそうです。

実務では、対話型評価環境のことを指して使われることが多いですね。

インタープリタと何が違うのさ

まずはインタープリタの定義をwikiで調べると……

インタプリタ(英: interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながら実行(英語版)するプログラムのこと。「インタープリタ」「インタープリター」などと表記することもある。

この時点でREPLとは大きく違うことが分かりますね。

要するに、インタープリタ(プログラム)がRead-Eval-Print Loop(ループ)を行う、ということです。

さらにいうと、インタープリタが実行するのはREPLだけではありません。

例えば、pythonでファイルを実行する際によく見るこれは

python main.py

REPLではなく非対話型の実行です。

最後に

いかがだったでしょうか?

この知識を元に、明日から自信いっぱいにREPLを使っていきましょう!