Насколько далеко от императивов может быть языковая реализация, когда компилятор / интерпретатор испускает металл?
Я не хотел задавать это как "ответ" на вопрос, который кто-то избил меня на 2 года, поэтому я задал новый вопрос. Это видно из ответа там (см. Н. Рэмси, где он пишет:
"... Однако, если вы посмотрите на новаторскую работу профессора Арвинда в Массачусетском технологическом институте, его группа спроектировала и создала машины потока данных, в которых фундаментальные вычислительные операции носят более декларативный характер".
что, возможно, инструкции из чистого металла могут быть декларативными или иным образом необязательными.
Кто-нибудь чувствует, как далеко можно зайти в этом направлении? Должны ли компиляторы всегда преобразовывать функциональный язык в императивный язык? Существует ли аппаратное обеспечение, позволяющее это сделать?
Мне просто любопытно - всегда смотрю прогу. яз. тренды, и наконец мне пришло в голову удивиться, что на самом деле означает отсутствие изменяемого состояния (например).
1 ответ
Не обязательное оборудование существует и используется для специализированных приложений. Программируемые пользователем вентильные матрицы (FPGA) являются хорошим примером.
Тем не менее, модель машины фон Неймана (которая лежит в основе нашей нынешней архитектуры процессоров) оказалась чрезвычайно полезной и универсальной, и много работы было потрачено на то, чтобы сделать императивные процессоры быстрыми и дешевыми. Хотя можно исследовать не обязательные компьютерные концепции, в настоящее время, похоже, это не стоит усилий - создание декларативной машины в качестве интерпретатора на основе императивной машины намного дешевле и быстрее, чем настоящая декларативная машина,