「コンパイラ型」言語と「インタプリタ型」言語に関するまとめ
インタプリタ型で実行時ならないとエラーを検出しないケース。c0(c1?)カバレッジを前提とした場合にコンパイラ型言語と比較して出荷後の不良の比率で優劣あるのだろうか。
2019-09-09 11:05:57Pythonのプログラミング言語としての分類として、正しいものを選べ。 A.低水準型 B.インタープリタ型 C.トランザクション型 D.コンパイラ型 #Python3エンジニア認定 ite.hpeo.jp/entry/python/e…
2019-09-13 11:27:35@koiwai_g コンパイル言語はいいな!型定義するもんな! まさか配列期待のメソッドからカンマ区切りの数値文字列が出るパターンがあるなんて考えねえよ!
2019-09-13 19:24:47プログラミング言語の実行形式の違い コンパイル型 - コードを機械語または中間コードに変換して実行 - 利点 : 利用者がすぐ実行できる - 欠点 : コンパイルに時間がかかる スクリプト型 - コードをそのまま実行できる - 利点 : 開発のオーバーヘッドが少なくなる - 欠点 : 比較的遅い
2019-09-13 20:13:11観測圏でいくらtypescriptとかコンパイル言語とかJSのフレームワークが流行っても俺はインタプリタ型言語でフレームワーク使わずに書く(というのを宗旨変えする可能性もあるけど😂)
2019-09-13 22:48:47Pythonのプログラミング言語としての分類として、正しいものを選べ。 A.低水準型 B.インタープリタ型 C.トランザクション型 D.コンパイラ型 #Python3エンジニア認定 ite.hpeo.jp/entry/python/e…
2019-09-14 08:27:35プログラミング教育やるなら、CとかJavaじゃなくて、PHPやRubyから始めるべきなんですよ まぁ、インタプリタに慣れると、コンパイラ型言語はまずやらないだろうけど
2019-09-14 15:18:45僕はまだインタプリタ型言語というのしか勉強していないんだな。 コンパイラ型言語もある程度今の勉強が進んだら始めるか。 #programming #engineer #プログラミング学習
2019-09-14 20:40:17最近、一部のプログラミング入門書は継続的に「コンパイル型言語とインタプリタ型言語」とか、「インタプリタ型言語は一行ずつ翻訳して実行している」とか、後で修正されない誤りの元を広めていることが多いという気がしてきた(というか、実際、それが派生したと思われる間違いを多く目にする)。
2019-09-15 08:50:00「インタプリタは命令を読みながら実行する」「コンパイラは命令を別の言葉に翻訳してから実行する(翻訳した命令は、また別のインタプリタなりコンパイラなりで実行する。それがハードウェアの場合もある)」で良いので、「1行ずつ翻訳」という嘘解説は「わかりやすさ」のメリットもない。
2019-09-15 09:03:45「コンパイラ型言語」と「インタプリタ型言語」とかの説明で納得したままでいられると何が嫌かというか、たとえば処理系の速度とかに関する議論をしようとおもうと、議論相手が言語仕様と処理系をごっちゃにして、話が伝わらないことが多いことなどがあると思います。
2019-09-15 09:04:31ちなみに、私がみたところ、「コンパイラ型(コンパイル型)言語」と「インタプリタ型言語」という説明をしている人のいくらかは、そもそも(典型的な)インタプリタが何やってるかを理解されていないのでは、と思っています。その辺は、「インタプリタ型言語」でぐぐっていただけるとわかるのですが。
2019-09-15 09:35:31あと、「インタプリタ」ってそもそも、むしろ正しい説明の方が(少なくともググった範囲では)少ないのでは、と思った。いや、機械語に「翻訳」しているわけじゃないんだってば。
2019-09-15 09:38:52インタプリタがなにかってのは、たとえば数式をevalする関数でも書いてみればすぐわかると思うのですけど。 def eval(e: Exp): Int = e match { case Add(l, r) => eval(l) + eval(r) ... case Value(v) => v } このevalが「機械語に翻訳している」とは思えませんよね、と。
2019-09-15 09:45:12@book_western 読んでみましたが、一行ずつ「翻訳」の部分を否定していることが伝わっていなかったように思います。一行ずつ「解釈」しているインタプリタは昔はあったと思います。
2019-09-15 10:07:25振り返ってみると黎明期はむしろコンパイル型の言語の方が多いと思う。インタプリタはむしろ次の世代かもしれない(調査していないので不正確)。
2019-09-15 10:37:47インタプリタ型言語とかコンパイラ型言語とかは間違い、ってのはまあ実際問題そういう記述がある文章は間違っていることが圧倒的に多いわけだけど、言語仕様で処理系の方式を定めている言語もありうるわけで、その言葉自体を間違いと断定するのもどうかなと思う。なんとなく。
2019-09-15 12:13:29@zacky1972 あ、あと、インタプリタが「一行ずつ」「翻訳」している、という誤りについてもですね(インタプリタの「解釈」という挙動があまり理解されていないようだ、という問題意識です)。
2019-09-15 13:24:56言語に備わった性質として「インタプリタ型・コンパイラ型」みたいなのが決まるわけではないしなあ C++でさえインタプリタと対話型インターフェイスが存在するし( github.com/root-project/c… ) もっともリフレクション要素があるとコンパイラを作るのは大変そうだけど。
2019-09-15 13:50:06「コンパイラ型」言語と「インタプリタ型」言語は、普通にお仕事関連で見たことから来る問題意識で、この区別がたとえ誤っていようとプログラムはもちろん書けると思うんですが、言語の実行モデルに関することに話が及んだときに話が通じなくなる恐れが高いので、この誤った区別はリアルに嫌です。
2019-09-15 14:06:04言語にコンパイラ型とインタープリタ型があるのではなく言語処理系にコンパイラとインタープリタ(とそのハイブリッドな様々)があるんだけどね。
2019-09-15 14:09:06