Three Categories of Programming Languages
The methods of categorizing programming languages are numerous. One categorization system is built around how the programmer has to think to create a functional program in that language, and what tools are there to extend the language and make the programmer's job less repetitious.
-
Procedural Programming Languages
-
The simplest programming languages to understand are called procedural programming languages. Procedural languages execute their instructions in a straightforward, linear fashion. If code needs to be re-used, it's parceled off into a subroutine. A lot of procedural languages have had additional features tacked on to them. The C programming language is nearly the archetype of a procedural language.
Object-Oriented Programming Languages
-
Object-oriented programming languages allow the programmer to define classes, with attributes, and call on them. Classes can be thought of as procedural language subroutines that exist independently of the program itself. If an object-oriented program calls on a set of tools for parsing XML files, the programmer doesn't need to re-create those tools for each new program. Classes store hierarchical information, meaning that attributes of higher order class are inherited by lower order classes. For example, the class "automobile" might have the attributes "wheels" and "engines," and contain the subclasses of "cars" and "trucks," both of which have the features "wheels" and "engines" and don't need to specify them because "cars" and "trucks" are subclasses of "automobiles." C++, C# and Java are all examples of object-oriented programming languages.
-
Functional Programming Languages
-
Functional programming languages break programming down into data and lists, and build everything else that would be used in a procedural or object-oriented language out of those two elements. This makes functional languages very flexible, but the mind set needed to use them is almost completely alien to someone who's used to programming a procedural or object-oriented language. Functional languages are used in AI research and mathematics. Examples of functional programming languages are Lisp and Haskell.
Other Categorization Systems
-
Another method of categorizing programming languages contrasts performance with utilitarianism. High-performance languages compile executables, and provide access to low-level functions like memory management and pointers. They require more work from the programmer to get something functional, but the results will run very quickly. High-utility languages are designed for fast programming, and are usually dynamic – the code is interpreted each time it's run, which makes the program itself run slowly compared with a compiled language. C and C++ are high-performance programming languages. Python and Ruby are high-utility languages.
-