Означает ли эволюция микропроцессоров эволюцию компиляторов и языковых стандартов? - PullRequest
1 голос
/ 11 февраля 2011

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

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Да, новые аппаратные функции отражены в языковых расширениях и на новых языках.Например, посмотрите различные векторные расширения для C и C ++, которые отражают доступность инструкций SIMD, и новые производные языки, параллельные данным, такие как CUDA и OpenCL.

Если аппаратное обеспечение значительно отличается от других, оновполне вероятно, что для этого потребуется собственный, другой язык программирования, см. поздний Transputers и их язык Occam.

1 голос
/ 11 февраля 2011

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

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

Обратите внимание на все «мощи».Скорее всего, эти изменения невидимы для вас, если вы не работаете над сборкой, машинным кодом, дизайном компилятора или языком программирования.Если нет, то беспокоиться о таких вещах - пустая трата времени.

...