Вопрос

Чтение в Википедии:

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

http://en.wikipedia.org/wiki/High_level_language

Что именно это означает?Какие операции предоставляют другие языки программирования, которых нет в C?

Это было полезно?

Решение

Учитывая контекст и тему статьи, в статье имеется в виду термин "скалярный", как он определен в самом языке Си.На языке Си арифметика типы и указатель типы вместе называются скалярный типы (см. 6.2.5/21).В повседневном языке мы часто видим, как эти типы называются Базовые модели типы или встроенный типы (хотя правильным формальным термином, опять же, является, скалярный).Дело в том, что скалярный предполагается, что это типы, которые сразу (или почти сразу) поддерживаются аппаратным обеспечением.Большинство неконцептуальных операций в C работают со скалярными типами и только со скалярными типами.

Если вы взглянете на историю языка Си, то увидите, что ранние версии C были настолько ограничивающими скалярный, что вы даже не могли присвоить один объект struct другому объекту struct (или передать его функции / вернуть из функции по значению).Возможность копирования структуры на основном языке была добавлена в C позже.И по сей день это остается, по сути, единственной нескалярной операцией во всем основном языке.

С другой стороны, C ++, как и другие языки более высокого уровня, поддерживает операции над определяемый пользователем типы, которые по определению не являются скалярный, или на других типах, которые не имеют немедленной поддержки со стороны аппаратного обеспечения.

P.S.Нет, смысл, который пытается подчеркнуть статья, не имеет ничего общего с вектор операции, в отличие от скалярный операции.Поддержка векторных операций, конечно, полностью ортогональна уровню языка.Вы можете выполнять векторные операции как на языках низкого уровня, так и на языках высокого уровня.Термин скалярный используется в том смысле, который я описал выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top