Задать вопрос

Являются ли все языки программирования следствием архитектуры процессора?

Если придумать принципиально другую архитектуру процессора, чем Intel/AMD, то приведет ли это к тому, что языки программирования станут тоже принципиально другими? Или ЯП имеют слабую связь / вообще не имеют связь с архитектурой процессора?
  • Вопрос задан
  • 2606 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Пара встречных вопросов:
1. что считать принципиально другой архитектурой? кроме упомянутых вами Intel/AMD, есть еще такие штуки как arm/mips, arc, itanium - все они в той или иной степени отличаются друг от друга.

2. следствием какой архитектуры, по вашему мнению, являются языки вроде haskell или prolog? А, например, всякие DSL - тоже ведь языки программирования, просто узко специализированные.

Я не думаю, что языки программирования вообще не имею связь с процессором (как минимум компилятор/интерпретатор должен исполняться на процессоре), но, мне кажется, что ответить на ваш вопрос просто нельзя, пока нет четкого осознания, что такое "другая архитектура". С другой стороны языки являются отражением той или иной модели вычислений, если предложить новую модель, то для описания вычислений в такой модели понадобится новый язык, но будет ли он принципиально другим, и понадобится для него принципиально другой процессор не понятно (как пример, императивные языки vs декларативные, и те и те исполняются на одних процессорах).
Ответ написан
Комментировать
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Да, конечно. Для нового типа процессора придумали новый язык программирования Corelet.
https://dl.dropboxusercontent.com/u/91714474/Paper...
Ответ написан
Комментировать
VyusFire
@VyusFire
Студент, padavan, linux-mint-user.
Изменение архитектуры процессора приведет к изменению только языков так сказать ассемблерного типа. Так как языки создавались с целью облегчения написания программ, в них старались заложить абстрактные концепции, которые позволили бы программистам работать с "виртуальной машиной" (абстрактной машиной в которой нет ограничений на память, время процессора и т.д. -- данное определение я воспроизвел по памяти и оно может быть ошибочным :-) ). Проще говоря есть так называемые ЯВУ -- Языки Высокого Уровня. Они как бы аппаратно независимы и позволяют писать кросплатформенный код (например Си). Т.к. за трансляцию кода ЯВУ в машинный код отвечают виртуальные машины, интерпретаторы и компиляторы именно они бы претерпели серьезные изменения в случае смены архитектуры.
P.S. Сами языки в случае смены архитектуры изменятся лишь самую малость (в основном библиотеки для работы с вводом/выводом и тому подобные).
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы