Simula
Simula 67 ではオブジェクト、 クラス、サブクラス、継承、動的束縛(仮想関数)、コルーチン、 ディスクリートイベントシミュレーション、ガベージコレクションの機能をもち、オブジェクト指向プログラミングの基本概念はすべてここで発案されているといえる。
Simula はプログラミングパラダイムとして最初のオブジェクト指向言語であると考えられる。その名前が示すように Simula はシミュレーションを行うために設計され、その必要性から今日のオブジェクト指向言語で使われる多くの機能のためのフレームワークを提供した。なお、Simula 当時「オブジェクト指向」という言葉はまだない。この用語はアラン・ケイが Simula の概念として70年代ごろに使い出したのが始まりといわれている。従ってその意味では Simula が世界最初のオブジェクト指向言語であり、Simula は「オブジェクト指向として再認識が可能な最古の言語」ということができる。
VLSI設計、プロセス、プロトコル、アルゴリズムといったシミュレーションや、組版、コンピュータグラフィックス、教育といったアプリケーションソフトに Simula は利用された。Simula 形式のオブジェクトは C++、Java、C# で再実装されており、Simula の影響を受けていることが知られている。C++ の開発者であるビャーネ・ストロヴストルップはBCPLのような機械語を出力し高速に動作する低レベル言語に Simula が提供する開発効率を高める機能を導入するため、C++ 開発時に Simula 67 の影響を大きく受けていることを認めている。
試着室オブジェクトはキュー(door)により試着室にアクセスできる。誰かが使用中の試着室を使おうとしたときはこのキュー(Wait (door))で待たなければならない。誰かが試着室を出るとき、列の先頭にいる者がキューからリリース(Activate door.first)されてドアキューから削除(door.First.Out)される。
Person は Process のサブクラスでありその動作は hold(店内を探索する時間と試着室で過ごす時間)を用いて記述され、試着室に出入りするために試着室オブジェクト内でメソッドを呼び出す。
メインプログラムは全てのオブジェクトを生成し、全ての Person オブジェクトをイベントキューに投入するためにアクティベートする。メインプログラムはシミュレーション時間で100分間待ってからプログラムを終了する。