Всем привет! Изучив несколько статей по этой теме, у меня остались вопросы, и некоторые моменты по-прежнему были не понятны, поэтому я решил написать свою, которая, как мне кажется, была бы понятна тем, кто не силен в спортивном программировании. В ней я объясняю, как устроено дерево отрезков. Примеры с кодом будут приведены на языке C++, однако на объяснение это не влияет.
Рубрика «c++» - 21
Понимаем обычное дерево отрезков
2023-03-07 в 22:42, admin, рубрики: c++, Алгоритмы, дерево отрезков, логарифмическое время, объяснение, первая статья на хабре, решение задач, Спортивное программирование, турникСоздание модуля WebAssembly с помощью Emscripten, AssemblyScript и Rust
2023-02-24 в 16:58, admin, рубрики: AssemblyScript, c++, Emscripten, python, Rust, wasmer, webassemblyВ этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:
-
Emscripten для компиляции кода, написанного на c++
-
AssemblyScript для компиляции кода, написанного на, собственно, AssemblyScript
-
wasm-pack для компиляции кода, написанного на Rust
План такой:
-
Во введении мы обсудим постановку задачи и немножко поговорим о технологии WebAssembly
Сколько стоит содержать виртуальную девушку? Создаем подругу, записывающую кружочки в Telegram, с помощью 4 нейросетей
2023-02-21 в 9:37, admin, рубрики: AI, c++, gpu, python, Блог компании Selectel, боты для мессенджеров, Видеокарты, виртуальный друг, искусственный интеллект, нейросети
Не так давно в интернете появилась душещипательная история, как пользователь hackdaddy8000 сперва создал виртуальную девушку, а затем усыпил ее. Моральный и мемный аспект этого события обсуждали в комментариях под новостями.
Поговорим о технической стороне. Как повторить этот шедевр и можно ли обойтись без сервисов OpenAI, которые сложно оплатить в России? И главное — сколько придется инвестировать в виртуальную подругу.
Читать полностью »
C++23 — финал, C++26 — начало
2023-02-20 в 9:00, admin, рубрики: C, c++, c++23, c++26, c23, compilers, exception, exception handling, iso, ranges, stacktrace, standard library, Блог компании Яндекс, Компиляторы, Программирование, С++, с++23, с++26, с23
С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.
Комитет занимался полировкой C++23:
static operator[];static constexprвconstexpr-функциях;- безопасный range-based for;
- взаимодействие
std::printс другими консольными выводами; - монадический интерфейс для
std::expected; static_assert(false)и прочее.
И прорабатывал новые фичи C++26:
std::getиstd::tuple_sizeдля агрегатов;#embed;- получение
std::stacktraceиз исключений; - stackful-корутины.
Создаем свой собственный язык программирования с использованием LLVM. Часть 3: Генерация кода
2023-02-19 в 16:30, admin, рубрики: c++, LLVM, open source, Компиляторы, ПрограммированиеВ предыдущих статьях мы рассмотрели и реализовали лексический и синтаксический анализаторы, а так же реализовали семантический анализ для нашего учебного языка, что дало нам основу. В данной статье мы продолжим начатое и реализуем генерацию кода для LLVM IR.
LLVM
Компилятор с полностью гомоморфным шифрованием от Google
2023-02-19 в 9:36, admin, рубрики: c++, FHE, компилятор, Компиляторы, криптография, оптимизация, Программирование, шифрованиеЕщё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.
Столетний язык программирования — какой он
2023-02-09 в 6:01, admin, рубрики: algol, c++, fortran, ruby, ruby on rails, Блог компании Cloud4Y, история программирования, Программирование, языки программированияОсобо амбициозные разработчики любят заявлять о том, что используемый ими язык программирования или фреймворк будет жить лет сто. Дерзкое заявление, учитывая, что разработке программного обеспечения, как таковой, всего около 65 лет. А фреймворки ещё моложе.
Можно почитать Пола Грэма и его разглагольствования о столетнем языке. Но он имеет в виду немного другое: язык, потомкиЧитать полностью »
Создаем свой собственный язык программирования с использованием LLVM. Часть 2: Семантический анализ
2023-02-04 в 9:55, admin, рубрики: c++, LLVM, open source, Компиляторы, ПрограммированиеВ предыдущей статье мы закончили на том, что мы написали лексический и синтаксический анализаторы для нашего учебного языка. В данной статье мы продолжим начатое и рассмотрим следующую стадию анализа исходного кода программы — семантический анализ.
Семантический анализ
Основная задача семантического анализа заключается в проверки того, что программа корректна с точки зрения языка, например:
-
Все переменные в программе объявлены;
-
Все выражения совершаются над корректными типами;
HabraTab — девайс для хаброзависимых
2023-02-02 в 9:40, admin, рубрики: c++, diy или сделай сам, e-ink, e-paper, esp32, esp32 e-ink, esp32 RTOS, ESP32-WROOM, freertos, rtos, парсинг, Парсинг HTTP, программирование микроконтроллеров, Производство и разработка электроники, Разработка под ArduinoЧто-то часто стал заглядывать в профиль после каждой новой публикации. Так вот я и решил сделать табло, которое стояло бы на столе, и показывало место в рейтинге, карму, ну и само значение очков рейтинга.
Для желающих повторить подразумевается как возможность сборки из модулей, так и нормальная железка. Но устройство в общем очень даже универсальное, полностью совместимое с Arduino IDE, достаточно воткнуть USB и можно шить. Порог вхождения минимальный. А почему универсальное- только изменением кода можно парсить что угодно с любого сайта.
