| 開発者 | ファーウェイ |
|---|---|
| 初回リリース | 2019年8月9日 |
| 書かれた | ArkTS、Cangjie、JS、C、C++ |
| オペレーティング·システム | EMUI ( HMS Apkアプリ)、HarmonyOS、OpenHarmony、Oniro OS |
| プラットフォーム | ARM、RISC-V、x86、x64、LoongArch、Lingxi [1] |
| タイプ | コンパイラ、ランタイム環境、コンパイラフロントエンド、ツールチェーン |
| ライセンス | 混合:プロプライエタリ( HarmonyOS )、Apache ライセンス( OpenHarmony、Oniro OS、Android ArkCompiler) |
Ark Compiler(別名ArkCompiler )は、オープンソースの OpenHarmony、 Oniro OS、プロプライエタリのHarmonyOSなどのオペレーティングシステムやチッププラットフォームにまたがる共同コンパイルと実行をサポートする統合コンパイルおよびランタイムプラットフォームです。シングルコアシステムのHarmonyOS NEXT は、統合開発環境でのイベント駆動型プログラミングのネイティブAPPに含まれており、以前はAndroidベースのEMUI用に構築され、 HMS対応のapkアプリをAppGalleryで提供し、アプリのパフォーマンスを向上させます。[2] JS、TS、ArkTSなど、さまざまな動的および静的プログラミング言語をサポートしています。これは、 OpenHarmony 、 Oniro OS 、 HarmonyOS NEXT をスマートデバイス、携帯電話、 PC 、タブレット、テレビ、自動車、ウェアラブルなどの複数のデバイス形式で実行できるようにするコンパイルおよびランタイムベースです。ArkCompiler は、コンパイラツールチェーンとランタイムの 2 つの部分で構成されています。[3]
ファーウェイは、米国の制裁により同OSからの移行を進めていたため、2019年9月9日にAndroidプラットフォーム向けのArkコンパイラをGitHubでオープンソース化した。[4]その後、同社は2022年2月初旬にHuawei Ark Compilerオープンソースプロジェクト(HACOSP)の一環としてOpenArkCompilerでArkコンパイラをオープンソース化し[5]、前年の2021年9月にはArkJS_runtimeをオープンソース化した。これは、2019年8月の開始から2年後のことである。[6]
概要
ArkCompiler には、 OpenHarmonyおよび HarmonyOS ( HarmonyOS NEXT搭載)のコンポーネント化され構成可能なマルチ言語コンパイルおよびランタイム プラットフォームが組み込まれています。コンパイラ、ツールチェーン、ランタイムなどのコア コンポーネントが含まれています。マルチチップ プラットフォームでの高水準プログラミング言語のコンパイルと実行をサポートします。ArkCompiler JS ランタイムは、OpenHarmony オペレーティング システム側で JavaScript (JS) 言語をコンパイルして実行する機能を提供します。
ArkCompiler JSランタイムは、JSコンパイラツールチェーンとJSランタイムの2つの部分で構成されています。JSコンパイラツールチェーンは、JSソースコードをArkCompilerバイトコードにコンパイルします。JSランタイムは、生成されたArkCompilerバイトコードを実行します。[7]
ArkCompiler ランタイム コア
| 開発者 | ファーウェイ |
|---|---|
| 書かれた | ArkTS、Cangjie、C、C++、JS |
| オペレーティング·システム | ハーモニーOS |
| プラットフォーム | ARM、RISC-V、x86、x64、LoongArch、Lingxi [8] |
| タイプ | ランタイム環境 |
| ライセンス | 独自 |
| 開発者 | ファーウェイ |
|---|---|
| 書かれた | アークTS |
| オペレーティング·システム | HarmonyOS ( HarmonyOS NEXT )、OpenHarmony、Oniro OS |
| プラットフォーム | ARM、RISC-V、x86、x64、LoongArch、Lingxi [9] |
| タイプ | ランタイム環境、コンパイラフロントエンド、ツールチェーン |
| ライセンス | プロプライエタリ、Apache ライセンス( OpenHarmony ArkCompiler ランタイム コア)、Eclipse パブリック ライセンス(Oniro OS) |
OpenHarmonyオペレーティングシステムの言語ランタイムの共通モジュールであるArkCompiler Runtime Coreは、現在のデュアルフレームワークに基づくHarmonyOS Runtimeベースの上にArk Runtimeとしても作成され、ArkCompiler File、Tooling、Base、ISAなどの言語に依存しない基本ランタイムライブラリで構成されるOpenHarmonyベースのHarmonyOS NEXTという単一フレームワークと並んでいます。ArkCompiler Fileは、バイトコードとバイトコードの実行に必要な情報を提供します。Toolingはランタイムデバッガーをサポートします。Baseは、プラットフォーム関連のユーティリティの実装を担当します。ISA機能は、言語に依存しない共通命令セットアーキテクチャを提供します。これにより、ハードウェア内の異なる命令セットやチップセットに関係なく、HarmonyOSアプリケーションを実行でき、多様なハードウェアセットとの優れた互換性と、HarmonyOS、Oniro、OpenHarmonyのソフトウェアおよびハードウェアエコシステム間の相互運用性を実現します。[10]
ArkCompiler JS ランタイム
ArkCompiler JS RuntimeはOpenHarmonyのデフォルトのJSランタイムです。ECMAScriptライブラリと効率的なコンテナライブラリをサポートしています。また、 C++とJSの相互作用のためのネイティブAPIセットと、高性能なさまざまなガベージコレクターも提供します。[11]
ArkCompiler eTS ランタイム
ArkCompiler eTS ランタイムは、OpenHarmony 上の旧 HarmonyOS 3.0/OpenHarmony 3.1 API 8 eTS (extendedTypeScript) から派生したArkTSアプリケーションや、カスタム OpenHarmony ベースのHarmonyOS NEXTコア オペレーティング システムを活用したHarmonyOSアプリで使用されるランタイムです。これには、ArkTS/JS オブジェクト用のアロケータとガベージ コレクター (GC)、ECMAScript 仕様に準拠した標準ライブラリ、ARK フロントエンド コンポーネントによって生成された ARK バイトコード (abc) を実行するためのインタープリター、高速化のためのインライン キャッシュ、静的に型付けされたコンパイラ、実行時のネイティブ API (NAPI) アプリケーション開発用の C++/C 関数インターフェイス、およびHarmonyOS 3.1 SDK と OpenHarmony 3.2 SDK API 9 の両方でバージョン 3.1.1 以降、DevEco Studioによる事前コンパイルのその他のモジュールが含まれています。 [12]
ets_フロントエンド
ets_frontendはARKランタイムサブシステムのフロントエンドツールであり、ETSプログラミング言語ファイルをARKバイトコードファイルに変換することをサポートするace-ets2bundleコンポーネントを組み合わせたものです。これらはOpenHarmonyでのArkTSアプリ開発とHarmonyOS NEXTシステムでのHarmonyOS開発に対応しています。[13]
ArkCompiler ツールチェーン
ArkCompilerツールチェーンは、デバッガ、CPUProfiler、HeapProfilerなどのArkTSアプリケーション開発用のデバッグツールを開発者に提供します。Arkツールチェーンが提供するデバッグおよびチューニング機能は、ArkCompilerランタイムに依存して開発者にランタイム関連の情報を提供するDevEco Studio IDEを通じて使用されます。[14]
参考文献
- ^ 「OpenHarmony 3.0、Loongson 1C300Bチップの採用に成功」Huawei Update . 2021年12月15日. 2021年12月15日閲覧。
- ^ Siddiqui, Aamir (2019 年 6 月 22 日)。「Ark コンパイラーの説明: Huawei のアプリ コンパイラーが Android アプリのパフォーマンスを向上させる方法」XDA Developers。2024年2 月 12 日閲覧。
- ^ 「ArkCompiler Runtime」。OpenAtom Gitee 。2024年2月12日閲覧。
- ^ Amit (2019年9月9日). 「Huawei Arkコンパイラーがセルフホスティング用にGitHubから公式にオープンソース化」. Huawei Update . 2024年2月12日閲覧。
- ^ Sarkar, Amy (2022年2月9日). 「OpenArkCompiler 1.0がリリース、Huawei Ark Compilerオープンソースプロジェクト(HACOSP)」. HC Newsroom . 2024年2月12日閲覧。
- ^ Mishra, Yash (2021年9月7日). 「Ark Compiler JSランタイムがHuawei HarmonyOSでオープンソース化」. HC Newsroom . 2024年2月12日閲覧。
- ^ 「概要」。OpenAtom Gitee 。2024年2月12日閲覧。
- ^ 「OpenHarmony 3.0、Loongson 1C300Bチップの採用に成功」Huawei Update . 2021年12月15日. 2021年12月15日閲覧。
- ^ 「OpenHarmony 3.0、Loongson 1C300Bチップの採用に成功」Huawei Update . 2021年12月15日. 2021年12月15日閲覧。
- ^ 「Runtime Core」。OpenAtom Gitee 。2024年2月12日閲覧。
- ^ 「ArkCompiler JS ランタイム」。OpenAtom Gitee 。 2024年2月12日閲覧。
- ^ 「ArkCompiler JS Runtime - ets Runtime」。OpenAtom Gitee 。 2024年2月12日閲覧。
- ^ "ets_frontend". OpenAtom Gitee . 2024年2月12日閲覧。
- ^ 「Ark ツールチェーン コンポーネント」。OpenAtom Gitee。2024年2 月 12 日閲覧。
