Von Neumann programovací jazyky - Von Neumann programming languages
![]() | Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
A jazyk von Neumann je některý z nich programovací jazyky které jsou abstraktní na vysoké úrovni izomorfní kopie von Neumannovy architektury.[1] Od roku 2009[Aktualizace], většina současných programovacích jazyků zapadá do tohoto popisu[Citace je zapotřebí ], pravděpodobně v důsledku rozsáhlé nadvlády nad počítačovou architekturou von Neumanna za posledních 50 let.
Rozdíly mezi Fortran, C, a dokonce Jáva, i když značné, jsou nakonec omezeny tím, že všechny tři jsou založeny na stylu programování počítače von Neumann.[Citace je zapotřebí ] Pokud by například byly všechny objekty Java prováděny paralelně s asynchronně předávání zpráv a deklarativní adresování založené na atributech, pak by Java ve skupině nebyla.
Izomorfismus mezi von Neumannovými programovacími jazyky a architekturami je následující:
- programové proměnné ↔ počítačové paměťové buňky
- řídicí příkazy ↔ pokyny pro počítačový test a skok
- příkazy přiřazení ↔ načítání, ukládání instrukcí
- výrazy ↔ reference do paměti a aritmetické instrukce.
Kritika
John Backus tvrdil, že příkazy přiřazení v jazycích von Neumann rozdělují programování na dva světy. První svět se skládá z výrazy, řádný matematický prostor s potenciálně užitečnými algebraickými vlastnostmi: většina výpočtů probíhá zde. Druhý svět se skládá z prohlášení, neuspořádaný matematický prostor s několika užitečnými matematickými vlastnostmi (strukturované programování lze považovat za omezenou heuristický to však v tomto prostoru platí).
Backus[2] tvrdil, že nyní existuje v počítačová věda A bludný kruh kde dlouhodobý důraz na von Neumannovské jazyky pokračoval v nadřazenosti von Neumannovy počítačové architektury a závislost na něm učinila neumanské jazyky neekonomické a omezila tak jejich další vývoj: nedostatek široce dostupných a účinných non-von Jazyky Neumann připravily počítačové designéry o motivaci a intelektuální základy potřebné k vývoji nových počítačových architektur.[3]
Přítomnost v moderních systémech
Mnoho moderních procesorů nyní obsahuje více procesorových jader a vícevláknové programování je obvykle nejúčinnějším způsobem, jak využít více výpočetního výkonu v jednom programu. Některé moderní procesory jsou vysoce optimalizovány včetně technik provedení mimo objednávku, ale se složitou logikou k detekci, kdy to lze provést, aniž by byla porušena von Neumannova sémantika modelu logického programování. Samostatné instrukční a datové mezipaměti jsou široce používány, takže hardware a Upravená harvardská architektura, ale opět s logikou pro detekci případů, kdy optimalizace selže, aby bylo možné provést samočinně se měnící kód.
Někteří specializovaní zpracovatelé (včetně GPU ) jsou velmi široké MIMD zařízení. Univerzální CPU obvykle mají více jader, ale každé z nich je dostatečně rychlé, aby mnoho programů bylo dostatečně rychlých bez paralelizace jednotlivých úkolů. (Vlákna se běžně používají k řešení asynchronních vstupů nebo výstupů, zejména v a GUI.) Univerzální CPU jsou technicky zařízení MIMD, ale obvykle se jako MIMD označuje pouze hardware navržený od základu pro programování MIMD.
Mnoho široce používaných programovacích jazyků, jako je C, C ++ a Jáva přestali být striktně von Neumannem přidáním podpory pro paralelní zpracování v podobě vlákna. Většina však kategoricky ne-von Neumann jazyky jsou také funkční jazycích a nedosáhly rozšířeného použití.
Reference
Tento článek je založen na materiálu převzatém z Zdarma online slovník výpočetní techniky před 1. listopadem 2008 a začleněno pod "licencování" podmínek GFDL, verze 1.3 nebo novější.
- ^ [theory.stanford.edu/~aiken/other/backus.pdf Může být programování osvobozeno od von Neumannova stylu?], John Backus, Komunikace ACM, svazek 21, číslo 8, srpen 1978
- ^ odkaz již není aktivní.
- ^ Archivy IBM: John Backus