https://en.wikipedia.org/wiki/Compiler [wikipedia.org] In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language). The name "compi
あと「the binary representation of a computer program which is actually read and interpreted by the computer」への変換という意味を厳密に解釈すると、通常のCコンパイラでさえコンパイラ扱いから外れますよ。 UNIX/Linux 上のコンパイラは通常 machine code を吐くわけではなく、アセンブラのソースコードを吐きますから。
コンパイル? (スコア:0)
ソースコードを機械語に変換することをコンパイルって言うんですよね
https://dictionary.cambridge.org/dictionary/english/compile [cambridge.org]
tsはjsに変換するんだからコンパイルではなくね?
Re: (スコア:0)
> ソースコードを機械語に変換することをコンパイルって言うんですよね
> https://dictionary.cambridge.org/dictionary/english/compile [cambridge.org]
Cambridge Dictionary は一般の辞書であって、IT用語の正確性については一歩劣ると思います。
こういうのは英語Wikipediaの方がむしろ正確で、そっちを見ると
https://en.wikipedia.org/wiki/Compiler [wikipedia.org]
In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language). The name "compi
Re: (スコア:0)
Wikipediaは二次ソースだと思うんですが一次ソースはどこから持ってきたものなんですか?
Re: (スコア:0)
Wikipedia のこの部分の記述には出典らしきものがないみたいなので(探し方が悪いかも?)
たぶん米国の Computer Science 系学科で習う内容そのまんまなのではないかと。
たとえば適当にググって出てきたブラウン大学 Computer Science 学科の講義資料がこれ
https://cs.brown.edu/courses/csci1260/spring-2021/lectures/what-is-a-c... [brown.edu]
A compiler is a program that takes in source code written in one language
(called the source lang
Re: (スコア:0)
たぶん米国の Computer Science 系学科で習う内容そのまんまなのではないかと。
プリンストン大学では違うみたいですよ
https://introcs.cs.princeton.edu/java/82compiler/ [princeton.edu]
Re: (スコア:0)
> プリンストン大学では違うみたいですよ
URLからわかるとおり、これは Java の講義のようで
Java VM byte code は machine language code (for some machine architecture) 扱いだし
javac はコンパイラ扱いです。
つまり machine language code は仮想機械の実行コードも含むわけです。
そして現代のブラウザでは JavaScript は JavaScript 仮想機械の実行コードであると見なせますから
そういう意味で machine language code 扱いでもいいわけですし
TypeScript もコンパイラでいいことになるのでは?
Re: (スコア:0)
> そして現代のブラウザでは JavaScript は JavaScript 仮想機械の実行コードであると見なせますから
この解釈が許されるなら人間が読めるソースコードも仮想機械の実行コードと見做せるから
最初からmachine codeからmachine codeの変換でしかなくなってしまうんだよね
そしてこれはmachine codeの定義と矛盾するので誤りとなる
https://en.wikipedia.org/wiki/Machine_code [wikipedia.org]
Re: (スコア:0)
> この解釈が許されるなら人間が読めるソースコードも仮想機械の実行コードと見做せるから
いやいや、さすがに virtual machine が直接実行できないコードを仮想機械の実行コードとは呼べないでしょう。
あと「the binary representation of a computer program which is actually read and interpreted by the computer」への変換という意味を厳密に解釈すると、通常のCコンパイラでさえコンパイラ扱いから外れますよ。
UNIX/Linux 上のコンパイラは通常 machine code を吐くわけではなく、アセンブラのソースコードを吐きますから。
問題は JavaScript ほどに高級な
Re: (スコア:0)
傍から見てると、それそんなに議論してまで決着せにゃならんことなの……コンパイルで大体意味通じるんだからいいじゃんとか思いますね。
トランスパイラをコンパイラと呼んだらプログラムが異常動作するとか暴走するとかあるんですかね。
正直、その議論に消費する時間を他のことに回したらいいんじゃないかなぁ……と思います。
Re: (スコア:0)
傍から見てると、それそんなに議論してまで決着せにゃならんことなの……コンパイルで大体意味通じるんだからいいじゃんとか思いますね。
トランスパイラをコンパイラと呼んだらプログラムが異常動作するとか暴走するとかあるんですかね。
正直、その議論に消費する時間を他のことに回したらいいんじゃないかなぁ……と思います。
と言いつつ参戦してしまう何でもコンパイル派
コンパイラをトランスパイラと呼んだらプログラムが異常動作するとか暴走するとかあるんですかね。
Re:コンパイル? (スコア:0)
えぇぇ……いきなりレッテル貼られたんですけど。
私はどっちでも良い派ですよ。一々使い分けるとか面倒くさい。ただどうでも良い話でスレが長くなっているから口を挟んだだけで。
トランスパイラって呼び分けるのが一般化したなら、それに合わせますよ。今はそうじゃないだけで。
お願いですから話の流れを見てから発言してくれませんか。一番最初の発言が「コンパイラは用語として間違いじゃない?」から始まっているので「別にコンパイラでも良いじゃん(どっちでも意味通じるんだし)」と発言しただけです。用語として正しいとか本気でどうでも良いので。コンパイルと呼べ!って強制した覚えもないですし。
>コンパイラをトランスパイラと呼んだらプログラムが異常動作するとか暴走するとかあるんですかね。
もしこれを気の利いた返しをしたと思ってるなら、少し考え直した方がよいですよ。
まず話の流れを読むようにしましょう。フローチャート眺めるのと同じですよ。