Обновить
256K+

C++ *

Типизированный язык программирования

448,77
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

GitHub Copilot

Время на прочтение6 мин
Охват и читатели112K

В современном компьютерном и интернет-мире всё взаимодействие, не только пользователей, а в общем со структурой выстраивается с помощью различных программ, интерфейсов, и подобных им оптимизированных для простого человека сложных разработках. Но кто же занимается непосредственно разработкой различного вида software? Первый ответ, который придет в голову обывателю – это конечно же ПРОГРАММИСТ. Если обобщить в понятие программист всевозможные виды и подходы к разработке, можно согласиться с ответом обывателя. Давайте рассмотрим всех инженеров, backend, frontend разработчиков как единое понятие – программист.

Читать далее

Краткий обзор библиотеки so5extra с дополнениями для SObjectizer-5

Время на прочтение21 мин
Охват и читатели1.3K

О проекте SObjectizer-5 мы рассказываем на Хабре уже давно и более-менее регулярно. А вот о сопутствующем ему проекте so5extra речь заходит гораздо реже и вскользь. Между тем so5extra развивается уже пять лет (как же быстро летит время) и на днях мы зафиксировали очередную версию. Что представляется хорошим поводом представить вашему вниманию обзор библиотеки so5extra, с акцентом на разнообразие реализованных в ней типов почтовых ящиков (mbox-ов в нашей терминологии).

Читать далее

JIT-компилятор Python в 300 строк

Время на прочтение11 мин
Охват и читатели34K

Может ли студент второго курса написать JIT - компилятор Питона, конкурирующий по производительности с промышленным решением? С учётом того, что он это сделает за две недели за зачёт по программированию.

Как оказалось, может, но с нюансами.

Читать далее

Игра: найди ошибку в C++ коде

Время на прочтение2 мин
Охват и читатели11K

Игра PVS-Studio: найди ошибку в C++ коде
Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность и развлечься. Попробуйте быстро отыскать баг в фрагменте исходного кода и ткнуть в него мышкой.

Читать дальше →

Как я встраивал JS в свой игровой движок

Время на прочтение14 мин
Охват и читатели8.6K

Писать на С++ игры долго и дорого, но при этом по перфомансу получается хорошо. Но далеко не всё в играх, требовательно к производительности, особенно 2D. Например всякие окошечки не производят тяжелых расчетов внутри. А на больших проектах они могут занимать до 80% всего объема кода. И на С++ есть проблемы на продакшене - если где-то крешится или бажит, приходится перезаливать приложение.

Скрипты - решение всех бед. И код писать проще, и обновлять приложение можно через дозагрузку (да-да, сторы явно запрещают это, но на деле все так делают).

Совсем недавно прикрутил JS к своему движку. Кому интересны подробности - добро пожаловать под кат.

Читать далее

Тем, кто учится программировать и решил написать вопрос на Stack Overflow: «Почему код не работает?»

Время на прочтение3 мин
Охват и читатели6.6K

PVS-Studio Online


На сайте Stack Overflow много вопросов от людей, ещё только изучающих языки программирования. Лайфхак: ответы на многие эти вопросы можно получить сразу, запустив анализатор кода. Получится быстрее.


Эту заметку меня побудила написать дискуссия "Segmentation fault when converting char * to char **" на сайте Stack Overflow. Человек, изучающий программирование, интересуется, что не так с его кодом.

Читать дальше →

Эволюция лямбд в C++14, C++17 и C ++20

Время на прочтение5 мин
Охват и читатели15K

Лямбда-выражения — одна из самых популярных фич современного C++. С тех пор, как они были представлены в C++11, лямбды проникли практически в каждую кодовую базу на C++. Цель этой статьи — рассказать об основных эволюционных этапах в истории лямбда-выражений.

Читать далее

C++ разведка кросс-компиляции Linux->Windows

Время на прочтение19 мин
Охват и читатели7.2K

Эта история началась когда удобный для меня инструмент VSCode из за одного плагина на борту стал не совсем удобен. А именно, «natizyskunk.sftp» плагин, который позволяет подключится по протоколу (S)FTP к серверу, и вносить изменения на сервер, просто сохранив файл. Всё нечего, если бы настройки подключения к серверам не хранились в корне отдельно взятого проекта. Когда у тебя с десяток проектов, ещё можно потерпеть, но более 70 проектов и они все на разных серверах, то перенос и добавление в каждый из проектов актуальной настройки, например пароль, который периодически меняется, заставляет как минимум раздражённо искать подходящую настройку и с комбинацией клавиш Ctrl+C, Ctrl+V, менять устаревшие настройки или добавлять новые. В дальнейшем оказалось, что коллеги пользуются другими идентичными плагинами с названиями «liximomo.sftp», «doujinya.sftp-revived».

Читать далее

Ключевое слово «volatile» C/C++

Время на прочтение2 мин
Охват и читатели124K
Volatile — ключевое слово языков C/C++, которое информирует компилятор о том, что значение переменной может меняться из вне и что компилятор не будет оптимизировать эту переменную. Примерно такое описание volatile я встречал во многих книгах и туториалах, и каждый раз мне не удавалось понять что же хотел сказать автор. На понимание этого я потратил n-ое количество времени, и вот специально для этого, чтобы упростить жизнь новичкам в понимании этого аспекта, решил написать как раз таки эту статью.
Читать дальше →

Концепты и модули cpp. Взгляд сo стороны undefined разработчика

Время на прочтение5 мин
Охват и читатели3.6K

В 2002 году Алекс А. Степанов проводит лекцию в адоби: STL and Its Design Principles - где упоминает кейворд concept (там прям целый слайд про концепты). В 2009 году в свет выходит книга Elements of programming (Stepanov, McJones) и где по-моему нет ни одного алгоритма без концептов. В 2011 новый стандарт языка с++11, где в отложенных (прям очень жаль) фичах фигурируют концепты. В 2014 мир видит творенье Страуструпа - Tour of C++, где глава 5.4 названа Concepts and Generic Programming, хотя язык не поддерживает кейворд concept. Годом ранее, в 2013, Андрю Саттон публикует бумагу Concepts Lite. В стандарте с++14 появляется новая фича digit separators, но нет концептов. В 2017 на реддите обсуждают c++17 и предлагают отдохнуть еще три года.

Через три года сочувствующий html разработчик захочет попробовать язык с чистого листа, заюзав и концепты, и модули. Модули привносят важное свойство - уменьшение времени компиляции. Идея в шаг за шагом написании небольших компонентов и комбинировании их после в нечто осознаное, например, линтер.

Читать далее

Релиз языка программрования NewLang

Время на прочтение21 мин
Охват и читатели14K

КДПВ


NewLang — это язык программирования высокого уровня, в котором можно сочетать стандартные алгоритмические конструкции с декларативным программированием и тензорными вычислениями для задач машинного обучения.


Основной особенностью языка является простой, логичный и не противоречивый синтаксис, который основан не на использовании зарезервированных ключевых слов, а на строгой системе грамматических правил с использованием знаков препинания (в список которых входят и операторы языка).


Новое по сравнению с прошлым выпуском:


  • Реализованы все основные алгоритмические конструкции: проверка условий, различные варианты циклов, сравнение по образцу, прерывание последовательности команд и возврат данных, обработка ошибок и т.д.
  • Переработан основной синтаксис для отдельных языковых конструкций.
  • Реализованы большинство операций с переменными, включая операторы раскрытие списков и тензоров.
  • Серьезно переработана система встроенных типов, реализованы функции для их преобразования и для определения данных (последнее можно назвать data comprehensions).
  • Добавлены новые тесты и пр.
Читать дальше →

В мире антропоморфных животных: PVS-Studio проверил Overgrowth

Время на прочтение9 мин
Охват и читатели2.6K

Недавно в сети появилась новость о том, что был открыт исходный код игры Overgrowth. Мы не смогли пройти мимо и проверили его качество с помощью PVS-Studio. Давайте же вместе посмотрим, где больше интересного экшена: в игре или в её исходном коде!

Читать далее

Оптимизация GUI на Qt

Время на прочтение12 мин
Охват и читатели19K

Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GUI. Qt – платформа достаточно надежная, неплохо вылизанная по всем параметрам, в том числе и по скорости работы. Однако всё же иногда бывают ситуации, когда из-за обилия виджетов графический интерфейс немного притормаживает, и это печально). В этой статье я приведу один частный пример простого графического интерфейса и покажу, как за два шага можно сначала ускорить его в 11 раз, а потом и в целых 34 раза. Вдобавок к этому, я постараюсь немного осветить механизм принятия решения для таких оптимизационных задач, постараюсь показать направление мыслей для правильного решения. Поехали!

Читать далее

Ближайшие события

C++20: корутины cppcoro

Время на прочтение6 мин
Охват и читатели9.9K

Библиотека cppcoro от Льюиса Бейкера (Lewis Baker) дает нам то, чего не дает нам C++20 — библиотеку абстракций корутин C++, основанную на Coroutines TS.

Читать далее

Обзор книги “Beautiful C++: 30 Core Guidelines for Writing Clean, Safe and Fast Code”

Время на прочтение6 мин
Охват и читатели7K

Если вы знакомы с курсами Кейт Грегори (Kate Gregory) на Pluralsight, то вас не должно удивить название этой книги. Хотя многие считают C++ сложным языком, код которого зачастую очень трудно читать и поддерживать, он все-таки может быть красивым. Я не совру, если скажу, что со всеми нововведениями язык становится все сложнее. Но в то же время множество новых фич языка и его библиотек направлены сделать современный идиоматический код C++ легче в написании и понимании.

Читать далее

Беспилотный робот не в ROS

Время на прочтение6 мин
Охват и читатели3.2K

В свете создания максимально наукоемкого проекта, мы выбрали путь работы с голым кодом. Программирование всех систем идет в чистом виде, без программ посредников.

Читать далее

Holy C++

Время на прочтение5 мин
Охват и читатели37K

В этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++

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

1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером.

В С++ же использование union это автоматическое undefined behavior, например:

Читать далее!

Математическое решение задачи о матрице «змейкой»

Время на прочтение13 мин
Охват и читатели37K

Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/)  и также посвящается особо извращенным способам заполнения двухмерных массивов согласно определенному шаблону. Создание громоздких, неуклюжих формул, без применения таких милых сердцу программиста конструкций как циклы и условия оказалось увлекательным занятием. В связи с этим, автор, уподобляясь некоторым государственным чинам (вспоминаем бородатую шутку про разницу между депутатом и программистом),  решил потратить кучу драгоценного времени на очередной интересный, но, увы, бесполезный в практическом плане проект. Речь идет о вычислении математическим путем элементов массивов, заполняемых змееподобной траекторией, или проще говоря – «тещиных» матриц.

Различают два класса этих самых матриц: обычные (злобные) и диагональные (крайне злобные).

Первый класс двухмерных массивов (здесь и далее речь идет только о квадратных матрицах) заполняется натуральными числами от 1 до N2 с левого верхнего угла построчно:

Читать далее

Проверяем эмулятор GPCS4, или сможем ли когда-нибудь поиграть в «Bloodborne» на PC

Время на прочтение15 мин
Охват и читатели11K

Эмулятор – это приложение, способное имитировать запуск программы, предназначенной для одной платформы, на другой. Примером эмулятора является GPCS4, предназначенный для запуска игр для PS4 на PC. Недавно состоялся первый релиз GPCS4, и мы решили проверить этот проект. Давайте посмотрим, какие ошибки удалось найти PVS-Studio в исходном коде этого эмулятора.

Читать далее

SObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го

Время на прочтение18 мин
Охват и читатели5.7K

Шесть лет назад, в июне 2016-го года, вышла первая статья об инструменте, с разработкой которого я связан уже много лет. Шестилетней давности публикация дала толчок интереса к SObjectizer-у и, как я понимаю, кто-то сумел попробовать SObjectizer в деле (или собрался попробовать) именно благодаря той статье. Поскольку за прошедшее время SObjectizer несколько изменился, то я подумал, что не помешало бы выпустить обновленную версию статьи. Исправленную и дополненную. С учетом не только того, что в SObjectizer изменилось/появилось/исчезло, но и отталкиваясь от критических отзывов на предыдущие статьи про SObjectizer.

Итак, вашему вниманию предоставляется свежий взгляд на то, что же это за инструмент, для чего он создавался и почему получился именно таким.

Читать далее