Язык С ?

Discussion in 'WASM.BEGINNERS' started by asmlamo, Mar 14, 2021.

  1. asmlamo

    asmlamo Well-Known Member

    Blog Posts:
    0
    Joined:
    May 18, 2004
    Messages:
    1,742
    Как то встречалось в книге что язык С якобы язык низкого уровня.
    Что меня удивило ....
    С вроде типичный язык высокого уровня.
    Низкоуровневый это ASM ну и возможно Форт (но это не точно).

    Ваше мнение ?
     
  2. q2e74

    q2e74 Well-Known Member

    Blog Posts:
    0
    Joined:
    Oct 18, 2018
    Messages:
    998
    На мой взгляд, отнесение языка к высокому уровню или низкому - это замусоривание мозга. Такой уровень - это несуществующая сущность. Нигде не используется, ни на что не влияет. Ну отнесли к низким, и чо? А к высоким? А ошиблись? Вот вообще бесполезное бла-бла-бла.

    Смотреть надо на другие вещи. Интерпретируемый или компилируемый к примеру. Какие структуры данных доступны из коробки. Как решает вопросы многопоточки, ленивых коллекций, есть ли сборщик мусора. Т.е. все те вещи, которые реально существуют.
    --- Сообщение объединено, Mar 14, 2021 ---
    в некоторых языках нет возможности обратиться к адресам ячеек оперативной памяти, и для этого они как правило, имеют механизмы стыка с языком си. С точки зрения такого языка, Си низкоуровневый. Но повторюсь, это бла бла ни о чем. Конструктивной пользы от этой классификации - ноль.
     
  3. rmn

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    И какими же типичными признаками языка высокого уровня он обладает?
     
  4. asmlamo

    asmlamo Well-Known Member

    Blog Posts:
    0
    Joined:
    May 18, 2004
    Messages:
    1,742
    Ну как минимум типизация.

    Слой абстракции:
    -Перечисления
    -Структуры
    -Объединения
    -Массивы

    ООП

    Но самое главное он не завязан на конкретный проц.
    Нет инструкций привязанных к конкретному железу.
    Код на С можно в теории перекомпилить под любую проц без переделок.
     
  5. R81...

    R81... Active Member

    Blog Posts:
    0
    Joined:
    Feb 1, 2020
    Messages:
    166
    Не привязан к конкретному возможно и виртуальному железу.
    https://ru.wikipedia.org/wiki/Высокоуровневый_язык_программирования
    "Высокоуровневые языки программирования были разработаны для платформенной независимости сути алгоритмов. Зависимость от платформы перекладывается на инструментальные программы — трансляторы, компилирующие текст, написанный на языке высокого уровня, в элементарные машинные команды (инструкции)."
    А какой-нибудь унифицированный ASM - \что где\ можно в одну команду, \что где\ в одну нельзя - в последовательность (экая макрокоманда).
    Станет ли он языком высокого уровня?
     
    Last edited: Mar 14, 2021
  6. MaKaKa

    MaKaKa Member

    Blog Posts:
    0
    Joined:
    Nov 25, 2020
    Messages:
    53
    Все относительно. Например, дедушка Керниган писал: "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. ". А в целом тема бестолковая.
     
  7. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    Обычно и сишечку и плюсы категорируют как языки высокого уровня. Но разные люди понимают под этим разные вещи, да и вообще в чем смысл этим заморачиваться?
     
  8. f13nd

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    ИМХО отнесение Цэ к низкоуровневым языкам мотивировано свойствами некоторых (возможно всех, не гурман) гавнокомпилеров:
    [​IMG] ,
    когда пишешь вроде бы на Цэ, но приходится думать о наборе команд проца. Или о тщетности бытия.
    --- Сообщение объединено, Mar 14, 2021 ---
    Лол, в правой картинке забыли в R0 поместить значение R6, delay-slot'ом за RTS.
     
    q2e74 likes this.
  9. rmn

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    Это все и в асме есть :)
     
  10. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    614
    Почему вы не любите высокоуровневый ассемблер UASM?
    С/С++ считают низким из-за арифметики указателей и довольно вольно манипуляции кастингом.
    Высокоуровневый стандартный ассемблер это что вам нужно, для проектов уровня... эээээ.... ну например ОС. Да сильное заявления.
    Проблема в полной неполноценности встроенных ассемблеров высокого уровня. Что может хуже стиля ати-вити... э как там правильно... не люблю эту каку...
    Далее много умных мыслей... Но это потом.
     
    Last edited by a moderator: May 9, 2021
  11. M0rg0t

    M0rg0t Well-Known Member

    Blog Posts:
    0
    Joined:
    Oct 18, 2010
    Messages:
    1,585
    Intro, я люблю юасм, но Си все равно проще (увы)
     
  12. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    614
    https://habr.com/ru/post/592233/
    Раньше Си можно было считать низкоуровневым, по потом это стало не так.
     
  13. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    Я тут ни раз высказывал свое мнение о том, что это - глобальное мировое фиаско, что именно Си приобрел такую популярность и стал стандартом, а не какая-нибудь прелестная Ада или хотя бы Паскаль. Но имеем то, что имеем, чего уж теперь сидеть и рефлексировать по этому поводу.