Рубрика «Программирование» - 31

Javascript ― язык весьма оригинальный. Его можно любить, ненавидеть и даже бояться, но равнодушным он вас вряд ли оставит. Не знать или не понимать, с чем ты работаешь ― самая частая ошибка, допускаемая современными фронтенд‑разработчиками. Вам бы понравилось, если бы дантист, к которому вы пришли, не понимал, какой он инструмент использует и какие у него особенности работы? Очевидно, что нет. И рано или поздно, если вы действительно хотите стать профессионалами, вы разберётесь во всём, но как сделать так, чтоб это случилось раньше?

Читать полностью »

C++23 — финал, C++26 — начало - 1

С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации 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-корутины.

Читать полностью »

Переписали виртуальную машину

Раньше виртуальная машина была написана в одном файле ceval.c  почти на 8 000 строк. Это делало работу с опкодами довольно сложной, особенно если нужно было провести эксперименты. 

В Python 3.12 ее переписали на новый DSL. И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.

В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONSTЧитать полностью »

В предыдущих статьях мы рассмотрели и реализовали лексический и синтаксический анализаторы, а так же реализовали семантический анализ для нашего учебного языка, что дало нам основу. В данной статье мы продолжим начатое и реализуем генерацию кода для LLVM IR.

LLVM

Читать полностью »

После выхода ChatGPT только ленивый не написал о нём. Языковая модель GPT-3.5 от OpenAI привлекла широкое внимание общественности своими возможностями: создание текстов, возможности перевода, получения точных ответов и использования контекста для диалога. Но больше всего разработчиков впечатлила возможность написания работающего кода по запросу на естественном языке.

Читать полностью »

Всем читателям habr.com, привет! Мы студенты Технического ВУЗа- Мария и Екатерина, и хотим рассказать о своем опыте работы с указателями на языке программирования Паскаль.

Читать полностью »

Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.

Читать полностью »

image

Шахматы — удобный объект исследований в области искусственного интеллекта. Игра проста по структуре, подчинена основной задаче (поставить мат противнику) и не допускает вольной трактовки правил – следовательно, классифицируется как «логическая». Именно на шахматах испытывались многие направления искусственного интеллекта. Например, методики оптимизации перебора (уход от «комбинаторного взрыва» при просчёте вариантов вперёд на несколько ходов), логическое программирование, распознавание образов и экспертные системы.

В этой игре воплотился, известный нам по фантастическим фильмам и книгам, сюжет: человек против машины, плоть и кровь против микросхемы, эмоция против алгоритма. Разумеется, в противостоянии гроссмейстеров и компьютерных программ не наблюдалось голливудского размаха, да и ни о какой угрозе речи не шло, напротив, развитие искусственного интеллекта в наших реалиях одна из составляющих прогресса. И всё же нужно признать, что сражения на доске происходили в лучших традициях драматургии. Об этом сегодня и поговорим, доставайте блокноты и записывайте ходы. Читать полностью »

Задумывались ли вы о том, что находится внутри зависимостей, которые так или иначе подтягиваются в ваш код? Взять чужую библиотеку сейчас — норма жизни, но чем это обернется с точки зрения безопасности?

А вы давно заглядывали внутрь ваших зависимостей? - 1

Читать полностью »

image

20 июля 1969 года, в 20:17:39 по Гринвичу, лунный модуль миссии «Аполлон-11» совершил первую в истории человечества пилотируемую посадку на другое небесное тело. Событие огромной значимости, как в плане науки, так и в плане идеологическом, стало возможным благодаря самоотверженной работе сотен людей — техников, контролёров, специалистов по связи. И, конечно, программистов. Знаете поговорку: «За каждым великим мужчиной стоит женщина»? Так вот, в случае Нила Армстронга, Базза Олдрина и Майкла Коллинза, это на 100% правда, хотя и женщина была одна на троих. И имя ей — Маргарет Гамильтон, госпожа программного кода НАСА.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js