People can understand each other because they communicate using a common language. Language serves as their medium of communication. The world has a ton of languages that pertains to a certain country, region or continent of the world. For example, Filipino and English are the official languages of the Philippines and it has approximately 175 languages (Gordon, 2005). Computer, too, has different programming languages that you can use for a specific area of computing. Learning programming languages will develop the ability to write and translate computer programs in certain areas of computing. According to Aaby (1996), a programming language is a notation for writing programs. It includes the computational model, the syntax and semantics of programs, and the pragmatic considerations that shape the language. The first programming language predates the computer and it was only codes. Ada Lovelace, the first computer programmer, translated Italian mathematician Luigi Menabrea’s memoir on Charles Babbage’s difference engine, the Analytical Engine during the nine-month period in 1842-1843. In her article, she appended a detailed method for calculating Bernoulli numbers with the Engine. It was recognized by historians as the world’s first computer program. After Babbage’s difference engine, Jacquard Loom used holes in punched cards to represent sewing loom arm movements in order to generate decorative patterns automatically (Sammet, 1969). Plankalkul, the first high level language was developed by the German scientist Konrad Zuse. The name Plankalkul means program calculus expressing computations. It was a project he had begun in 1943 as a proposal for his Ph. D. dissertation. In 1945, he wrote algorithms in the language for a wide variety of problems (Sebesta, 2005).
Computer can only understand and execute a programming language that is written in its own native binary machine code, the machine language. Machine language is the lowest possible programming language that a computer program can be written. The other levels of programming languages are said to be high and low levels and they can be resembled to the machine language.
Machine languages are also known as the first generation language or 1GL. Writing a program in the machine language is difficult because it is hard to find and identify an error in the lines of the program once you made a mistake. The programs written in machine language are composed of strings of 1’s and 0’s and are stored in a binary numbers. Low level language is the language one higher from the machine language. This language is easier than a machine language because it is a symbolic represented language rather than 0’s and 1’s and allows symbolic resignation of memory. Assembly language is an example of the low level language. This language is translated into machine code using a program called assembler. Lastly, high level languages are languages closest to human languages. It also permits faster development of large programs. On the other hand, high level languages are languages called fourth generation language or 4GL. They can be converted to a machine language in two ways: compile the program using a compiler program or interpret the program using an interpreter program. C++ and Scheme are examples of a compiled and an interpreted programming language (Bigelow, 1996).
Hasan (1997) stated that a paradigm is a fundamental of high level model of a computation – ignoring information such as what data or control structures are available, exactly how variables are passed to procedures and etc. According to Sebesta (2005), programming languages are categorized into four: imperative, functional, logic, and object-oriented. Imperative programming is also known as procedural programming. Imperative programming specifies the steps the program must take to reach the desired state. It is a programming paradigm based on a procedure call. It is often a better alternative than unstructured programming in many situations because it is easier to maintain and it is not a complex to write than the latter (IEEE, 2008). In contrast with the imperative programming style, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes on application of functions while imperative programming gives emphasize on the changes of state (Hudak, 1989). The use of mathematical logic for computer programming is called logic programming. It is a rule-based language in which rules are specified in no particular order, and the language implementation system must choose an execution order that produces the desired result (Sebesta, 2005). Object-oriented programming or OOP is a programming paradigm that uses objects and their interactions to design applications and computer programs. An OOP language must include the features such as encapsulation, modularity, polymorphism, and inheritance. Many modern programming languages now support OOP (Kay, 2008). Studying programming languages enables the programmer to decide what is appropriate for a certain application that will work efficiently.
Computers have been applied to different areas: from controlling nuclear power plants to providing video games in mobile phones. Programming languages are developed with different goals. They are designed to solve a specific kind of problem. Programming languages are associated with the areas of computer applications such as business applications, web software and applications, artificial intelligence, and systems programming. Spreadsheets systems and database systems are common applications in business applications that are widely used, in both homes and business. They can be used on small computers and developed for business. There are also programming languages that were designed to suit web software or applications. To make the World Wide Web or WWW dynamic and interactive, small applications like applet in Java, audio and video are embedded in the web with the use of the scripting languages and server-side languages. Programming languages can be also applied in artificial intelligence. Making games intelligent as humans and making an editor intelligent that suggests the correct spelling of what you are trying to type. There are also programming languages designed and developed used to write systems software. System software refers to the support software of an operation system. The language for this domain must provide fast execution. Furthermore, it must have low-level features that allow the software interfaces to external device to be written (Sebesta, 2005).
The history of programming languages has evolved from a primitive one to supporting complicated ideas to express instruction to the computers. This is also evident in the level of programming languages which starts from machine code to high level programming languages, as Bigelow (1996) classified it as machine level, low level or high level programming languages. The four bins category stated by Sebesta (2005) indicates the design of languages to specific area of computing. Sebesta (2005) also explained that programming languages are developed with different goals and these are associated to the areas of computer applications such as in business, web, artificial intelligence, and systems programming. Sebesta (2005) also explained that programming languages are developed with different goals and these are associated to the areas of computer applications such as in business, web, artificial intelligence, and systems programming. Programming languages make computer program easier to write. Its primary reason is to make it easier for people to read and understand programs. Looking through the evolution of programming languages, it is the desire to reduce errors by removing the tedious aspects of programming. Having programming languages was also the need to be able to share one’s code with peers, and to enable other people to maintain it. This meant that a coder needed to be able to express their intent in the code, as well as implement the appropriate algorithms that met the application’s requirements. Studying concepts of programming languages can also increase the ability to learn new languages.
Aaby, A. A. (1996). Introduction to programming languages. Retrieved August 1, 2008 from the World Wide Web: ftp://ftp.blackcube.org/pub/burks.bton.ac.uk_burks_software/burks/
Bigelow, K. (1996). Levels of programming languages. Retrieved August 1, 2008 from the World Wide Web: http://www.play-hookey.com/computers/language_levels.html.
Gordon, R. G., Jr. (2005). Ethnologue: Languages of the world (15th ed.). Retrieved August 1, 2008 from the World Wide Web: http://www.ethnologue.com/show_country.asp?name=PH.
Hasan, H. (1997, July). Paradigms of programming languages. Retrieved August 6, 2008 from the World Wide Web: http://www.uow.edu.au/~hasan/buss930/prog/paradigm.htm.
Hudak, P. (1989, September). Conception, evolution, and application of functional programming languages. New York: ACM.
IEEE (2008). Use of procedural programming languages for controlling production systems. Retrieved August 13, 2008 from the World Wide Web: http://ieeexplore.ieee.org/xpl/ freeabs_all.jsp?arnumber=120848.
Kay, A. (2003). On the meaning of object-oriented programming. Retrieved August 13, 2008 from the World Wide Web: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/
Sammet, J. E. (1969). Programming languages: History and fundamentals. Upper Saddle River, New Jersey: Prentice-Hall.
Sebesta, R. W. (2005). Concepts of programming languages (7th ed.). Boston: Pearson Education, Inc.