Wikisage, the free encyclopedia of the second generation, is digital heritage
A Programming language is a human-readable set of instructions designed to express computations and actions that can be performed by a machine, in particular a computer. Instructions can be arranged in different combinations to create programs to solve particular problems or to accomplish more general or routine tasks.
Programs can be either compiled into a set of instructions directly executable by the target machine or interpreted and executed 'on the fly'. In some instances, Java being one of the most notable of these, a program is compiled into a more general set of instructions called bytecode not intended to run on any specific machine that is then compiled or interpreted at run-time into machine specific instructions.
Some programming languages have written standard specifications of their syntax and semantics (such as the ANSI/ISO standards for C and C++). Others are defined by a common or dominant implementation.
The earliest programming languages were used before the invention of the computer to direct the behaviour of machines like the Jacquard loom (a weaving machine) and the player piano. These machines did no computation but performed actions through mechanical means. The Jacquard loom was the first device to use punch cards. Holes were made in stiff paper or cardboard that controlled the mechanical operation and weave pattern. Cards could be arranged in different positions to create diffent pattern combinations. The player piano used perforated paper rolls instead. The paper roll would run over the "tracker bar" (reading bar) where perforations would cause a pressure differential to trigger switching valves that controlled the note channels.
Charles Babbage suggested the idea of punch cards as a means to control the mechanical calculator he designed. Punch cards were later used both to control the operation of the earliest reprogrammable computers and to store data. These methods used practically no abstraction and required expert knowledge of the hardware and function of the target machines. The first high-level programming language, Plankalkül, was developed by Konrad Zuse for the German Z3 but due to various factors was only implemented in 1998 and 2000.
As these machines got more powerful the complexity and size of programs created for them made it increasingly more difficult to write programs in machine code or first generation languages. These were superseded by second generation assembly languages commonly called "assembly" and knowledge of machine specific codes were no longer required. Instead mnemonics were used that resemble human language words. Though still machine specific, programmers could concentrate on the instructions making up the programs instead of the codes that represent the instructions.