OOP (オブジェクト指向プログラミング) に適した機能を備えたプログラミング言語。またそのための機能拡張(オブジェクトシステム)。
「オブジェクト指向」という言葉が正確に定義されていない手前、原則としてオブジェクトらしきものを扱えればなんでもありだが、おおざっぱには、
- ユーザー定義可能な型を扱えること
- 継承を用いた差分プログラミングが可能であること
をサポートしていれば、それを名乗る資格はあるらしい。
従来の手続き型の言語にこうした機能拡張を施すことで生まれたハイブリッド型の言語、あるいはマルチパラダイム言語が多数存在する。
例
- Ada
- Simula
- Smalltalk
- Modula-3
- C++
- Object Pascal
- Objective-C
- Java
- C#
- VB.NET
- Python
- Ruby
- OCaml
- CLOS
- Eiffel
- Sather
非オブジェクト指向言語にオブジェクト指向機能を拡張したもの(ハイブリッド型オブジェクト指向言語)
- Simula
- C++
- Objective C
- cCLOS
- Object Pascal
純粋オブジェクト指向言語
特に、その言語で扱うことのできる第一級データとしてオブジェクトしか使用できない場合、「純粋オブジェクト指向言語」と呼ぶことがある。
- Smalltalk
- SELF
- Ruby
- Io (iolanguage)