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)
利用者がある程度いるTypeScriptやRubyの人が定義を拡大したいだけだよね、それ
ただのポジショントークだな
Re: (スコア:0)
> 利用者がある程度いるTypeScriptやRubyの人が定義を拡大したいだけだよね
そうじゃないです。
https://www.hanselman.com/blog/javascript-is-assembly-language-for-the... [hanselman.com]
の「it is a little closer to the mark to say」以降の部分にありますが(以下DeepLによる和訳)、
> JavaScriptがウェブのVMである、と言った方が少し的を射ている。
> 私たちはずっとJavaのJVMがウェブのVMになると思っていたが、JavaScriptであることがわかった。
> JavaScriptのパーサーは、JVMのバイトコード・ベリファイアよりも効率的にコード・セキュリティを提供している。
Re: (スコア:0)
じゃあJavaScriptの人が定義を拡大したいだけだね
ポジショントークであることにかわりはない
Re:コンパイル? (スコア:0)
初期のPascal(1970年代)は機械語でなくPコードを出力してたけど、当時からコンパイラ型言語に分類されてたよ