it-roy-ru.com

Почему C до сих пор в категории языка высокого уровня?

Во многих учебниках по языку программирования C говорится, что C - это язык программирования высокого уровня, но многие онлайн-преподаватели говорят, что C также является языком программирования среднего уровня. Почему это так?

12
CodeIt

Исторически все, что абстрагируется от ассемблерного кода, называлось высокоуровневым. C, конечно, делает это. Это определение также относительно четкое, в отличие от следующего.

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

Так что теперь "высокий уровень" обычно означает "много абстрагируется от аппаратного обеспечения", а "низкий уровень" означает "мало абстрагируется". Это определение, которое используют ваши репетиторы. Однако не все согласны с этим, и старые тексты волшебным образом не принимают новую терминологию, поэтому вы все еще видите, как старое использование "высокого уровня" (под которым C является высоким уровнем) распространяется вокруг. Имейте в виду, что многие хорошие книги по Си - в основном более новые издания книг, выпущенных двадцать лет назад.

34
user7043

Это язык более высокого уровня, чем машинный код (сборка), с этой точки зрения исходят книги и руководства по программированию на C.

В этом отношении это язык программирования высокого уровня.

Тем не менее, он все еще очень близок к аппаратному обеспечению - гораздо больше, чем другие, более современные языки (Java, C # и т.д.) - если смотреть с этой точки зрения, это язык программирования среднего уровня ,.

12
Oded