APIとは、あるプラットフォーム(OSやミドルウェア)向けのソフトウェアを開発する際に使用できる命令や関数の集合のこと。また、それらを利用するためのプログラム上の手続きを定めた規約の集合。個々のソフトウェアの開発者がソフトウェアの持つすべての機能をプログラミングするのは困難で無駄が多いため、多くのソフトウェアが共通して利用する機能は、OSやミドルウェアなどの形でまとめて提供されている。個々の開発者は規約に従ってその機能を「呼び出す」だけで、自分でプログラミングすることなくその機能を利用したソフトウェアを作成することができる。
プラットフォームとは、アプリケーションソフトを動作させる際の基盤となるOSの種類や環境、設定などのこと。
WindowsやUNIX、Mac OSは、それぞれ異なるプラットフォームである。
また、OSにとっては、自らを動作させる基盤となるPC/AT互換機、Macintoshなどのハードウェアの種類がプラットフォームである。
アプリケーションソフトにせよOSにせよ、対応しているプラットフォームはあらかじめ決まっており、それ以外のプラットフォームでは動作しない。
例えば、Mac OSプラットフォーム上で動作するワープロソフトは、Windows 2000を搭載したパソコンでは動作しない。
ただ、複数のプラットフォームに対応するために、「Macintosh用」「Windows用」などのように、それぞれのプラットフォームに対応した同じアプリケーションソフトを用意することはある。複数のプラットフォームに対応したソフトウェアを「マルチプラットフォーム」と言う。
OSとは、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのアプリケーションソフトから共通して利用される基本的な機能を提供し、コンピュータシステム全体を管理するソフトウェア。
ソフトウェアの開発者は、OSの提供する機能を利用することによって、開発の手間を省くことができ、アプリケーションの操作性を統一することができる。また、ハードウェアの仕様の違いはOSが吸収してくれるため、あるOS向けに開発されたソフトウェアは、基本的にはそのOSが動作するどんなコンピュータでも利用できる。
パソコン向けのOSとして広く利用されているものにはMicrosoft社のWindowsシリーズやApple社のMac OS Xなどがあり、企業などが使うサーバ向けのOSとしてはLinuxなどのいわゆるUNIX系OSやMicrosoft社のWindows Serverシリーズがよく使われる。
ミドルウェアとは、OS上で動作し、アプリケーションソフトに対してOSよりも高度で具体的な機能を提供するソフトウェア。OSとアプリケーションソフトの中間的な性格を持っている。
多くのアプリケーションソフトで共通して利用される機能は、個別に開発するのは非効率であるため、通常はOSの機能として提供され、アプリケーションソフトはOSの機能を利用するだけですむようになっている。
だが、このようにしてOSに実装される機能はどんなアプリケーションソフトでも必ず必要とされるような極めて基本的なものに限られる。
このため、特定の分野でしか使われないが、その分野では必ず必要とされるような具体的で基本的な機能は、ミドルウェアの形で提供されることが多い。
また、ミドルウェアにはOSやハードウェアによる違いを吸収し、様々なプラットフォームで動作するアプリケーションソフトの開発を容易にするというメリットがある。
代表的なミドルウェアにはデータベース管理システム(DBMS)や、トランザクション処理機能を提供するTPモニタ、分散オブジェクト環境を提供するORBなどがある。
ソフトウェアとは、狭義にはコンピュータプログラムとほぼ同じ意味。コンピュータを動作させる手順・命令をコンピュータが理解できる形式で記述したもの。コンピュータを構成する電子回路や周辺機器などの物理的実体をハードウェアと呼ぶのに対して、形を持たない手順や命令などをソフトウェアと呼ぶ。広義にはコンピュータが扱うプログラム以外のデータを含めてソフトウェアと呼ぶ場合もある。ソフトウェアはその役割によって基本ソフトウェア(オペレーティングシステム)とアプリケーションソフトに大別される。WindowsやMac OS、UNIXなどは前者にあたり、ワープロソフトや表計算ソフトなどは後者に分類される。
プログラミングとは、コンピュータに人間が意図した動作を行なわせるための指示の集まり(プログラム)を作成すること。狭義には、プログラミング言語を用いて人間に可読な形式で指示をまとめたソースコードを記述する作業(コーディング)のことを指す。広義には、ソースコードをコンピュータで実行可能な形式(オブジェクトコード)に変換したり、意図したとおりに動作するかテストしたり、不具合を見つけて修正したり(デバッグ)といった一連の作業を含む。