high-level language
(computer science) A computer language whose instructions or statements each correspond to several machine language instructions, designed to make coding easier. Also known as higher-level language; higher-order language.
|
Results for high-level programming language
|
On this page:
|
(computer science) A computer language whose instructions or statements each correspond to several machine language instructions, designed to make coding easier. Also known as higher-level language; higher-order language.
The first large computers, such as the ENIAC, incorporated logic that was part of the circuitry; therefore, they could only be "programmed" to a small extent by changing wiring. These were followed by programmable computers with von Neumann architecture. Instructions were independent of the circuitry. Early programs were entirely written in machine language; that is, each instruction gave the central processing unit (CPU) a specific task to do, typically one such as "move a word from one specified location to another" or "change a bit in a specified location from a 0 to a 1 unless 1 already." During the 1940s and the early 1950s, all computers were programmed in this kind of machine code. Such programming was a difficult and tedious task, requiring good knowledge of how the hardware of a computer works.
The introduction of interpreters was a major breakthrough. Interpreters translate a program written in an easier programming language into machine language. Particular locations in the CPU did not have to be specified, and commands were more closely connected to operations. A big disadvantage of such an interpreter is that it translates the program line by line into machine language, slowing down execution.
A compiler offers a better method for translating programming language into machine language. A compiler translates a whole program into machine language first. When the compiled program is run on the computer, execution time is shortened since there is no translation step going on. Grace Murray Hopper developed one of the first such compilers during the early 1950s.
During World War II, Hopper had been working with Howard Aiken at the Bureau of Ordnance Computation Project at Harvard. Aiken had built the Mark I computer, a huge electromechanical calculator. Hopper designed programs for that computer so that it performed complex calculations for the military. In 1945 she and the team at Harvard started developing Mark II. It was in this computer that a moth, in the words of Hopper, "had been beaten to death" by a relay, stopping the computer. The moth ended up Scotch-taped in their lab logbook, with the note "First actual case of bug being found." Even then the word bug denoted something that caused the computer to fail or to produce incorrect calculations.
Hopper created the first compiler for UNIVAC. Hopper's compiler turned programs written in simple English into machine code. Saying that she was going to communicate with a computer in plain English produced general disbelief. Managers had accepted that computers understand numbers; but computers that understand English seemed inconceivable. Although it made the work of programmers much easier, convincing them to use the compiler was not an easy task. They had gotten used to writing machine code. Hopper developed distaste for the phrase "but we've always done it that way."
During the 1950s several experimental and mostly mathematically oriented languages appeared. The first one that gathered wide success was FORTRAN (FORmula TRANslator). Developed in 1956, it underwent several changes and is still used today in technical and scientific applications.
Several other languages with different orientations appeared. One of them, COBOL, was developed in 1959 by Grace Hopper for business applications. BASIC, a programming language developed by the mathematicians John Kemeny and Thomas Kurtz at Dartmouth University in 1965, was first used as an educational tool, but became in the late 1970s the most popular language for the personal computer.
BASIC, and to a lesser degree FORTRAN, was often criticized because of the use of loops and branches. These produced the inconvenience that when a program grew to any length, it became more and more entangled, a phenomenon called spaghetti. A minor change anywhere in the program could have uncontrollable repercussions in the whole program, requiring tedious searches and rewriting, a process called debugging.
Languages that allow structured programming were a solution to the spaghetti problem. ALGOL, developed by an international committee, and Pascal, written by Niklaus Wirth, are such languages. These languages require that the coding be organized in logical groups, making reading and amending programs much easier.
In these languages, the software itself and the data are entirely separated. In a more recent approach, data and logical procedures are grouped into discrete units called objects. The first of these object-oriented languages was Simula I, developed in 1965. Its successors, Simula languages designed for various specific computers, introduced the concepts of "object" and "class," in which classes are objects that have similar properties. Groups of objects, or classes, can be related by inheriting characteristics from one group to its successors. SMALLTALK, which used many of the ideas behind Simula, introduced communication between objects; a later version of SMALLTALK incorporated the concept of inheritance. These concepts, which became well known with the advent of object-oriented languages, had been invented early in the 20th century by mathematicians who could not have foreseen their eventual application to computers.
Object orientation has been termed a revolution in software development. Because objects can be used independently in software development, they can also be reused as building blocks, allowing much faster development of software systems. Several other object-oriented languages have been written; among the better-known are C++, Eiffel, Object Pascal, and Clascal.
JAVA, introduced by Sun Microsystems in 1995, takes a different approach. It is designed so that programmers write an application once and the program runs on any computer platform, including Windows, Macintosh, and Linux. Although Microsoft tried to modify a version of JAVA to be specific to their Windows operational system, this was overturned by Sun as part of a lawsuit against the Microsoft monopoly in personal computers operating systems.
The noun has one meaning:
Meaning #1:
a problem-oriented language requiring little knowledge of the computer on which it will be run
A high-level programming language is a programming language that, in comparison to low-level programming languages, may be more abstract, easier to use, or more portable across platforms. Such languages often abstract away CPU operations such as memory access models and management of scope.
The term "high-level language" does not imply that the language is always superior to low-level programming languages - in fact, in terms of the depth of knowledge of how computers work required to productively program in a given language, the inverse may be true. Rather, "high-level language" refers to the higher level of abstraction from machine language. Rather than dealing with registers, memory addresses and call stacks, high-level languages deal with variables, arrays and complex arithmetic or boolean expressions. In addition, they have no opcodes that can directly compile the language into machine code, unlike low-level languages like assembly language. Other features such as string handling routines, object-oriented language features and file input/output may also be present.
Stereotypically, high-level languages make complex programming simpler, while low-level languages tend to produce more efficient code. In a high-level language, complex elements can be broken up into simpler, though still fairly complex, elements for which the language provides abstractions, keeping programmers from having to "reinvent the wheel." For this reason, code which needs to run particularly quickly and efficiently may be written in a lower-level language, even if a higher-level language would make the coding easier.
However, with the growing complexity of modern microprocessor architectures, well-designed compilers for high-level languages frequently produce more efficient code than most low-level programmers can do by hand.
Note that the terms "high-level" and "low-level" are inherently relative. Originally, assembly language was considered low-level and COBOL, C, etc. were considered high-level, as they allowed the abstractions of functions, variables and expression evaluation. Many programmers today might refer to C as low-level, as it still allows memory to be accessed by address, and provides direct access to the assembly level. For more on this distinction, see C2's page about high-level languages.
There are three models of execution for modern high-level languages:
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)
Join the WikiAnswers Q&A community. Post a question or answer questions about "high-level programming language" at WikiAnswers.
Copyrights:
![]() | Sci-Tech Dictionary. McGraw-Hill Dictionary of Scientific and Technical Terms. Copyright © 2003, 1994, 1989, 1984, 1978, 1976, 1974 by McGraw-Hill Companies, Inc. All rights reserved. Read more | |
![]() | Essay. History of Science and Technology, edited by Bryan Bunch and Alexander Hellemans. Copyright © 2004 by Houghton Mifflin Company. Published by Houghton Mifflin Company. All rights reserved. Read more | |
![]() | WordNet. WordNet 1.7.1 Copyright © 2001 by Princeton University. All rights reserved. Read more | |
![]() | Wikipedia. This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "High-level programming language". Read more |
Mentioned In: