High level abstraction for specifying the data manipulations that occur inside a computer. Different programming languages embody different ideas on good abstractions. The most common language paradigms are object-oriented, procedural, and functional. Examples of object-oriented languages are Simula, Java, and Smalltalk. Examples of procedural languages are Fortran, Cobol, and C++. Examples of functional languages are Lisp, and Forth.See also religion.