[1] As of 2009[update], most current programming languages fit into this description[citation needed], 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 all three being based on the programming style of the von Neumann computer.
The first world consists of expressions, an orderly mathematical space with potentially useful algebraic properties: most computation takes place here.
Separate instruction and data caches are widely used, making the hardware a Modified Harvard architecture, but again with logic to detect cases where the optimization fails, to be able to execute self-modifying code.
Many widely used programming languages such as C, C++ and Java have ceased to be strictly von Neumann by adding support for parallel processing, in the form of threads.