Computer programming
From Wikipedia, the free encyclopedia.
Programming is the art of creating a computer program, a concrete set of instructions for a computer to carry out.
- "There is no substitute for a working program" --Herbert Simon, a founder of AI and Nobel laureate
| Table of contents |
|
2 Programming languages 3 Software development 4 History 5 See also 6 External links |
Programs versus algorithms
An algorithm is, in one sense, an abstracted program - put differently, a program is an algorithm made concrete. However, all but the smallest programs are most easily thought of as a collection of smaller algorithms combined in a unique way - as a house is built from components.
Thus, an algorithm is a description of how a computer can be made to carry out a single, specific operation, such as sorting. A program, on the other hand, is an entity that actually implements one or more such operations in a way that is useful to people.
Programming languages
The program is written in a programming language, although it is possible to write directly in machine code, with a certain difficulty. Different parts of a program may be written in different languages.
Different programming languages work in different ways. So, programmers may create very different programs for different languages; although, theoretically, most languages can be used to create any possible program. For more information on those methods, see Programming language.
Software development
Software is a mass noun for computer programs and data. The accompanying documentation is also considered an essential part of the software, even though it doesn't involve any actual programming.
Creating software involves:
- Recognizing the need for a program to solve a problem.
- Planning the program and selecting the tools (including hardware platforms, languages, databases, browsers, development kits ) to solve the problem.
- Writing the program in the programming language of choice.
- Translation: translating the human-readable source code into either machine-readable executable code, which is done by compilers, assemblers or other tools, such as interpreters, which directly execute source languages (such as Lisp, SQL, and scripting languages) at a higher level than libraries of machine code. See metaprogramming.
- Testing the program to make sure it works; if not, return to step 3 (see code and fix).
- Documentation, deployment and delivery
History
Hero of Alexandria in the first century invented automated theatres that used analogue programming to control the puppets, doors, lights and sound effects.
Ada Lovelace, daughter of Anabella and Lord Byron (the poet), was the first recognised computer programmer. Anabella gave her love of mathematics to Ada, who after meeting Charles Babbage, translated and expanded a description of his analytical engine. Even though Babbage never completed construction of any of his machines, the work that he and Ada did earned her the title of the world's first computer programmer, see Ada Byron's notes on the analytical engine. The Ada programming language is named for her.
(To do: find name of first programmer to complete all 5 steps, including compiling and testing.) Alan Turing is often considered the father of computer science, and by proxy, programming. He was responsible for helping design and program a computer to break the German ENIGMA code during World War Two.
See also
- List of programming languages
- Computer software
- Software documentation
- Computer science
- Software engineering
- List of software engineering topics
- Programming paradigms
- Black box testing
- Callback
- Segmentation fault
External links