Почему мы не разработали компьютер для непосредственного выполнения программирования высокого уровня? - PullRequest
0 голосов
/ 17 февраля 2020

Я всегда думал, что в наши дни компьютеры уже запрограммированы для непосредственного выполнения высокоуровневого программирования, но, видимо, нет. Есть ли конкретная c причина, по которой мы этого еще не сделали? Любые минусы программирования высокого уровня.

Ответы [ 2 ]

4 голосов
/ 17 февраля 2020

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

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

3 голосов
/ 17 февраля 2020

Это требует спекуляций и чрезмерного упрощения, поэтому я буду этим заниматься

Что вы описываете - это интерпретируемый язык, и вопрос в том, почему мы не используем аппаратные интерпретаторы?

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

Еще один аргумент не делать этого - security , циклы разработки оборудования длинные и даже невозможно выпустить обновленную версию процессора после массового производства, интерпретаторы печально известны своей уязвимостью с проблемами безопасности на некорректных входах.

...