Open4

DartVMを勉強するスレ

Ryo24Ryo24

DartVMのドキュメント

https://mrale.ph/dartvm/

内容が濃く、作者のプロフィール上Google Dartチームに所属するコンパイラ関連のエンジニアで信憑性は高い。

作成者

https://twitter.com/mraleph

Dart VM

source code -> binary code -> DartVM -> machine code

の順にビルドされるっぽい

Ryo24Ryo24

Swiftのコンパイル手順

サンプルプログラム

main.swift
print("Hello world!")

printはSwiftr標準ライブラリの一つ。
標準ライブラリは、「ベース層」を提供する。
Foundationフレームワークを使用すると余分な機能を与える。

コンパイル

swiftc コマンドでコンパイル
# 'main.swift'を`main`バイナリーファイルにコンパイル
swiftc main.swift 

## `main`を実行し、"Hello world!"を出力させる
./main

switfcコマンドを使用することにより、Swift compilerを使える。実行するとソースファイルを実行可能なバイナリ実行ファイルにコンパイルする。(マシンコードに変換)

参考文献

https://theswiftdev.com/the-swift-compiler-for-beginners/

Ryo24Ryo24

記事を軽く読み、なんとなくのロジック考察(根拠がないため、考察の域)


コンパイル時

  • sourcee code -> binary codeに変換
  • binary codeをDartVMに保存する(binary fileを作成する)

ビルド時

  • binary file -> binary -> machine codeに変換
  • Flutter engineがmachine code Amachine code Bmachine code Cなどのmachine codeのイベントループを決める