Von Neumann programming languages

Von Neumann programming languages

A von Neumann language is any of those programming languages that are high-level abstract isomorphic copies of von Neumann architectures. As of 2004, most current programming languages fit into this description, likely as a consequence of the extensive domination of the von Neumann computer architecture during the past 50 years.

The differences between FORTRAN, C, and even Java, although considerable, are ultimately constrained by the fact that all three are based on the programming style of the von Neumann computer (if, for example, Java objects were all executed in parallel with asynchronous message passing and attribute-based declarative addressing, then Java would not be in the group).

The isomorphism between von Neumann programming languages and architectures is in the following manner:
*program variables → computer storage cells
*control statements → computer test-and-jump instructions
*assignment statements → fetching, storing instructions
*expressions → memory reference and arithmetic instructions

Using a metaphor from Backus, assignment statements in von Neumann languages split programming into two worlds. The first world consists of "expressions", an orderly mathematical space with potentially useful algebraic properties: most computation takes place here. The second world consists of "statements", a disorderly mathematical space with few useful mathematical properties (structured programming can be seen as a limited heuristic that does apply in this space, though).

Backus claimed that there exists now in computer science a vicious cycle where the long standing emphasis on von Neumann languages has continued the primacy of the von Neumann computer architecture... and our dependency on "it" has made non-von Neumann languages uneconomical and thus limited their further development: the lack of widely available and effective non-von Neumann languages has deprived computer designers of the motivation and the intellectual foundation necessary to develop new computer architectures. [IBM Archives, http://www-03.ibm.com/ibm/history/exhibits/builders/builders_backus3.html]

Some examples of "non"-von Neumann languages are: APL, FP, FL, J, NGL, ZPL, Mercury, and Plankalkül.

References

External links

* [http://www.stanford.edu/class/cs242/readings/backus.pdf Can Programming Be Liberated from the von Neumann Style?]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • John von Neumann — Von Neumann redirects here. For other uses, see Von Neumann (disambiguation). The native form of this personal name is Neumann János. This article uses the Western name order. John von Neumann …   Wikipedia

  • von Neumann, John — orig. Johann Von Neumann born Dec. 3, 1903, Budapest, Hung. died Feb. 8, 1957, Washington, D.C., U.S. Hungarian born U.S. mathematician. After receiving his Ph.D. from the University of Budapest, he emigrated to the U.S. to teach at Princeton… …   Universalium

  • Von Neumann architecture — The term Von Neumann architecture, aka the Von Neumann model, derives from a computer architecture proposal by the mathematician and early computer scientist John von Neumann and others, dated June 30, 1945, entitled First Draft of a Report on… …   Wikipedia

  • von Neumann machine — ▪ computer science  the basic design of the modern, or classical, computer. The concept was fully articulated by three of the principal scientists involved in the construction of ENIAC during World War II Arthur Burks, Herman Goldstine, and John… …   Universalium

  • Programming paradigm — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concu …   Wikipedia

  • J (programming language) — Not to be confused with the J++ or J# programming languages. Infobox programming language name = J paradigm = array, functional, function level, tacit year = 1990 designer = Ken Iverson Roger Hui developer = JSoftware latest release version =… …   Wikipedia

  • Lucid (programming language) — Infobox programming language name = Lucid logo = paradigm = Dataflow year = 1976 designer = Edward A. Ashcroft,William W. Wadge developer = ,Wadge latest release version = latest release date = typing = Typeless implementations = pLucid dialects …   Wikipedia

  • Computer programming — Programming redirects here. For other uses, see Programming (disambiguation). Software development process Activities and steps …   Wikipedia

  • Value-level programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Linear programming — (LP, or linear optimization) is a mathematical method for determining a way to achieve the best outcome (such as maximum profit or lowest cost) in a given mathematical model for some list of requirements represented as linear relationships.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”