Computer Programming (often shortened to Programming) has come a very long way in enhancing the technology world today. Programming is a process that leads from an original formulation of a computing problem to executable programs. It involves activities such as analysis, understanding, and generically solving problems. Programming to an extent can be called;
|Computer Programming | Image credit: MDC.edu|
- An art: the expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture, producing works to be appreciated primarily for their beauty or emotional power.
- A craft: an activity involving skill in making things by hand.
- An engineering discipline: the practical application of science and mathematics, as in the design and construction of machines, vehicles, structures, roads, and systems.
Computer programming is the process of developing and implementing various sets of instructions to enable a computer to do a certain task. These instructions are considered computer programs (A computer program, or just a program, is a sequence of instructions, written to perform a specified task with a computer) and help the computer to operate smoothly.
A computer programmer (programmer, developer, coder, or software engineer) is a person who writes computer software (programs). The term programmer can be used to refer to a software developer, Web developer, mobile applications developer, embedded firmware developer, software engineer, computer scientist, or software analyst. Computer programmers write, test, debug (the process of identifying and removing errors from computer hardware or software), and maintain the detailed instructions, called computer programs, that computers must follow to perform their functions. Programmers also conceive, design, and test logical structures for solving problems by computer.
Programming has a very lengthy history - many programmers and scientists (such as Charles Barbage, Ada Lovelace, Blaise Pascal, Alan Turing etc.) have made their marks in establishing computer science/programming as a discipline, they designed and developed programming languages that set the path for others to follow. The earliest programming languages preceded the invention of the computer and were used to direct the behavior of machines such as Jacquard looms and player pianos.
The earliest languages were hard to code because many of them were coded manually without the help of automated tools. Charles Barbage's daughter in-law Ada Lovelace is considered the first programmer, she wrote the first algorithm for Barbage analytical engine.
The team that designed ENIAC were the first regular working programmers. The first person to run a program on a functioning modern electronically based computer was computer scientist Konrad Zuse, in 1941. John Mauchly's Short Code, proposed in 1949, was one of the first high-level languages ever developed for an electronic computer.
The Autocode that was developed in University of Manchester by Alick Glennie in the early 1950s, is considered the first code. The first code and compiler was developed in 1952 for the Mark 1 computer at the University of Manchester and is considered to be the first compiled high-level programming language.
Generation of Programming Language
First Generation (Machine Code): The first generation program language is pure machine code, that is just ones and zeros, e.g.0010010010101111101010110. Programmers have to design their code by hand then transfer it to a computer by using a punch card, punch tape or flicking switches. There is no need to translate the code and it will run straight away. This may sound rather archaic, but there are benefits:
- Code can be fast and efficient
- Code can make use of specific processor features such as special registers
Second Generation (Assembly or Low level Language): a programming language that consists of instructions that are mnemonic codes for corresponding machine language instructions.
Third Generation (High-Level Language): a problem-oriented programming language, as COBOL, FORTRAN, C/C++, Java or PL/1, that uses English-like statements and symbols to create sequences of computer instructions and identify memory locations, rather than the machine-specific individual instruction codes and numerical addresses employed by machine language.
Fourth Generation: Fourth-generation languages are designed to reduce programming effort and the time it takes to develop software, resulting in a reduction in the cost of software development. They are not always successful in this task, sometimes resulting in inelegant and hard to maintain code. Languages have been designed with a specific purpose in mind and this might include languages to query databases (SQL), languages to make reports (Oracle Reports) and languages to construct user interface (XUL). An example of 4th generation programming type is the declarative language: CSS, SQL etc.
Classification of Programming Language
Computer programming or Programming language can be classified using different criteria. The criteria for classifying programming language is quite many, this article will brief the major classes we have. Programming language can be classified based on;
- Structure: Programming languages are classified based on the the structure and rules of coding which programmers must conform with when writing these set of languages. The structure is determined by the program paradigm. The first sets of high-level languages are strictly structured, they are refereed to as Procedural languages (Procedure-oriented Languages) - programmers must follow the procedure strictly (e.g FORTRAN, BASIC, COBOL etc.).
Object-Oriented languages take care of the strictness of earlier sets of high-level languages, these sets address every element of a program as an object or entity thereby encouraging program reuseability and portability. examples SIMULA (the first Object-oriented language), C/C++, C#, Java, Lua. Procure-Oriented and Object-Oriented languages are Imperative in Nature. Declarative languages are used often in Database applications. SQL (Structured Query Language) is a standard language for accessing and manipulating database.
- Level: This is when languages are classified based on their level of operation, with the lowest ranked or level been the object or machine language which is the primary language of the computer. Level of programming language;
1. Machine Language - machine dependent language and need no translator before execution.
2. Low-level or Assembly language - close to machine language, these sets use the Assembler to translate codes written in Assembly language to their equivalent machine language.
3. High-Level Language - these sets of language are compiled or interpreted. They use Compilers or Interpreter as their Translators.
4. Declarative Language
5. Aspect-Oriented Language.
- Function: Programming languages could be classified based on the kind of function they perform and the purpose for which they are designed. Some are designed for a single purpose and some for two or more purposes. C/C++ are classified as general purpose programming language and highly suitable for writing system applications.
- Purpose: Programming languages are classified according to the number of purpose they can serve. Some are developed specifically to serve a purpose, one of such is HTML - the primary language for authoring web documents. It is a single purpose programming language. IPL (the first AI programming language) Prolog, LISP (LISt Programming) are for designing Artificial Intelligence (AI) sysetms and applications. Multi-purpose programming languages are designed for two or more purposes, examples include: C/C++, Java, C#, Python, PHP - are few examples of general purpose programming language.