Design and Implementation
Programming languages share properties with natural languages related to their purpose as vehicles for communication, having a syntactic form separate from its semantics, and showing language families of related languages branching one from another. But as artificial constructs, they also differ in fundamental ways from languages that have evolved through usage. A significant difference is that a programming language can be fully described and studied in its entirety, since it has a precise and finite definition. By contrast, natural languages have changing meanings given by their users in different communities. While constructed languages are also artificial languages designed from the ground up with a specific purpose, they lack the precise and complete semantic definition that a programming language has.
Many programming languages have been designed from scratch, altered to meet new needs, and combined with other languages. Many have eventually fallen into disuse. Although there have been attempts to design one "universal" programming language that serves all purposes, all of them have failed to be generally accepted as filling this role. The need for diverse programming languages arises from the diversity of contexts in which languages are used:
- Programs range from tiny scripts written by individual hobbyists to huge systems written by hundreds of programmers.
- Programmers range in expertise from novices who need simplicity above all else, to experts who may be comfortable with considerable complexity.
- Programs must balance speed, size, and simplicity on systems ranging from microcontrollers to supercomputers.
- Programs may be written once and not change for generations, or they may undergo continual modification.
- Finally, programmers may simply differ in their tastes: they may be accustomed to discussing problems and expressing them in a particular language.
One common trend in the development of programming languages has been to add more ability to solve problems using a higher level of abstraction. The earliest programming languages were tied very closely to the underlying hardware of the computer. As new programming languages have developed, features have been added that let programmers express ideas that are more remote from simple translation into underlying hardware instructions. Because programmers are less tied to the complexity of the computer, their programs can do more computing with less effort from the programmer. This lets them write more functionality per time unit.
Natural language processors have been proposed as a way to eliminate the need for a specialized language for programming. However, this goal remains distant and its benefits are open to debate. Edsger W. Dijkstra took the position that the use of a formal language is essential to prevent the introduction of meaningless constructs, and dismissed natural language programming as "foolish". Alan Perlis was similarly dismissive of the idea. Hybrid approaches have been taken in Structured English and SQL.
A language's designers and users must construct a number of artifacts that govern and enable the practice of programming. The most important of these artifacts are the language specification and implementation.
Read more about this topic: Programming Language
Other articles related to "design and implementation, design, design and":
... For more design details, see Boeing 747-400, 747-8, and 747SP ... The Boeing 747 is a large, wide-body (two-aisle) airliner with four wing-mounted engines ...
... THSRC had disputes with core systems contractor TSC over technology and responsibility for delays ... Already during the final contract negotiations, TSC objected to THSRC's intention to mix European and Japanese technology, citing safety reasons, and negotiations were drawn out ...
... The design also allowed for Shea Stadium to be expandable to 90,000 seats (by completely enclosing the grandstand), or to be later enclosed by a dome if warranted ...
... "Process design" (in contrast to "design process" mentioned above) refers to the planning of routine steps of a process aside from the expected result ... Processes (in general) are treated as a product of design, not the method of design ... found the term useful to describe the design of business processes as well as manufacturing processes ...
... Design and implementation of software varies depending on the complexity of the software ... For instance, design and creation of Microsoft Word software will take much more time than designing and developing Microsoft Notepad because of the difference in functionalities in each one ... Microsoft Windows desktop application, he/she might use the.NET Windows Forms library to design the desktop application and call its APIs like Form1.Clos ...
Famous quotes containing the word design:
“To nourish children and raise them against odds is in any time, any place, more valuable than to fix bolts in cars or design nuclear weapons.”
—Marilyn French (20th century)