С/С++ Portal | Программирование
СтатистикаПрисоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3Foc4d
- Последний пост
- 08:07
- Последнее чтение
- 13:42
- Постов за неделю
- 16
- Всего постов
- 29
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 1 467
- 1/48двое суток
- 1 681
- 1/72трое суток
- 1 813
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Каждый Ethernet-коммутатор использует протокол, который Радия Перлман разработала в 1985 году. Самое необычное — её работа о Spanning Tree Protocol начинается не с обычной аннотации, а со стихотворения. Она написала её, работая в DEC, и само стихотворение фактически описывает принцип работы алгоритма. 👉 @Cpportal
Мой основной инструмент для визуализации регулярных выражений: https://regex-vis.com 👉 @Cpportal
Самый распространённый способ, которым разработчики случайно убивают пропускную способность, — попытка слишком хитро использовать безветвленное программирование. Если ветвление предсказывается правильно в 99% случаев, процессор выполняет его практически бесплатно. А когда вы принудительно заменяете ветвление на cmov, чтобы его избежать, исполнительным блокам приходится вычислять обе стороны и ждать разрешения зависимостей по данным. Вы ничего не оптимизировали. Вы просто вручную добавили аппаратную задержку. 👉 @Cpportal
Каждый традиционный BIOS на x86 загружает загрузочный сектор по одному и тому же адресу: 0x7C00. Бесплатная книга 539kernel начинается именно с этой маленькой детали и шаг за шагом строит вокруг неё целую операционную систему. Глава за главой ты проходишь путь от самой первой инструкции до полноценного работающего ядра. Весь проект открыт на GitHub. http://539kernel.com/ 👉 @Cpportal
8 часов проектов на C по кибербезопасности https://youtu.be/UvmhYkt8hkU 👉 @Cpportal
Разбираемся с переполнением целых чисел в C/C++ https://dl.acm.org/doi/10.1145/2743019 Одна из лучших работ на эту тему. 👉 @Cpportal
В Clang есть опция для генерации AST, а в Godbolt — возможность его посмотреть. Навигация по AST всегда отлично помогает в обучении: она позволяет сформировать правильную ментальную модель того, как работают преобразования и оптимизации компилятора. https://godbolt.org/z/cfc7h41bT 👉 @Cpportal
Компьютеры построены на каком-то абсурдном количестве "обмана": > кэши > предсказание ветвлений > спекулятивное выполнение > виртуальная память > внеочередное выполнение инструкций Мы буквально засунули крошечную память прямо внутрь процессора, потому что оперативная память оказалась слишком медленной. И каким-то образом вся эта иллюзия всё ещё держится. 👉 @Cpportal
Отличная подборка статей по C++: https://modernescpp.com/index.php/table-of-content/ 👉 @Cpportal
видео или голосовое, без подписи
видео или голосовое, без подписи
Написал TCP-сервер на x86-64 NASM-ассемблере, используя сырые системные вызовы и напрямую взаимодействуя с ядром. 👉 @Cpportal
Почти любую структуру в C можно превратить в элемент хеш-таблицы, добавив всего одно поле. Связи между бакетами и работа с ключами генерируются макросами. Сама структура почти не меняется, а библиотека выстраивает вокруг неё всю хеш-таблицу. 👉 @Cpportal
Разработчики на C вообще отбитые. 😆 Только что узнал, что в C, оказывается, есть встроенные конечные автоматы. 👉 @Cpportal
Самый простой способ понять, как работает язык программирования — случайно написать собственный. Crafting Interpreters — наверное, одна из лучших книг по программированию, которые я когда-либо читал. Она шаг за шагом проводит через создание полноценного языка с нуля и заодно учит: • лексическому анализу • синтаксическому анализу • интерпретаторам на основе обхода дерева • байткоду и виртуальным машинам • работе с C • управлению памятью • сборке мусора • хеш-таблицам • динамически расширяемым массивам • NaN boxing • битовым операциям Автор — Боб Нистром, который работает над Dart в Google. Всю книгу можно бесплатно прочитать здесь: https://craftinginterpreters.com 👉 @Cpportal
Бесплатная книга на GitBook проведёт вас от пустого загрузчика до полноценной рабочей операционной системы. Шаг за шагом вы реализуете страничную организацию памяти, прерывания и драйвер клавиатуры на C. Каждая глава достаточно короткая, чтобы пройти её за один подход. https://littleosbook.github.io/ 👉 @Cpportal
видео или голосовое, без подписи
Algorithms Джеффа Эриксона — одна из лучших книг по алгоритмам. Иллюстрации в ней просто отличные. Очень рекомендую. https://jeffe.cs.illinois.edu/teaching/algorithms/ 👉 @Cpportal
Как ядро собирает пакеты переменной длины: одно выделение памяти, заголовок и полезная нагрузка лежат подряд, освобождение — одним вызовом. До того как C99 официально разрешил data[], все делали это через data[1] и надеялись, что всё будет нормально. До сих пор это один из самых чистых паттернов сериализации в C. 👉 @Cpportal
Этот генератор случайных чисел — буквально три строки со сдвигами и XOR. Джордж Марсалья представил xorshift в 2003 году. Несмотря на простоту, алгоритм проходит многие стандартные тесты на случайность и со временем стал генератором случайных чисел по умолчанию в нескольких игровых движках. 👉 @Cpportal