June 11th, 2009

with Cat The Cat

Разное.

Сегодня снова было нашествие ботов в мой ЖЖ. Чего это они?

Сравнили сегодня два описания одного и того же - описания команд простой компьютерной архитектуры, в виде DSL и в виде DSEL (последний - на Хаскеле). Разница составила 2-2,5 раза.

Чтобы добиться выразительности Хаскеля, для DSL пришлось бы либо делать многое сущностями первого порядка, чтобы можно было передавать их куда угодно, либо использовать макросы.

Пример.

Условные переходы в этой архитектуре имеют всего один формат: индекс бита регистра условий, по значению которого (0 или 1) надо выполнять переход. В DSL каждая команда описана отдельно. В Хаскеле отдельно написан общий код для всех переходов и потом отдельные переходы описываются заданием параметров для этого кода: код бита, переход по 0 или 1, название команды.

Вот.