JITコンパイラは、簡単にいうと上記2つのいいとこ取りをしたようなコンパイラです。
機械語に一気に変換するのでなく、中間言語に変換したあとに一行ずつコンパイルして実行します。中間言語のファイルを作ることでOSやCPUに依存しない環境で実行でき、インタプリタ形式よりも実行速度が早くなります。JITとは Just In Time の略で、ちょうど間に合う ( その都度 ) というような意味を持ちます。
そのWikipediaの記載は誤りかと思います。
根拠に挙げてるのはおそらくw3cのこちらのドキュメントかとおもいますが、
そのなかのWhat is the Document Object Model?に冒頭で
「The Document Object Model (DOM) is an application programming interface (API) for HTML and XML documents.」とあるので、APIという記載は正しいと思います。
Discussion
とありますが、ここは明確に間違ってます。まず、インタープリタは機械語に翻訳する方法ではありません。インタプリタは、人間が読める言語で書かれたプログラムに対して、即座に書かれた操作を直接実行するものです。
また、「一行ずつ解釈して処理」も間違っています。おそらく、「逐一実行」のことだと思いますがこれは、一行ずつ実行して処理するものでありません。
このところもいろいろ勘違いしているように思います。中間形式に変換してやる方式のことを説明したのだと思いますが、JITコンパイルは実行時コンパイルするだけです。通常コンパイラは実行の前、事前コンパイルして、機械語を直接実行実行します。この辺、よく理解されてないように思います。
また、HTMLの解析について全体的にところどころおかしいところがあります。主にNode周りです。おそらく、 このドキュメントをもとに、その他のMDNなどのドキュメントの記事の内容を良いように強引にくっつけているように思えます。
こんなにいい記事なのに批判コメしかついてなくてかわいそう。
すごく参考になりました。
ありがとうございます。頑張って書いたので、そう言っていただけてすごく嬉しいです。
会社の人たちにこの記事を共有しましたが、みんなすごいと言ってました。
これからも頑張って下さい!!
いや、ほんとそれな。。良すぎますよねこの記事。
DOMはAPIではないと思うのですが…
MDNにはDOMはAPIだと書かれているのですが、違うのでしょうか?
気になったので私も調べてみたのですが、Wikipediaには仕組みとかモデルと書かれていてAPIではないとありますね(参照元はDocument Object Model (DOM) Level 1 Specificationっぽいです)
他のページとか見てもAPIというよりは仕組みとか仕様と訳すほうが私はしっくりきました
そのWikipediaの記載は誤りかと思います。
根拠に挙げてるのはおそらくw3cのこちらのドキュメントかとおもいますが、
そのなかのWhat is the Document Object Model?に冒頭で
「The Document Object Model (DOM) is an application programming interface (API) for HTML and XML documents.」とあるので、APIという記載は正しいと思います。
なるほど。「ドキュメントにAPIと書いていた」ということですね。
APIという語が幅のある使い方をするようだな、と思いましたね。
DOMは"Model"だと理解すれば一般的な意味でのAPIとイメージが異なる気がしていて、
MDNでも表記がやや統一されていない印象が若干ありました。
団体によっても語の意味が多少ぶれている可能性もありそうです。
modelという名前のAPIが無いかなと調べてみたらkerasとpytorchにmodelと名のつくAPIが公開されてました。
おそらくMVCなどの文脈におけるModelとして考えるとニュアンス変だよねってことなんだと思いますが、Modelは抽象的な言葉なのでそれをAPIの名称につけることもありうると思います。
名前はもちろん重要ですが、使われ方がAPIであればそれはもうAPIでしか無いんでしょうね。
HTMLやXMLを操作するためにDOMを使っていれば、その使い方はAPIと何ら変わりないんだと思います。
べつの記事に「DOMにアクセスするためにDOM APIというのがある」というのもあったのでDOMを操作するためのAPIとしてのDOMという認識があるのかもしれません
勉強なりました〜🙇♂️
DOMがよく分からなかったので、とても参考になりました!
すごく分かりやすかったです。
貴方のような方、心底尊敬してます。
私自身、Yahooがネットを一般に流行らせていた頃~十年近くはネットに触れず青春を謳歌してました。携帯がスマホに変わる「i-MODE」前後から徐々にネット検索したりと触れる機会も徐々に増えましたが私のイメージだとテレビの様に動くなんて普通だろ…と。動画サイトもありましたけど個人のサイトは動きどころか写真も色もない‥大学ノートに書かれてる文章を読む‥的な?こ これがネットの現状なの か‥と。余りの静的なネットに驚き、落胆し、興味も持てないままスマホに変えざるを得ない世の中になり、実際手に見たら当時のソレとは別物で、何かしたい事が出来ないと徹底して情報を探し‥。ネットに関わるのが遅くAMDとINTELさえ知らずに当時一番のハイスペックPCを自作しようとパーツを買ってみたものの、ん‥?結局余分に購入したパーツも良い値段したのでドンドン買い足し最終的に6台分も(ケース除)。
次に自然と興味はハードからソフトへ。1年も経たずバイナリエディタを使ったりJavaを使用して‥程度には。しかしCOMの奥を知るほど宇宙そのもの。大気圏程度のDeepwebなど話にならない最深部を覗くいても機械語やそれらの説明自体まるで他所の惑星の言語。日進月歩で進むこの世界は光速を超えて広がるのをBlackHole宜しく取り入れる人たちは東大理Ⅲなんて目じゃない、半端ねぇ。こんなスピードで進歩し更にスピードは増すばかりなのを承知で飛び込むなんて畏敬の念しかない。
駄文を長々と‥すいませんでした。
丁寧でわかりやすく、非常に勉強になりました。
ありがとうございました。
駆け出しエンジニアです。
とても勉強になりました!
ありがとうございます!