#язык_c — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #язык_c, aggregated by home.social.
-
Мой путь в изучении языка C: какие книги реально помогли
Когда я начинал изучать C, я сразу взялся за «библию» — «Язык программирования С» Брайана Кернигана и Денниса Ритчи. Все советуют её первой книгой, и казалось бы, куда ещё? Но честно скажу — она зашла мне очень тяжело . Подходы, структура, хронология изложения — всё это оказалось непростым для полного новичка. Возможно, дело во мне, но как первая книга я бы её не рекомендовал.
-
Rogue — оживляем код версии 1981 года
Игра Rogue знаменита не только тем что породила и вдохновила огромное количество "потомков" - от визуально схожих Moria и NetHack до графически продвинутых вроде DIablo. Знаменита она ещё и тем что является одной из самых сложных игр для прохождения (в этом классе она гораздо интеллектуальнее чем Flappy Bird). Не уверен что вы найдете даже по форумам человека который скажет что проходил её (не читеря с файлами сохранения). А может такие есть среди вас? Я заметил что современная опенсорсная версия (например доступная в пакетах для разных Linux и BSD) отличается от той, например, что была портирована коммерчески под ДОС где-то в 80е. Заметно отличаются монстры - чуть ли не со 2 уровня уже можно напороться на Ледяного Монстра который не только лишает подвижности но ещё и активно дамажит. Как будто и без того сложная игра стала ещё сложнее! Дело в том что ранний код Rogue изначально не был доступен публично - кроме того авторы опенсорсной версии хотели избежать возможных нарушений прав (т.к. существовали уже коммерческие порты). Чтобы разобраться я решил скомпилировать и запустить одну из самых старых доступных версий - посмотреть отличия - и вообще как что устроено. Здесь я расскажу о возникших мелких проблемах (любопытно м.б. для программистов на С) - и возможностях этой самой оживлённой версии (её я выложил на гитхаб - каждый может взять и погонять). ошибки компиляции, падения при выполнении
-
Откуда взялась хвостовая рекурсия и когда ожидается ее реализации в новом стандарте языка Си. Рекурсия VS Iteration
Я надеюсь что это неожиданное название заставит вас обратить внимание на эту статью, но самое главное на что я надеюсь что прочитав эту статью вы уже не сможете так просто игнорировать факты. Когда я учился программированию меня учили что рекурсия это плохо и нельзя надеятся что компилятор сможет заменить написанную тобой рекурсию на итеративный процесс. В какой то степени нас учили искать способ замены рекурсии итеративным алгоритмом. На сколько я понимаю замена рекурсии итеративным алгоритмом это одна из базовых задач программирования. Здорово когда она уже решена в компиляторе (в интерпретаторе) и в языке таком как диалет LISP-а который используется для примеров в книге известной под абревиатурой SICP, но в любом случае не помешает знание о том как эта задача решается. Как минимум это поможет вам лучше понимать работу компилятора и эффективнее его использовать.
https://habr.com/ru/articles/881276/
#рекурсия #хвостовая_рекурсия #язык_c #языки_программирования
-
Можно ли собрать в одном большом гайде всё, что полезно знать о языке C и его применениях
Мне показалась очень интересной тема открытая в недавней статье Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C Во вступлении там написано: "Очевидный факт: язык C — это основа большого количества современных экосистем программирования. Он обеспечивает фундамент многих операционных систем, базовых библиотек и системных инструментов." Мне кажется полезно все таки обозначить в каком смысле язык C — это основа, и чем он обеспечивает фундамент. Я рад что имею возможность сформулировать что-то в данном направлении не со слов иностранного авторитета, а не базе собственного опыта который, тем не менее, формировался на основе анализа-применения действующих решений-теорий сформулированных во многом иностранными специалистами, но надеюсь с примесью собственной креативности в какой-то степени. Ну и хочется озвучить свой ответ на вопрос: " Когда C — идеальный выбор ?", может в интерпретации: " А бывает ли язык Си идеальным выбором?" По моему, тема очень полезная, хотелось бы увидеть и поддержать ее развитие.
https://habr.com/ru/articles/872370/
#языки_программирования #программирование #язык_c #с++ #управление_зависимостями
-
[Перевод] Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C
Очевидный факт: язык C — это основа большого количества современных экосистем программирования. Он обеспечивает фундамент многих операционных систем, базовых библиотек и системных инструментов. При этом все еще не существует единого ресурса, который последовательно и связно отвечает на важные вопросы, возникающие при изучении C: окружающая экосистема разработки языка, выбор инструментов, переносимость кода, управление зависимостями и глубокие аспекты работы. Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками, а также знакомит с ключевыми концепциями обеспечения безопасности и управления памятью. Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах. *Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис
https://habr.com/ru/companies/ncloudtech/articles/871748/
#перевод #язык_c #язык_программирования #программирование #среда_разработки #среда_программирования #библиотеки #переносимость_кода #управление_зависимостями
-
[Перевод] Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C
Очевидный факт: язык C — это основа большого количества современных экосистем программирования. Он обеспечивает фундамент многих операционных систем, базовых библиотек и системных инструментов. При этом все еще не существует единого ресурса, который последовательно и связно отвечает на важные вопросы, возникающие при изучении C: окружающая экосистема разработки языка, выбор инструментов, переносимость кода, управление зависимостями и глубокие аспекты работы. Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками, а также знакомит с ключевыми концепциями обеспечения безопасности и управления памятью. Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах. *Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис
https://habr.com/ru/companies/ncloudtech/articles/871748/
#перевод #язык_c #язык_программирования #программирование #среда_разработки #среда_программирования #библиотеки #переносимость_кода #управление_зависимостями
-
[Перевод] Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C
Очевидный факт: язык C — это основа большого количества современных экосистем программирования. Он обеспечивает фундамент многих операционных систем, базовых библиотек и системных инструментов. При этом все еще не существует единого ресурса, который последовательно и связно отвечает на важные вопросы, возникающие при изучении C: окружающая экосистема разработки языка, выбор инструментов, переносимость кода, управление зависимостями и глубокие аспекты работы. Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками, а также знакомит с ключевыми концепциями обеспечения безопасности и управления памятью. Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах. *Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис
https://habr.com/ru/companies/ncloudtech/articles/871748/
#перевод #язык_c #язык_программирования #программирование #среда_разработки #среда_программирования #библиотеки #переносимость_кода #управление_зависимостями
-
[Перевод] Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C
Очевидный факт: язык C — это основа большого количества современных экосистем программирования. Он обеспечивает фундамент многих операционных систем, базовых библиотек и системных инструментов. При этом все еще не существует единого ресурса, который последовательно и связно отвечает на важные вопросы, возникающие при изучении C: окружающая экосистема разработки языка, выбор инструментов, переносимость кода, управление зависимостями и глубокие аспекты работы. Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками, а также знакомит с ключевыми концепциями обеспечения безопасности и управления памятью. Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах. *Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис
https://habr.com/ru/companies/ncloudtech/articles/871748/
#перевод #язык_c #язык_программирования #программирование #среда_разработки #среда_программирования #библиотеки #переносимость_кода #управление_зависимостями
-
Как мы МИК32 «Амур» подружили с Engee
В 2024 году в продаже появился первый российский микроконтроллер с RISC-V архитектурой – МИК32 Амур (К1948ВК018) . Наша команда не могла пройти мимо такой новинки, учитывая интерес профессиональной общественности к RISC-V. Мы поучаствовали и в программе раннего доступа к RISC-V на отладочной плате MIK32 Nuke, и в техническом тренинге от АО «Микрон» , чтобы в контакте с производителем наладить программирование контроллера кодом, сгенерированным из среды модельно-ориентированного проектирования Engee . Меня зовут Алексей Евсеев, я инженер Экспоненты, и я хочу поделиться с вами опытом разработки моделей в Engee для МИК32, показать наш типовой workflow, а также осветить некоторые фишки и особенности работы с генератором кода Engee. Надеюсь, материал будет интересен и разработчикам встраиваемого ПО, и специалистам в моделировании.
https://habr.com/ru/companies/etmc_exponenta/articles/862122/
#matlab #микроконтроллеры #импортозамещение #математическое_моделирование #генерация_кода #язык_c #embedded_systems #mik32_amur #промышленное_программирование
-
Деннис Макалистэйр Ритчи. Между Unix и С
Создатель. Точнее всего описывает Денниса Ритчи именно это слово. Он не стал выдающимся учёным, породившим целые научные школы. Он не блистал на каждой обложке, и его имя не приходит на ум людям при словах «компьютер», «сайт». Однако, именно этот милый карапуз, детскую фотографию которого вы видите рядом с текстом, обессмертил себя, создав язык программирования С, вписав себя в систему UNIX и историю компьютерных систем, чем действительно изменил наше время. Из его рук вышла технология, которая используется уже многие десятки лет и не планирует терять своё место в истории. Товарищ Ритчи обладал ещё одной важной чертой, он умел находить хороших, верных друзей, с которыми шёл к вершине. Сегодня мы с вами поговорим не только о операционной системе, языке программирования и их совместном развитии, но и о двух друзьях, Деннисе Ритчи и Кене Томпсоне, которые на протяжении многих лет вместе создавали цифровое будущее. Денис Маккалистер Ритчи однажды был вынужден дать ответ, какое из своих творений он любит больше, С или UNIX. Мы решили тоже поставить вас в условия выбора и подготовили аудиоверсию статьи, вы можете сами выбрать, читать статью или слушать .
https://habr.com/ru/companies/timeweb/articles/842238/
#timeweb_статьи #история #деннис_ритчи #unix #язык_c #программирование #bsa #spacewar #BESYS #mit