Как стать автором
Обновить
108
0.1

Пользователь

Отправить сообщение

Как управлять миром шестиугольных призм на GPU

Время на прочтение20 мин
Количество просмотров7.1K


Недавно я реализовал очень необычную задумку — демонстрацию Minecraft-подобного движка с игровой логикой, выполняющейся полностью на GPU.


Как и зачем я это сделал, и как дошёл до жизни такой, я поведаю в этой статье.


Внимание, в статье есть много скриншотов!

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

Реализация языкового сервера для языка программирования Ü

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.5K


Недавно я реализовал языковой сервер для языка программирования Ü. В этой статье я хочу поведать, как я это сделал. Данное повествование будет полезно для общего понимания, что есть такое языковой сервер. Также статья может быть полезна как руководство для написания языкового сервера для своего языка программирования.

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

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

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров3.3K

Некоторое время назад я добавил в свой язык программирования Ü такой функционал, как генераторы. В этой статье я хочу поведать, как это было сделано и зачем.


Данная статья будет полезна как интересующимся компиляторостроением, так и тем, кому интересно внутреннее устройство генераторов в частности и корутин вообще.

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

Игровой программный рендеринг в 2022-м году

Время на прочтение28 мин
Количество просмотров27K


Программный рендеринг был широко распространён в играх на ПК до повсеместного распространения т. н. 3d-ускорителей (видеокарт). Каждая игра содержала свой собственный код рендеринга, каждая игра имела свои уникальные особенности в нём. Но с распространением видеокарт программный рендеринг в играх умер.


Я раньше задавался вопросом, а что было бы, если бы программный рендеринг был бы до сих пор распространён? В конечном итоге, я решил реализовать свой программный рендеринг, нацеленный на современные процессоры, чтобы это узнать.

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

Язык програмирования Ü — нелёгкий путь написания самодостаточного компилятора

Время на прочтение17 мин
Количество просмотров15K

Уже несколько лет я веду разработку собственного языка программирования — Ü. Около двух лет назад я публиковал вводную статью о нём на Хабре. Компилятор этого языка написан на C++ и долгое время он таковым и оставался. Но после той публикации я пришёл к выводу, что язык Ü уже достаточно продвинут, чтобы написать на нём компилятор языка Ü. О написании этого компилятора и будет повествовать данная статья.

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

Использование библиотеки LLVM для генерации кода регулярных выражений

Время на прочтение20 мин
Количество просмотров4.6K

Введение


Регулярные выражения — широко используемый способ задания конечных автоматов для поиска текста. Применяются они с давних времён и повсеместно. Они удобны тем, что их запись весьма краткая и лаконичная. Но обратной стороной их удобства является достаточно низкая производительность конечных автоматов, построенных по регулярным выражениям. Проблема в том, что в большинстве реализаций этот конечный автомат строится на лету — во время исполнения программы, что весьма ограничивает скорость его работы.


Возникает вопрос — как можно ускорить построение конечных автоматов по регулярным выражениям? У меня как-то раз возникла идея, как это можно сделать — для этого можно применить настоящий компилятор, который может генерировать максимально эффективный машинный код. Эту идею я решил опробовать на практике, используя библиотеку LLVM как компилятор/оптимизатор для регулярных выражений. Что из этого вышло, будет изложено ниже в данной статье.

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

Реализация эффекта газетной фотографии на примере Quake

Время на прочтение6 мин
Количество просмотров13K


Около двух лет назад вышла игра Return of the Obra Dinn за авторством Лукаса Поупа. В ней была весьма интересная стилизация графики трёхмерного мира под графику старых монохромных компьютеров.

На Хабре даже выходил перевод поста автора данной игры, где он описывает, как работает этот эффект. Вкратце — изображение рисуется как обычно, освещается и затеняется, после чего делается монохромным с использованием матрицы Байера, натянутой на сферу расположенную вокруг камеры.

Мне понравилась сама стилизация под монохромный дисплей, но не понравился способ, которым автор данной игры это сделал. Он отверг способ наложения паттерна в пространстве текстуры, мне же такой способ показался наиболее интересным. Данный способ я попытался реализовать, о чём и будет текущая статья.
Читать дальше →

Язык программирования Ü. Введение, мотивация к созданию, цели

Время на прочтение11 мин
Количество просмотров46K

Введение


С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты.

Данная статья имеет задачу ознакомить публику с данным языком, дать составить общее представление о нём. Статья не ставит целью описать язык полностью, более полное описание языка, если надо, будет дано в последующих статьях.

Зачем нужен ещё один язык?
Читать дальше →

Информация

В рейтинге
2 955-й
Зарегистрирован
Активность