#1. Этапы трансляции программы в машинный код. Стандарты | Язык C для начинающих

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 พ.ย. 2024

ความคิดเห็น • 79

  • @Mertvyy_chel
    @Mertvyy_chel ปีที่แล้ว +36

    Автор, вы единственный человек который рассказывает всё досконально, спасибо вам за такую работу)
    Сегодня я не смогу просмотреть данное видео, но завтра после полудня обязательно обращу на него внимание)

  • @Alexey-gp7vc
    @Alexey-gp7vc ปีที่แล้ว +37

    Историческая часть - огонь! Курс посмотрю хотя бы за тем, чтобы лучше понимать работу питона :)

    • @skvizix9106
      @skvizix9106 10 หลายเดือนก่อน +1

      Это Си

    • @user-qy8ul3xo2x
      @user-qy8ul3xo2x 9 หลายเดือนก่อน

      Это питон ​@@skvizix9106

    • @АндрейМирошников-е1р
      @АндрейМирошников-е1р 5 หลายเดือนก่อน

      ​@@skvizix9106вы далеки от программирования и вообще от cs

    • @qwertymangames1800
      @qwertymangames1800 3 หลายเดือนก่อน

      питон очень сильно ушёл от Си. Там и конструкции функциональных языков есть вроде генераторов, map, reduce, filter.
      Тогда уже и Haskell можешь посмотреть, если хочешь разобрать функциональную составляющую современных языков.

    • @epsilon.sw_
      @epsilon.sw_ หลายเดือนก่อน

      @@qwertymangames1800 а для haskell нужно посмотреть курс лекций по лямбда-исчислению. Но тогда лучше почитать книжки по математической логике, чтоб понять этих математиков. А для чтения этих книг лучше ознакомиться с теорией множеств. А если говорить о математической логике, то лучше почитать совместный труд Рассела и Вайтхеда. Начать с истоков так сказать. Изучить проблематику, откуда возникла потребность в таком подходе к математике. А значит надо задать вопрос, что есть математика?

  • @РоманПавлов-ц9к
    @РоманПавлов-ц9к ปีที่แล้ว +12

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

  • @jirniy_bob2000
    @jirniy_bob2000 ปีที่แล้ว +16

    Молодец! Как всегда - актуальный и сделанный с большой любовью материал... Автор сочетает в себе крепкого профи и талант потрясающего Учителя! Представляю, сколько труда стоит каждый подобный ролик..... Очередной раз "снимаю шляпу" перед Учителем за великолепный труд .....

  • @Сэцуко-й6й
    @Сэцуко-й6й ปีที่แล้ว +7

    ХОРОШЕЕ начало. Выбрал программирование как хобби. Не знаю чем мозги занять а тут просто крутое изложение материала. Пробывал лекции смотреть МФТИ . Надеюсь в совокупности с этим пойму.

    • @JamesSmith-ix5jd
      @JamesSmith-ix5jd ปีที่แล้ว +1

      Пиши прикладные программы, на теории далеко не уедешь, нужно поддерживать интерес решая собственные задачи.

    • @КонстантинФандорин-й7ч
      @КонстантинФандорин-й7ч 8 หลายเดือนก่อน

      А что за лекции МФТИ? Можешь ссылку кинуть?

  • @bonterkoz
    @bonterkoz ปีที่แล้ว +11

    Какие же классные видеоуроки! Эх, где мои 15 лет 😢😅

  • @qwertymangames1800
    @qwertymangames1800 3 หลายเดือนก่อน +6

    Круто что настолько подробно рассказывается курс.
    А по поводу работы компьютера как он работает мне помогла игра Turing complete. Она в стиме ещё в раннем доступе, но там уже с нуля можно собрать компьютер и запрограммировать на ассемблере свои простейшие программы. И самое главное понимать как эти команды работают на электрической схеме. Что там с регистрами происходит например. Очень познавательная и затягивающая игра. То что надо чтобы на низком уровне разобрать устройство ЭВМ

    • @aercrow1073
      @aercrow1073 หลายเดือนก่อน

      Кинь ссылку,пожалуйста

  • @stalker7999
    @stalker7999 ปีที่แล้ว +8

    Классно обязательно буду смотреть этот курс!

  • @olegmolotov6354
    @olegmolotov6354 ปีที่แล้ว +1

    Данный канал и его Автор для меня открытие, преподаватель от Бога))

  • @faustgete9869
    @faustgete9869 ปีที่แล้ว +6

    Великолепные лекции! Спасибо!

  • @AbdibekNasanbekov-rh6ov
    @AbdibekNasanbekov-rh6ov 2 หลายเดือนก่อน +3

    Язык Си великий язык. Я сначала написал программу для автомойки самообслуживания на Си++. Потом переписал её на языке Си с прямым руководством состояний регистров. В результате программа начала работать в два раза быстрее и стала надёжно работать без сбоев.

    • @isorport32
      @isorport32 หลายเดือนก่อน

      мне почему-то намного проще разбираться в своем же коде для мк, если пишу на си нежели на с++.

  • @ТимурВахитов-щ4ч
    @ТимурВахитов-щ4ч 4 หลายเดือนก่อน +4

    Ты просто мой красавчик на ютубе. Года полтора-два назад смотрел от тебя Django, теперь работают python бэкендером, увидел первый ролик в атобусе решил глянуть, а оказалось действиетьлньо интересной штукой. Очень рад что есть ты!
    P.S. Я еще успел бесплатно урвать твой курс на Stepik`е по ООП. И , кстати, твой курс Django 3, помог мне получить стажировку на бэкенд

    • @selfedu_rus
      @selfedu_rus  4 หลายเดือนก่อน +2

      Круто! Дальнейших успехов!!!

  • @MrMaddrum
    @MrMaddrum ปีที่แล้ว +3

    Отлично. Ждём продолжения. Самая понятная подача материала.

  • @mazur_vg
    @mazur_vg ปีที่แล้ว +5

    Интересно 😁👍 надо посмотреть 🙂

  • @TSM_149
    @TSM_149 ปีที่แล้ว +3

    Огромное СПАСИБО! Like в копилку и очень ждём продолжения!!

  • @ВикторЧеботарь-з2в
    @ВикторЧеботарь-з2в ปีที่แล้ว +1

    спасибо за занятие) как всегда - всё по делу и ничего лишнего)

  • @animelikesakura7088
    @animelikesakura7088 ปีที่แล้ว +1

    Спасибо, дружище. Ты делаешь неоценимый вклад для сообщества.

  • @alexeymatveev9031
    @alexeymatveev9031 10 หลายเดือนก่อน +1

    Как же здорово, спасибо Вам.

  • @QwertyQwerty-en3fb
    @QwertyQwerty-en3fb ปีที่แล้ว +2

    Наконец-то долгожданный плэйлист)))

  • @ДмитрийСергеев-л6г
    @ДмитрийСергеев-л6г ปีที่แล้ว +2

    Очень интересный урок!
    Спасибо!

  • @artemposadskiy6959
    @artemposadskiy6959 2 หลายเดือนก่อน +1

    Изучаю. Огромное спасибо

  • @zilokol
    @zilokol ปีที่แล้ว +1

    Класс. Очень рад буду смотреть.

  • @Ordinary_man2049
    @Ordinary_man2049 ปีที่แล้ว +1

    На одном дыхании

  • @vilka3177
    @vilka3177 5 หลายเดือนก่อน +2

    я новичок в програмировании и я хочу выучить язык "С" надеюсь ваши уроки помогут мне

  • @andredru4278
    @andredru4278 10 หลายเดือนก่อน

    Спасибо. Отлично!

  • @blackdragon7047
    @blackdragon7047 20 วันที่ผ่านมา

    Спасибо!

  • @Dr.ShtefanNein
    @Dr.ShtefanNein 7 หลายเดือนก่อน +1

    Хочу начать изучать программирование с языка C, надеюсь эксперимент окажется удачным)

  • @igorb.4917
    @igorb.4917 ปีที่แล้ว +2

    Топ контент!

  • @jamjam3337
    @jamjam3337 ปีที่แล้ว +1

    спасибо! 👏👍

  • @lindx2533
    @lindx2533 ปีที่แล้ว

    Просто супер!

  • @mksmvnv
    @mksmvnv ปีที่แล้ว +1

    понеслась, подготовка к школе 21

  • @ВладимирПолуян-ж1р
    @ВладимирПолуян-ж1р 4 หลายเดือนก่อน +2

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

  • @romanbykov5922
    @romanbykov5922 ปีที่แล้ว +3

    Ох, кто писал на ассемблере, тот над анекдотами не смеется... помню этот треш в 90-х... Но это мало что заменит для понимания, что происходит в компе.

  • @asfdasdf9019
    @asfdasdf9019 ปีที่แล้ว +3

    да,коль питон написан на С узнать о нем больше надо, возможно чтобы переписывать какието затупки питона на С и тем ускорять программу.
    не уверен правда что С дастся мне, питон вроде терпимо но заходит...а еще я знаю что в еденицу времени можно получать лишь один навык.считаю что в школе нас не учили а калечили, ну как можно за один день 5-6разных уроков то одно то другое....к концу дня каша в голове...

  • @isorport32
    @isorport32 หลายเดือนก่อน +1

    9:47 😁

  • @gamepark6068
    @gamepark6068 ปีที่แล้ว +1

    Будут ещё выпуски?

  • @ШамильРамазанов-с9ю
    @ШамильРамазанов-с9ю ปีที่แล้ว +1

    Топчик

  • @АлександрКаптуров-с8и
    @АлександрКаптуров-с8и ปีที่แล้ว +2

    Сергей, спасибо за урок! Сколько ориентировочно видео будет в этом плейлисте?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      без понятия, курс еще не сформирован

  • @kpanat
    @kpanat ปีที่แล้ว +1

    Там есть ещё 2 модификации С11 и С17 но там небольшие дополнения только. В разных операционнках особенно в линуксовый есть ещё доп вариации языка С(не С++) существенно расширяющих его возможности. В некоторых моментах язык С даже опережает язык С++. В целом программы на С работают немного быстрее и требуют меньше ресурсов потому как более простые не перегружены функциональностью С++. Вопрос в том нужна она вам или нет. В целом писать на С++ боле комфортно и проще из-за ООП. Но если у вас это не надо, то лучше использовать просто С, а не С++.

  • @gne4do
    @gne4do ปีที่แล้ว

    Года 2 назад, переписывал "вычеслялку простых чисел" с Си на Ассемблер, щас смотрю сишный вроде понятно что и как делается, асмовый смотришь и думаешь я что реально это с нуля писал😅😅😅

  • @Семен-е2р
    @Семен-е2р ปีที่แล้ว +2

    вы так скилбокс разорите:)) спасибо за труд:) можно спросить а если я буду чистый код блокс или вирчуал студио код без установки мин гв можно так изучать?😍😍

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      Спасибо! Можно и codeblocks )

  • @dzhegutin9876
    @dzhegutin9876 ปีที่แล้ว +2

    Здравствуйте, селфеду! Было бы круто увидеть в вашем исполнении создание веб сайта-интернет магазина

  • @Kitvideostudio
    @Kitvideostudio ปีที่แล้ว +1

    Здравствуйте, спасибо за новый курс, я прошел Ваш на степики по Пайтону. Хотелось бы уточнить, а разве для ассембелра перевод в машинный код называется компиляцией ? а что тогда называется транслятором языка ассемблер ?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +1

      в данном случае - это одно и то же, просто трансляция кода - это перевод из текстового вида в другой требуемый, часто машинный код, но не всегда, например, в Java, C# трансляция - это перевод в байт-код.

  • @РусланКарнеенко
    @РусланКарнеенко 9 หลายเดือนก่อน +1

    Спасибо. А можно изучать сразу С++ без знания С?

  • @NationalVerrater
    @NationalVerrater 6 หลายเดือนก่อน +1

    А для языка ассемблера нельзя было создать разные компиляторы для разных архитектур процессора и операционных систем и спокойно переносить программы с одного компьютера на другой?

    • @z59h2
      @z59h2 6 หลายเดือนก่อน

      Они и созданы. Но если на C мы можем написать с = b + a не особо задумываясь о том, где именно хранятся и какой тип и разрядность имеют переменные a, b и с, то в программе на ассемблере мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё. Фактически, ассемблер - это чуть более удобочитаемый машинный код, и ту работу, что обычно делает компилятор C, приходится делать программисту. Даже для одного и того же процессора для разных операционных систем одна и та же программа на ассемблере будет выглядеть по-разному в части взаимодействия с операционной системой. Именно поэтому трансляторы с ассемблера и С поставляются разработчиком операционной системы, а не разработчиком процессора.

    • @NationalVerrater
      @NationalVerrater 6 หลายเดือนก่อน

      @@z59h2 Почему вот это все: "мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё" не делает компилятор для соответствующего процессора и операционной системы?

    • @z59h2
      @z59h2 6 หลายเดือนก่อน +1

      @@NationalVerrater потому что ассемблер - это язык очень низкого уровня, максимально близкий к программированию в машинных кодах. Он даёт полный контроль над железом, но взамен требует хорошо знать это железо. Тут аналогия такая: есть водитель и есть пассажир. Пассажиру нет необходимости знать, как управлять конкретным автомобилем, ему достаточно знать пункт назначения и сообщить его водителю. А вот водителю, чтобы туда доехать, нужно знать, как включить двигатель, как разгоняться и тормозить, как и когда переключать скорости, как поворачивать. Если вы пишете программу на ассемблере - то вы подобны водителю, непосредственно управляете работой вычислительной машины. Хотите быть пассажиром - есть Python, Java и ещё множество языков, которые избавляют от необходимости знать ужасные подробности из жизни железа. Но не бесплатно. Например, вы никогда не запустите программу на питоне на 16 килобайт ОЗУ. И никогда не сможете точно предсказать, в какой момент ваша программа на джаве затормозится, потому что включился сборщик мусора.
      Есть разные инструменты для разных задач, требующие разных навыков от тех, кто их использует. На ассемблере пишут то, что должно быстро работать на _конкретном_ железе и не потреблять много ресурсов. Если такая задача не стоит - разумно выбрать другой, более подходящий инструмент.

    • @NationalVerrater
      @NationalVerrater 6 หลายเดือนก่อน

      @@z59h2 Спасибо. Но все-таки, мне не до конца понятно - сделать язык ассемблера универсальным, создав разные компиляторы для разных архитектур процессоров и операционных систем невозможно? Чтоб везде например mov оставалось мувом и ничем другим и всегда работало одинаково? Ведь, как я понял для С и Пайтона это делают. А они тоже в конечном счете управляют конкретным железом, которое может быть разным.

    • @z59h2
      @z59h2 6 หลายเดือนก่อน

      @@NationalVerrater можете считать таким универсальным ассемблером C, в нём даже можно указать, что переменная должна храниться в регистре процессора, а не в памяти.
      Создать универсальный язык ассембера можно только в том случае, если вы создадите универсальную архитектуру процессора. Например, вы написали программу для процессора, у которого 16 универсальных 32-битных регистра, 32-битная шина данных и 36-битная шина адреса. И вам нужно перенести её на процессор, у которого 4 универсальных 16-битных регистра, 16-битная шина данных и 20-битная адресная шина. Можете написать алгоритм переноса?
      И это мы ещё не затронули разную ширину команды и разные режимы адресации.

  • @slizverg23
    @slizverg23 ปีที่แล้ว +1

    Посмотрел уже две лекции и пока вроде всё понятно более-менее, не пойму чего все говорят что С сложный?:)))

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      Он, скорее, сложен не в понимании, а в написании программ.

  • @weerbox
    @weerbox ปีที่แล้ว +1

    Разве стандарты С и С++ это не разные стандарты, С11 и С++11 например, это же разные документы? Стандарты си закончились на С18 вроде.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      Да, там разные документы, а закончились они или нет, кто знает? ))

    • @weerbox
      @weerbox ปีที่แล้ว +1

      @@selfedu_rus имел ввиду последний на текущий момент, то что будет новый стандарт по Си, это не секрет, известно что работы над C2x ведутся.

  • @МаксЛавров-э3в
    @МаксЛавров-э3в 8 หลายเดือนก่อน +3

    Хотел изучить С и С++ для понимания низкоуровневых концепцийи для олимпиадного программирования а тут такой шедев с нуля

  • @kpanat
    @kpanat ปีที่แล้ว +1

    Ну вобще-то это не компилятор а транслятор. потому что он переводит код 1:1. Т.е. просто изменяет его вид ничего с ним по сути не делая. А компилятор это когда происходит изменение самого кода в форму понятную машине из формы понятной человеку. Т.е. это совершенно другой процесс. Поэтому процесс трансляции происходит оч быстро по сравнению с компиляцией, это оч сложный и ресурсоёмкий процесс. Хотя суть обоих одна создать выполняемый код. Но делают они это по разному. Не надо их путать.

    • @IgorMunirov
      @IgorMunirov 10 หลายเดือนก่อน +1

      душнила