sigma_devsecops
@sigma_devsecops

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

TypeScriptでコンパイルという表現を使うことに違和感を感じるので詳しい方の意見を聞きたい

Q&A

Closed

解決したいこと

TypeScript初心者です

TypeScriptのコードをJavaScriptのコードに変換することをコンパイルと書く方がいるのですがこれは誤用なのでしょうか?

によると

コンパイル(compile)とは、プログラミング言語で書かれたコンピュータプログラム(ソースコード)を解析し、コンピュータが実行可能な形式のプログラム(オブジェクトコード)に変換すること

実行可能にするにはCPUが直に理解して実行することができる機械語(マシン語)で書かれた「オブジェクトコード」(あるいはネイティブコード)に変換しなければならない。この変換工程を実行開始前に専用のソフトウェアを用いて一括して行うことをコンパイルという。

とあり、JavaScriptはマシン語ではないので違和感を感じています。

ではconvert

でもtranspiledという表現が使われていることから誤用なのではと思っているのですが、みなさんはどう思われますか?

みなさん回答いただきありがとうございます。
大変勉強になりました。
コンパイルという表現をしても問題ないことがわかりました。

2

4Answer

https://developer.mozilla.org/ja/docs/Glossary/Compile
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
>コンパイラとは、ある言語(プログラミング言語)で書かれたプログラム(ソースプログラム)を読み、それを別の言語で書かれた等価のプログラム(ターゲットプログラム)へと翻訳(translate)するプログラムである

指定されたプログラミング言語を機械語に変換しなければコンパイラではない
なんてことは無いと思います
TypescriptをJavascriptにコンパイルするなんて文言は
違和感を感じるに違和感を感じないぐらいの些細な事柄ではないでしょうか

2Like

It's a great question, and your concern makes sense! While TypeScript is technically transpiled rather than compiled, the term "compile" is widely used in the TypeScript community for simplicity. This is because the TypeScript process involves converting TypeScript code into JavaScript, which is conceptually similar to how traditional compilers work, even though it's not machine code we're targeting.

So, while "transpile" is more accurate (since it's converting from one high-level language to another), "compile" has become an accepted term due to familiarity and ease of understanding. If you're explaining TypeScript to someone new, using "compile" might feel more natural, but if you're discussing it in a technical context, "transpile" might better convey what's happening under the hood. Ultimately, both are fine as long as your audience understands your intent! 😊

2Like

Javaのコンパイラー(javac)も、CPUのネイティブコードには変換しませんし、「コンパイラ」がネイティブコードを吐くものだけを指さなくなって久しいと思います。 なので、事前になんらかの変換処理をするものをコンパイラと呼ぶのにもう違和感はありません。

Transpileという言葉もありますね。 ある言語から別の言語に変換するものを特に指すために作られたもののように思います。TypeScriptのコンパイラはトランスパィラとも呼ばれますね。

1Like

Your answer might help someone💌