В предыдущих статьях мы рассмотрели и реализовали лексический и синтаксический анализаторы, а так же реализовали семантический анализ для нашего учебного языка, что дало нам основу. В данной статье мы продолжим начатое и реализуем генерацию кода для LLVM IR.
Рубрика «c++» - 11
Создаем свой собственный язык программирования с использованием LLVM. Часть 3: Генерация кода
2023-02-19 в 16:30, admin, рубрики: c++, LLVM, open source, Компиляторы, ПрограммированиеКомпилятор с полностью гомоморфным шифрованием от 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 и можно шить. Порог вхождения минимальный. А почему универсальное- только изменением кода можно парсить что угодно с любого сайта.
Создаем свой собственный язык программирования с использованием LLVM. Часть 1: Лексический и синтаксический анализ
2023-01-28 в 14:38, admin, рубрики: c++, LLVM, open source, Компиляторы, ПрограммированиеОб авторе
Boson — разработка СУБД «с нуля» (часть II)
2023-01-28 в 2:52, admin, рубрики: c++, Алгоритмы, базы данных, двусвязный список, записи в базе, системное программирование, хобби, хранение данных, хранилище1. Введение
В первой части статьи мы обсуждали разработку самого нижнего слоя СУБД Boson - CachedFileIOЧитать полностью »
Подводные камни компараторов в С++
2023-01-18 в 10:54, admin, рубрики: c++, debug, qa, qa testing, testing, алгоритм, Алгоритмы, баг, Блог компании «Лаборатория Касперского», компаратор, математика, отладка, Программирование, разработка, тестирование, тестирование веб-приложений, тестирование по
Чаще всего при сортировке объектов пользовательских типов написание кода сравнения элементов коллекции не вызывает вопросов. Компаратор должен возвращать true, если первый аргумент меньше второго, то есть в отсортированном массиве первый аргумент должен идти перед вторым. Алгоритмы сначала вызывают компаратор для пары элементов x и y. Если компаратор вернул true, значит, элемент x меньше y и он должен идти в коллекции перед элементом y, если false, то компаратор вызывается повторно для пары y и x. Если компаратор опять вернул false, значит, элементы равны, иначе порядок определен.
Меня зовут Олег Игнатов, я — Development Team Lead в команде KICS (Kaspersky Industrial CyberSecurity) «Лаборатории Касперского». Мы защищаем промышленные инфраструктуры и сети от специализированных киберугроз. В этой статье расскажу о некоторых особенностях использования компараторов в С++, знание которых позволит не наступить на различные грабли и сэкономить время при разборе багов.
Читать полностью »
C++ по итогам 2022-го
2023-01-13 в 16:54, admin, рубрики: c++, carbon, clang, cppfront, gcc, MSVC, val, конференцииДолжен признать, что в некоторые из предыдущих лет C++ мог ощущаться немного «скучным» и «стабильным». Новые фичи, новый стандарт каждые три года, встречи, конференции... обычная жизнь (не считая некоторых дополнительных событий в мире, экономике и эпидемиологической ситуации). Прошедший год отличается, потому что выглядит как «переломный» в истории C++... и кто знает, куда это заведёт нас.
Меньше точно не бывает! Делаем вольтметр на ATTINY10
2023-01-12 в 3:34, admin, рубрики: arduino, Arduino IDE, attiny, attiny arduino ide, attiny10, attiny10 arduino, attiny13, avr, c++, diy или сделай сам, вольтметр на attiny, программирование микроконтроллеров, Производство и разработка электроники, прошивка attiny10, Разработка под ArduinoВ продолжение к прошлой статье решил пощупать и Attiny10. Ну меньше уже точно ничего нет. Если и есть такое извращение с менее чем 6 ногами, я о нем не знаю, точнее не нашел.
Тут у нас полноценный МК, в корпусе SOT-23-6! И задачи на нем решать можно вполне серьезные. Собрав схему на макетке с МК на адаптере и модулем дисплея я было обрадовался, но готовая плата работать отказалась...