? 注: サムネイルは
を使用して生成されました ComfyUI を利用した Flux Schnell モデル;
この記事は NI - Natural Intelligence
の協力を得て書かれました。 ? 本を読む時間がありませんか? - 私たちが作成したビデオをご覧ください:
当初、すべてのプログラムはバイナリで書かれていました - いわゆる アセンブリ
プログラミング言語。
内で文字通り CPU に何をするかを指示する場所
アル。アセンブリは低レベルのプログラミング言語であるため、
が提供されます。
ALU を非常に細かく制御するには、プログラマが CPU
を実際に知っている必要があります
アーキテクチャとバイナリ ロジック - それは非常に難しく、高価です。
アセンブリは、実行パフォーマンスに利益をもたらす低レベルの最適化を提供します。
開発され、積極的に保守されているそのようなプログラムの例
ソートアルゴリズム、ハッシュ関数、ループなど
そこで、複雑さを軽減し、効率を向上させるために、賢い人々が発明しました
高級プログラミング言語。
? Linux X86 のアセンブリ hello world app の例:
section .data hello db 'Hello World!', 0x0A ; The string to print, with a newline section .text global _start ; Entry point for the program _start: ; Write the string to stdout mov eax, 4 ; syscall number for sys_write mov ebx, 1 ; file descriptor 1 is stdout mov ecx, hello ; pointer to the string mov edx, 13 ; length of the string int 0x80 ; call kernel ; Exit the program mov eax, 1 ; syscall number for sys_exit xor ebx, ebx ; exit code 0 int 0x80 ; call kernel
高級プログラミング言語の目的は
の手順を簡素化することです
人間が読めるテキストを使用してビジネス ロジックを作成します。高レベルのプログラミング
言語はコンパイルおよびインタープリタとして分類されます。
コンパイルされたプログラミング言語は、人間が読める高レベルのコードを
に変換します
コンパイル手順中のマシンコード。
実際のコンパイルを行うプログラムはコンパイラと呼ばれます。
各プログラムをコンパイルする必要があることに注意してください
特定のコンピュータ アーキテクチャに適用されます。
X86 用にコンパイルされたプログラムは ARM プロセッサでは動作しません。また、その逆も同様です。
したがって、特定のアーキテクチャ用のコンパイルが必要です。
コンパイルは元に戻せないプロセスです。
アセンブリ コードを高レベルのソース コードに確実に変換することはできません。
パフォーマンスに関しては、ほとんどの場合、コンパイルされたプログラムは実行されます
もっと早く ?解釈されたプログラムよりも。
コンパイル言語の大部分は静的に型付けされます。
説明は次の段落で続きます。
最も人気のあるコンパイル言語は、C、C、Rust、Objective C、C# です。
? Hello world は C プログラミング言語で書かれています:
#includeint main() { printf("Hello World!"); return 0; }
アプリケーションは、画像の表示などの特定の典型的なアクションを実行できます。
アーカイブなどを解凍します。このようなすべてを書くことも可能ですが、
関数を最初から作成するのは現実的ではありません。
そのためにライブラリが使用されます。
ライブラリは分割
により開発プロセスの複雑さを軽減します。
アプリケーションをモジュールに分割します。新機能とバグ修正は
内で実行できます
アプリケーション全体ではなく、モジュールのスコープ。
ライブラリをメイン アプリケーションに統合するプロセスは
と呼ばれます。
リンク中。リンクは動的に実行できます。つまり、すべてのライブラリは
です。
個別にコンパイルされ、
中にメイン アプリケーションに接続されます
アプリケーションのランタイム、または静的 - すべてのマシンコードを意味します
ライブラリの一部はメイン アプリケーション バイナリに統合されます。
ダイナミック ライブラリの拡張子は通常、Windows の場合は .dll、Unix の場合は .so です。
インタープリタ型プログラミング言語は、人間が読める高レベルのコードを翻訳します
プログラムの実行中にマシンコードに変換されます。それを行うプログラム
通訳と呼ばれます。インタプリタもプログラムなので
変換できる CPU の特定のアーキテクチャ用にすでにコンパイルされています
高レベルのコードをその場で機械語に変換します。
パフォーマンスに関しては、ほとんどの場合、プログラムの解釈が遅くなります ?
コンパイルされたものよりも。
最も一般的なインタープリター言語は、Python、JavaScript、PHP、Ruby です。
? Hello world Python プログラミング言語で書かれています:
print("Hello World!")
プログラミング言語は、静的型付けまたは動的型付けに分類できます。
静的型付けプログラミング言語のすべての変数とデータ構造
プログラムのコンパイルまたは実行前に事前定義されています。
たとえば、開発者が変数 A を string
として定義した場合、これは意味します。
コードの後半でその値を文字列から数値に変更することはできません。
これは、Ahead Of Time (AOT) コンパイルおよび印刷中に検証できます
論理エラー。この簡単なテクニックはエラーの数を減らすのに役立ちます
実行中にプログラムがより安定するようになります。
動的に型付けされたプログラミング言語では、変数を再割り当てできます
あるタイプから別のタイプへ。たとえば、変数 A には最初に数値
を含めることができます。
以降は文字列を含めることができます。この方法により、開発プロセスが簡素化されます。
変数には、整数、浮動小数点数、文字列を指定できます。
これらは可能な限り単純なデータ構造であると考えられています。
さらに深く調べるために、変数は RAM 内の指定されたアドレスを使用して保存されます。
アドレスは 2 進数 (11111111111111101011111101111111111100001101100)
RAM 内のメモリセルの数は通常 16 進数で表されます
(0x7fff5fbff86c) 読みやすくします。
定数は、割り当て後の値が次のような特殊変数です。
実行中のプログラムによって変更されるべきではありません。
連想配列、リンクリスト、キュー、スタック、その他多数。
これらの構造の目的は、データをより効率的に保存することです
そのため、データの操作が簡単になります。
を使用することです。
いわゆる関数。数学のように、f(x) は
を生成する関数です。
プログラミングにおけるその関数のプロパティに応じた値
関数は値を返したり、何らかの処理を実行したりできます。関数は入力を受け入れることができます
数値、文字列、その他のデータ構造などの引数と return
値またはデータ構造、あるいは引数なしで機能することもできます。
すべては関数自体のビジネス ロジックに依存します。
プログラミングを学び始めたばかりの場合 - 単純な解釈済み
から始めます
Pythonのような言語。基本を理解した後 - 他のすべての言語
構文を読むだけで簡単に理解できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3