コンピュータ
コンピュータの中枢部であるCPUが理解し実行できる形式は機械語だけだが、ソフトウェア開発をする人は通常はプログラミング言語でソフトウェアを記述しそれをコンパイラを使って機械語に翻訳し、その機械語を実行させる。プログラミング言語は低水準言語とも呼ばれる機械語に近いアセンブリ言語と、人間が理解しやすい自然言語に近い形式で記述する高水準言語に大別できる。
機械語は「0」か「1」を並べたビット列命令(二進コード、バイナリコード)で表現される。
「機械語」も参照
アセンブリ言語はCPUの命令セットにほぼ対応した記述ができるプログラミング言語で、開発難易度は高くCPUの種類(命令セット)に依存するが、コンピューターを細かく制御でき、高速性が必要な制御系などで使用されている。
「アセンブリ言語」も参照
高水準言語は時代・用途・特性などにより多種類あり、特に有名な言語を挙げるだけでも、1957年に誕生し「最初の高水準言語」とされる科学技術計算用のFORTRAN、1959年に誕生し金融系の事務計算を得意とし2020年代の現在でも大企業のメインフレームで使われ続けているCOBOL、1964年に大学の教育用に誕生し1970年代後半から1980年代のマイクロコンピュータやパーソナルコンピュータで普及したBASIC、1958年に登場しリスト処理に優れ1950年代や60年代の方式の人工知能用に発展したLISPなどが使われたが、最初に挙げた3言語は行番号(文番号)やgoto文を多用する言語であったので記述に混乱が生じがちで開発時のデバッグや運用開始後の改良作業も困難になりがちだったので、1972年にはその欠点を克服する構造化プログラミングが可能なC言語が登場し現在に至るまで広く使われるようになり、1983年にはそのC言語をオブジェクト指向に対応させたC++が登場し 組み込みシステムのソフト開発や 動作の高速性を求められるコンピューターゲームの開発 等々で現在も重要な役割を果たしており、更に1995年にはCとC++の系統に属し「Write once, run anywhere」というスローガンを掲げコードを1回書けばどのプラットフォームでも走り ネットの分散コンピューティングにも向いており おまけに様々な要素を言語仕様自体として最初から含んでいるという長所があるJavaが登場し、2020年代の現在でも常に人気最上位にランクインする状態となっている。
1977年 ビル・ジョイが開発した1BSDが初めて配布される。 Apple ComputerがパーソナルコンピュータApple IIを発売。 富士通、日本初のベクトル型プロセッサFACOM 230-75APUを開発し航空宇宙技術研究所に納入。
1978年 米国シカゴで最初の電子掲示板「CBBS」が開設される。
1979年 NECがPC-8001を発売。 ビジコープ、VisiCalcを発売。世界初の表計算ソフトであり、Apple IIのキラーアプリケーションとなる。 オラクル、商用初の関係データベース製品である Oracle 2をリリース。
1980年 CERNの研究員ティム・バーナーズ=リーが、World Wide Webの元となるEnquireを開発。 シャープがポケットコンピュータPC-1210を発売。ポケットサイズでBASICが動作する初のデバイス。
1981年 米IBMがPC DOSを搭載したパーソナルコンピュータIBM PCを発売。以後、マイクロソフト社から各社にMS-DOSがOEM供給される。 ゼロックス、Xerox Starを発売。GUIを装備した初の商用ワークステーションであった。
1982年 米サン・マイクロシステムズがTCP/IPを採用したワークステーションを発売。 GRiD Systemsが世界初の折りたたみ型ラップトップコンピュータGrid Compassを発売。 世界初の(狭義の)コンピュータウイルスElk Cloner(英語版)が出現。 NECがPC-9801を発売。 エプソンが初期のハンドヘルドコンピュータであるHC-20を発売。
1983年 リチャード・ストールマンがGNUプロジェクトを開始。
1984年 Apple ComputerがMacintoshを発売。
「制御プログラム」とエンジニアに呼ばれるものは、別名では「狭義のオペレーティングシステム (OS) 」と言い(そしてパーソナルコンピュータの世界ではこれのみを「OS」と呼んでおり)、その主な役割はジョブ管理、タスク管理、記憶管理などである。この制御プログラムあるいはOSを細分すると、カーネルとデバイスドライバとファイルシステムに分けることができる。
カーネルはOSの中核であり、その主な役割は次のようなことである。
ジョブ管理
タスク管理
記憶管理
システムコールサービス - システムコールサービスのAPI(Application Programming Interface、アプリケーションプログラミングインタフェース)はアプリケーションソフトから、OSが用意しているさまざまな機能を利用するための仕組みであり、アプリケーション開発の手間が減り、統一的な操作性も実現できる。