\r\n\r\n
コンピュータは、ユーザーからの指示によって動作します。特定のタスクを実行するために書かれた命令一式がコンピュータ・プログラムである。コンピュータのプログラムの集合体をソフトウェアと呼びます。コンピュータのプログラムやソフトウェアは、コンピュータのプログラミング言語で書かれています。世界には数多くのプログラミング言語が存在します。コンピュータのプログラミング言語は、大きく2つのグループに分けられる。高級言語と低級言語である。高レベル言語と低レベル言語の主な違いは、高レベル言語がハードウェアからの高度な抽象化を提供するプログラマーフレンドリーな言語であるのに対し、低レベル言語はハードウェアからの抽象化を提供しない、あるいは提供しないマシンフレンドリーな言語であることである。高水準言語はデスクトップ、ウェブ、モバイルアプリケーションの構築に使用でき、低水準言語はデバイスドライバ、オペレーティングシステム、組み込みシステムなどのハードウェア関連アプリケーションの開発に使用できる。
1. 概要と主な違い 2. 高級言語とは 3. 低級言語とは 4. 高級言語と低級言語の共通点 5. 横並び比較 - 高級言語と低級言語の表形式 6. まとめ
高級言語は、人間やプログラマーに近い存在です。高レベル言語の例としては、Java、C#、Pythonなどがあります。これらのプログラミング言語は、人間にとって理解しやすく、さまざまなタスクを実行するためのプログラムを開発することが可能です。プログラムを書くためのキーワードや構文は、それぞれのプログラミング言語が独自に定めている。機械に依存せず、持ち運びが可能です。
高級言語は英語に近い構文を持っているため、コンパイラやインタープリタを使って人間が読めるプログラムをコンピュータが読める機械語に変換する。これらの言語は、ハードウェアと直接対話することはありません。その結果、高級言語は実行に時間がかかる。また、高級言語はメモリ効率が悪い。特定の実行環境を必要とする場合もある。
図01:高水準言語と低水準言語
高級言語を使うことには多くの利点があります。プログラマーが理解しやすい言語です。プログラマーに優しく、デバッグやメンテナンスも容易です。全体として、高レベル言語はあらゆる種類のアプリケーションを構築するのに非常に有効である。
低レベル言語は、機械にやさしい言語です。レジスタやメモリと直接対話することができます。低レベル言語は、プログラムを機械語に変換するコンパイラやインタープリタを必要としないため、高レベル言語よりも高速に動作する。機械に依存し、移植性がない。低レベル言語の代表的なものは、機械語とアセンブリ言語である。
機械語はハードウェアに最も近い言語であり、CPUはこれらの命令を直接実行する。機械語は0(ゼロ)と1(イチ)で構成されています。機械語プログラムは機械に依存します。アセンブリ言語は、機械語の一歩先を行く言語です。プログラマーは、コンピュータのアーキテクチャやアセンブリ言語でプログラムされたCPUについてよく理解している必要があります。アセンブリ言語プログラムは、アセンブリプログラムを使って機械語に変換されます。アセンブリ言語におけるヘルパーとは、低レベルの命令のことである。アセンブリ言語のコマンドには、MOVやADDなどがあります。
一般に、低レベル言語は実行速度の速いアプリケーションを構築するために使用される。また、デバイスドライバやオペレーティングシステムなど、ハードウェア関連のアプリケーション開発にも利用することができます。低レベルのプログラミング言語を習得するのは難しい。コンピュータのアーキテクチャをよく理解していることが必要です。
高水準言語と低水準言語 | |
高水準言語とは、ハードウェアを高いレベルで抽象化したプログラマー向けの言語である。 | 低レベル言語とは、ハードウェアからの抽象化を全く行わない、あるいはあまり行わない、機械に優しい言語である。 |
実行速度 | |
高水準言語は低水準言語より遅い。 | 低レベルの言語は高レベルの言語よりも高速です。 |
メモリ効率 | |
高水準言語はメモリ効率が悪い。 | 低レベルの言語の方がメモリ効率が良い。 |
翻訳 | |
高級言語では、プログラムを機械語に変換するためにコンパイラやインタープリタが必要になります。 | アセンブリ言語は、プログラムを機械語に変換するアセンブラを必要とし、機械語はコンピュータで直接実行される。 |
わかりやすさ | |
高級言語はプログラマーに理解されやすい。 | 低レベル言語は、コンピュータが理解しやすい言語です。 |
コンピュータ依存症 | |
高級言語は機械に関係ない。 | 低レベル言語はマシンに依存します。 |
携帯性 | |
高水準言語は複数のプラットフォームで動作するため、移植性が高い。 | 低レベル言語はポータブルではありません。 |
コミッショニングとメンテナンス | |
高級言語で書かれたプログラムは、デバッグやメンテナンスが容易である。 | 低レベルの言語で記述するのが難しいデバッガです。 |
サポート | |
先進的な言語には、より多くのコミュニティのサポートがあります。 | 低レベルの言語は、コミュニティからの支持があまりありません。 |
コンピューターは、ユーザーから与えられた指示に基づいてさまざまな機能を実行します。これらの命令セットは、特定のプログラミング言語を使って書かれたプログラムです。プログラミング言語は、コンピュータと通信するために設計された、形式的に構築された言語である。プログラミング言語は、高級言語と低級言語に分けられる。低レベルの言語は、ハードウェアを効率的に扱うことができます。高レベル言語は、学習、読解、デバッグ、テストが容易なため、プログラマーの間でより人気があります。高級言語と低級言語の違いは、高級言語がハードウェアからの高水準の抽象化を提供するプログラマーに優しい言語であるのに対し、低級言語はハードウェアからの抽象化を提供しない、あるいは少ない機械に優しい言語であることである。