Как далеко от императива может быть языковая реализация, когда компилятор / интерпретатор испускает металл - PullRequest
1 голос
/ 17 января 2012

Я не хотел спрашивать это как 'ответ' на Вопрос, который кто-то избил меня на 2 года поэтому я сделал новый вопрос. Это видно из ответа там (см. Н. Рэмси, где он пишет:

"... Однако, если вы посмотрите на новаторскую работу профессора Арвинда в MIT, его группа проектировала и создавала машины потока данных, где фундаментальные вычислительные операции более декларативны в природа .... "

что, возможно, инструкции из чистого металла могут быть декларативными или иным образом необязательными.

Кто-нибудь чувствует, как далеко можно пойти в этом направлении? Должны ли компиляторы всегда преобразовывать функциональный язык в императивный язык? Существует ли аппаратное обеспечение, позволяющее это сделать?

Мне просто любопытно - всегда смотрю прогу. яз. тренды, и в конце концов мне пришло в голову удивление, что на самом деле означает отсутствие изменяемого состояния (например).

1 Ответ

4 голосов
/ 18 января 2012

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

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

...