Jump to content

Языки программирования фон Неймана

Язык фон Неймана в вычислительной технике — это язык программирования , который представляет собой абстрактную изоморфную копию архитектуры фон Неймана высокого уровня . [1] По состоянию на 2009 год , большинство современных языков программирования подходят под это описание [ нужна ссылка ] , вероятно, вследствие широкого доминирования компьютерной архитектуры фон Неймана в течение последних 50 лет.

Различия между Fortran , C и даже Java , хотя и значительные, в конечном итоге ограничиваются тем, что все три основаны на стиле программирования компьютера фон Неймана. [ нужна ссылка ] Если бы, например, все объекты Java выполнялись параллельно с асинхронной передачей сообщений и декларативной адресацией на основе атрибутов, то Java не было бы в группе.

Изоморфизм между языками программирования фон Неймана и архитектурами заключается в следующем:

  • переменные программы ↔ ячейки памяти компьютера
  • операторы управления ↔ компьютерные инструкции по тестированию и переходу
  • операторы присваивания ↔ выборка и сохранение инструкций
  • выражения ↔ обращение к памяти и арифметические инструкции.

Критика [ править ]

Джон Бэкус утверждал, что операторы присваивания в языках фон Неймана разделяют программирование на два мира. Первый мир состоит из выражений , упорядоченного математического пространства с потенциально полезными алгебраическими свойствами: здесь происходит большая часть вычислений. Второй мир состоит из операторов , беспорядочного математического пространства с немногими полезными математическими свойствами ( хотя структурное программирование можно рассматривать как ограниченную эвристику , применимую в этом пространстве).

существовал Бэкус утверждал, что к 1978 году в информатике , порочный круг в котором давний акцент на языках фон Неймана сохранил главенство компьютерной архитектуры фон Неймана, а зависимость от нее сделала языки, не относящиеся к фон Нейману, неэкономичными и, таким образом, ограничила их использование. дальнейшее развитие: отсутствие широко доступных и эффективных языков, отличных от фон Неймана, лишило разработчиков компьютеров мотивации и интеллектуальной основы, необходимой для разработки новых компьютерных архитектур. [2]

Присутствие в современных системах [ править ]

Многие современные процессоры теперь содержат несколько вычислительных ядер, и многопоточное программирование обычно является наиболее эффективным способом использования большей вычислительной мощности в одной программе. Некоторые современные процессоры высоко оптимизированы с помощью таких методов, как выполнение вне очереди , но со сложной логикой, позволяющей определить, когда это можно сделать, не нарушая семантики фон Неймана модели логического программирования. Широко используются отдельные кэши инструкций и данных, что делает аппаратное обеспечение модифицированной гарвардской архитектурой , но опять же с логикой для обнаружения случаев, когда оптимизация не удалась, чтобы иметь возможность выполнять самомодифицирующийся код .

Некоторые специализированные процессоры (включая графические процессоры ) представляют собой очень широкие устройства с несколькими командами и несколькими данными (MIMD). Процессоры общего назначения обычно имеют несколько ядер, но каждое из них достаточно быстрое, поэтому многие программы работают достаточно быстро без распараллеливания отдельных задач. (Потоки обычно используются для работы с асинхронными вводами или выводами, особенно в графическом интерфейсе .) ЦП общего назначения технически являются устройствами MIMD, но обычно только аппаратное обеспечение, разработанное с нуля для программирования MIMD, называется MIMD.

Многие широко используемые языки программирования, такие как C , C++ и Java, перестали быть строго фон Неймановскими, добавив поддержку параллельной обработки в форме потоков . Однако большинство языков, категорически не фон Неймана, также являются функциональными языками и не получили широкого распространения.

См. также [ править ]

Ссылки [ править ]

  1. ^ Бэкус, Джон (1 августа 1978 г.). «Можно ли программирование освободить от стиля фон Неймана? функционального стиля и его алгебры программ» . Коммуникации АКМ . 21 (8). Ассоциация вычислительной техники: 613–641. дои : 10.1145/359576.359579 . Проверено 15 июля 2023 г.
  2. ^ Архивы IBM: Джон Бэкус
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 37efbff4390c89d2e495320ebb2e7208__1708152300
URL1:https://arc.ask3.ru/arc/aa/37/08/37efbff4390c89d2e495320ebb2e7208.html
Заголовок, (Title) документа по адресу, URL1:
Von Neumann programming languages - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)