Pull to refresh

Quipu — эзотерический язык программирования на основе узелковой письменности Инков

Abnormal programming *Programming *Compilers *
Один мой друг, историк по профессии, подкинул мне замечательную идею об использовании древней мнемонической и счетной систем в современной криптографии. В процессе его рассказов об узелковой письменности Инков, я начал соображать, что все новое — хорошо забытое старое и было бы не плохо как-то применить древний опыт в современном мире. Первое, что пришло в голову — криптография. Это самое очевидное — просто сконвертировать узлы с ниток в байты и шифр готов. С одной стороны все казалось понятным, но потом я вспомнил про криптостойкость и другие параметры шифров и понял, что не обладаю достаточным опытом и знаниями в области криптографии, чтобы в одиночку разработать новый шифр.

Дальше я решил попытаться представить некий эзотерический язык программирования, конструкции которого могут быть записаны с помощью узелковой письменности Кипу. Поначалу казалось, что это невозможно: я придумывал язык и пытался написать на нем программу вычисления факториала. Первые три черновика спецификаций ушли в урну: языки никуда не годились. Они выглядели как полагалось для эзотерических языков, но не помогали мне решать поставленную задачу, т.к. не были полными по Тьюрингу. Энтузиазм потихоньку угасал и эта задача казалась мне не по-плечу. Собравшись с силами, я решил, что если смогу написать программу вычисления факториала — то язык работает.

Четвертая версия языка оказалось удачной: я написал факториал, затем генерацию последовательности Фибоначи и дюжину простых примерчиков аля “сумма чисел от 0 до 99”. Язык получился что надо: необычный и в тоже время с простой понятной идеей. Главное — язык может решить любую (ну или почти любую) задачу которую можно выразить в виде вычислимой функции.

А теперь все по-порядку
Total votes 82: ↑78 and ↓4 +74
Views 29K
Comments 40

Esoteric programming languages: a systematic approach

ITMO University corporate blog Programming *
A surprising number of programming languages were created to accomplish unusual tasks that have nothing to do with programming. These are commonly called esoteric. Today, we’re going to paint a general overview of the esolang landscape, and try to figure out why people are continuing to create them.

Read more →
Total votes 7: ↑6 and ↓1 +5
Views 1.5K
Comments 0

Койяанискаци: Процессорное устройство «акына»

Delirium coding Cyberpunk CPU Logic games Electronics for beginners
Sandbox

Структурная схема «Koyaanisqatsi-CPU»

Структура Койяанискаци
SVG-Файл (актуальная версия)

Лирика

Античные времена знакомы каждому не только бессмертными произведениями от пера Гомера, но и таблицей умножения Пифагора, геометрией Евклида и винтом Архимеда под знаком Пи, которыми человечество научилось пользоваться в полной мере лишь относительно недавно. Если в античности искусством было не только уметь писать стихи и прозу, но и проектировать катапульты или стенобитные орудия, то сейчас существуют жёсткие рамки и разделения, когда вывести очередную самодостаточную красивую и полезную формулу является искусством лишь как формальная игра слов. Математика правит современным миром безраздельно, цинично переплетаясь с миром искусства, нагло вторгаясь хитрейшими вычислениями во все сферы нашего досуга, отдыха и быта, диктуя свои правила и законы, под давлением которых выцветают и пёстрые краски знаменитых шедевров, переходя в ядовитые оттенки полнометражек.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 3.4K
Comments 4

Проектирование процессорного устройства «Койяанискаци» шаг за шагом

Delirium coding Cyberpunk CPU Logic games Electronics for beginners
Tutorial
В отличии от аналогичных материалов по проектированию процессора с применением справочного материала книги «Код» Чарльза Петцольда и придерживанием некоторых правил, здесь будет изложена позиция проектировщика лишь на собственном опыте. Основной акцент будет направлен на построение автомата программного управления с машинным кодом, который представляется не сухим набором нулей или единиц, но читаем аббревиатурами двухсимвольных слов шестнадцатеричной системы счисления. Здесь машинный код будет придерживаться парадигмы псевдокода, который довольно легко понимаем подготовленным разработчиком и легко исполняем на уровне железа малой ТТЛ-номенклатурой данным целевым проектируемым процессорным устройством.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 3.2K
Comments 3

Koyaanisqatsi: The WYSIWYG-style byte-code CPU

Creative Commons *FPGA *DIY
Draft diagram of core

SVG-File (actual draft)

Lyrics


Ancient times are known to everyone not with immortal works from Homer's only, but also with the Pythagorean multiplication table, Euclidean geometry and the Archimedes screw and the Pi, which we learned to use only relatively recently. In antiquity the art was not only to be able to write poetry and prose, but to design catapults or battering tools also, now there are rigid frameworks, when the discovering the new another beautiful formula is a formal words play only.
Mathematics rules the modern world completely, cynically intertwining with the world of art, intruding with calculations in all spheres of our recreation and everyday life, when the colors of masterpieces turning into poisonous colours.
Read more →
Total votes 2: ↑2 and ↓0 +2
Views 964
Comments 0