Как то встречалось в книге что язык С якобы язык низкого уровня. Что меня удивило .... С вроде типичный язык высокого уровня. Низкоуровневый это ASM ну и возможно Форт (но это не точно). Ваше мнение ?
На мой взгляд, отнесение языка к высокому уровню или низкому - это замусоривание мозга. Такой уровень - это несуществующая сущность. Нигде не используется, ни на что не влияет. Ну отнесли к низким, и чо? А к высоким? А ошиблись? Вот вообще бесполезное бла-бла-бла. Смотреть надо на другие вещи. Интерпретируемый или компилируемый к примеру. Какие структуры данных доступны из коробки. Как решает вопросы многопоточки, ленивых коллекций, есть ли сборщик мусора. Т.е. все те вещи, которые реально существуют. --- Сообщение объединено, Mar 14, 2021 --- в некоторых языках нет возможности обратиться к адресам ячеек оперативной памяти, и для этого они как правило, имеют механизмы стыка с языком си. С точки зрения такого языка, Си низкоуровневый. Но повторюсь, это бла бла ни о чем. Конструктивной пользы от этой классификации - ноль.
Ну как минимум типизация. Слой абстракции: -Перечисления -Структуры -Объединения -Массивы ООП Но самое главное он не завязан на конкретный проц. Нет инструкций привязанных к конкретному железу. Код на С можно в теории перекомпилить под любую проц без переделок.
Не привязан к конкретному возможно и виртуальному железу. https://ru.wikipedia.org/wiki/Высокоуровневый_язык_программирования "Высокоуровневые языки программирования были разработаны для платформенной независимости сути алгоритмов. Зависимость от платформы перекладывается на инструментальные программы — трансляторы, компилирующие текст, написанный на языке высокого уровня, в элементарные машинные команды (инструкции)." А какой-нибудь унифицированный ASM - \что где\ можно в одну команду, \что где\ в одну нельзя - в последовательность (экая макрокоманда). Станет ли он языком высокого уровня?
Все относительно. Например, дедушка Керниган писал: "C is not a "very high level" language, nor a "big" one, and is not specialized to any particular area of application. But its absence of restrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages. ". А в целом тема бестолковая.
Обычно и сишечку и плюсы категорируют как языки высокого уровня. Но разные люди понимают под этим разные вещи, да и вообще в чем смысл этим заморачиваться?
ИМХО отнесение Цэ к низкоуровневым языкам мотивировано свойствами некоторых (возможно всех, не гурман) гавнокомпилеров: , когда пишешь вроде бы на Цэ, но приходится думать о наборе команд проца. Или о тщетности бытия. --- Сообщение объединено, Mar 14, 2021 --- Лол, в правой картинке забыли в R0 поместить значение R6, delay-slot'ом за RTS.
Почему вы не любите высокоуровневый ассемблер UASM? С/С++ считают низким из-за арифметики указателей и довольно вольно манипуляции кастингом. Высокоуровневый стандартный ассемблер это что вам нужно, для проектов уровня... эээээ.... ну например ОС. Да сильное заявления. Проблема в полной неполноценности встроенных ассемблеров высокого уровня. Что может хуже стиля ати-вити... э как там правильно... не люблю эту каку... Далее много умных мыслей... Но это потом.
https://habr.com/ru/post/592233/ Раньше Си можно было считать низкоуровневым, по потом это стало не так.
Я тут ни раз высказывал свое мнение о том, что это - глобальное мировое фиаско, что именно Си приобрел такую популярность и стал стандартом, а не какая-нибудь прелестная Ада или хотя бы Паскаль. Но имеем то, что имеем, чего уж теперь сидеть и рефлексировать по этому поводу.