Создаем свой ассемблер

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

В этот раз попробуем упростить написание программ для J1, используя предложение из той самой статьи о написании собственного ассемблера…

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

Подробнее

Экспериментируем с битовыми плоскостями. Часть II

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

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

Подробнее

Экспериментируем с битовыми плоскостями. Часть I

Работая над нашей библиотекой обработки изображений rip, я столкнулся с одной очень интересной и забавной вещью, связанной непосредственно с самим устройством изображения, и крайне удивился тому, что лишь немногие авторы литературы по цифровой обработке изображений упоминают данную тему. Читать далее →

Подробнее

Музыкальный D: синтезатор в 100 строк

Библиотека dlib предоставляет базовые инструменты для работы с аудиоданными, которые позволяют написать синтезатор с сохранением полученных звуков в WAV. В этой статье я покажу, как с их помощью сгенерировать знаменитую мелодию «Popcorn» Гершона Кингсли, используя для этого всего три функции, умещающиеся в 100 строк кода.

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

Подробнее

Бинаризация методом Оцу в dlib

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

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

Подробнее

Перевод текста в команды FALSE

После публикации статьи про FALSE мне пришла в голову интересная, хоть и бесполезная идея — реализация программы, которая составляет другие программы. Все было бы нормально, но в этот раз эта статья будет точно соответствовать одному из разделов нашего блога — разделу «Невменяемое программирование».

Если вы хотите немного причаститься к ненормальному программированию, то добро пожаловать в этут статью !

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

Подробнее

В дебрях эзотерики

Сегодня мы с вами погрузимся в мир непризнанного, в практическом смысле, искусства, в самую глубину тайного знания в области программирования — мы познакомимся с эзотерическим языком программирования.

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

Подробнее

Создаем виртуальный Forth-процессор

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

Новый импульс я получил после того, как наткнулся на нечто интересное и действительно захватывающее… Читать далее →

Подробнее

Преобразование карт окружения при помощи dlib

Разрабатывая 3D-движок для D, я столкнулся с интересной задачей – преобразованием равнопромежуточной карты окружения (equirectangular environment map) в кубическую карту (cube map).

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

Подробнее