最初の仕事コンパイラの理論を学びます

1.簡単な翻訳者とコンパイラ、アセンブラの接続とプログラムの違い。

コンパイラは、最初のフル・コンパイル後に実行されるプログラムであり、翻訳プログラムは、機械語ソースソフトウェアに高レベルの言語のソースコードの翻訳を指し、機械語プログラムにアセンブリ言語のソースコードを変換するプログラムのコンパイル。

コンパイラとアセンブラの違いは:ソース言語「高級言語」などをアセンブリ言語または機械語などのターゲット言語「低レベルの言語は、」そのような翻訳プログラムは、コンパイラが呼び出された場合。ソース言語はアセンブリ言語であり、ターゲット言語は機械語であるならば、そのような翻訳プログラムは、アセンブラと呼ばれます。

2.コンパイルは、いくつかの主な段階と、各ステージの主な機能を含みます。

コンパイル処理は通常、字句解析、構文解析、意味解析とコード生成、コードの最適化とコード生成に分けて、6つの主要な段階を対象としています。

字句解析:ソースプログラムを読み出し、走査及び分解を構成する文字列のソース、認識された単語、及び内部コンピュータで表します。

解析:字句解析に基づいて、配列は、それが全体の入力文字列構文的に正しいプログラムを構成しているかどうかを決定するために、文法ワードフレーズの様々な種類に分けられます。

セマンティック分析:かどうかソースセマンティック・エラー、コード生成フェーズ情報収集の種類の見直し。

中間コード生成:ソースとターゲットプログラムとの間に介在する内部複雑さの形式にソースプログラムを翻訳します。

コードの最適化:等価交換により生成されたコードの前の中間段階は、より効率的な将来のターゲット・コードの生成を可能にすることを意図しています。
オブジェクトコード生成:決定された絶対または再配置可能な機械命令コードまたはアセンブラ命令コード上の命令コードに中間コード。

インタプリタとコンパイラの違い3.説明。

コンパイラは、ターゲットプログラムを生成することができますが、プログラムは説明することはできません。コンパイラは、全体的な完成をコンパイルした後、1回を実行するために、インタプリタが、彼は説明している間、実施しながら、
いいえオブジェクトプログラムません。

(4)新しいオープンソースのコンパイラ華為アーク(理解https://www.openarkcompiler.cn/home)を、理解し、その基本的なアイデアと技術ルートについて話すだけでなく、そのAndroidソフトウェアのエコシステムが影響を受けます。

基本的な考え方:アークコンパイラは共同で、コンパイラ、ツール、チェーン、およびランタイムの他の主要なコンポーネントを含む、統一されたプログラミングプラットフォームを実行するように設計されたチップの様々なプラットフォームを、コンパイルされ、さまざまなプログラミング言語をサポートしています。アーク代替言語コンパイラはすべて通訳なしで、完全に静的なコンパイラ仮想マシンです。Java開発の生産性とC言語コンパイラの運用効率の両方。
技術ロードマップ:アークコンパイラは静的な方法をコンパイルされ、プログラムの実行の効率を向上させるためのプログラムを大幅に節約することができ、伝統的なアンドロイド、アークコンパイラに比べてと。
静的にコンパイルモードアークコンパイラ言語はマシンコードの動的特性に直接変換することができ、大幅に効率を向上させ、仮想マシンの欠点を排除します。

アークコンパイラコンパイラの開発環境は、翻訳プロセスを既存ながら、主に携帯電話上で、追加のリソース消費量をもたらす、展開されています。
アンドロイドの生態への影響:Androidのプログラムが効果的「解釈エッジ側の実行」非効率性を解決することができます。Huawei社の箱舟マシンコードコンパイラは、効率的な運用手順、さらに最適化されたアーキテクチャの完全な実装を使用して、パフォーマンスが大幅に向上しました。システムプログラムコンパイラHuawei社アーク、ホイスト24%、44%より高速なシステム応答、60%増加した三者流暢を動作するアプリケーションの円滑な動作により、前流暢に比べ。

おすすめ

転載: www.cnblogs.com/cong1/p/11457885.html