Pixilang

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Pixilangязык программирования для небольших приложений и аудиовизуальных экспериментов. Изначально (версии 1 и 2) позиционировался, как "пиксельно-ориентированный", так как большая часть функционала была заточена на работу с растровой графикой. Если сравнивать его с другими языками, то можно сказать, что Pixilang находится где-то между Бейсиком, Си и Ассемблером.

Концепция языка разработана в 2006 году Александром Золотовым (http://www.warmplace.ru) и Михаилом Разуваевым (http://goglus.com). В основу были заложены следующие принципы:

  • универсальная буквенная визуализация графики и анимации в исходном коде;
  • ориентация на идеологию демосцены;
  • простой синтаксис, минималистичность внутренней структуры;
  • кроссплатформенность;
  • минимальное использование внешних библиотек;
  • формат хранения программ — текстовый файл.

Содержание

[править] Версии 1.6 и 2.0

Pixilang 1.6 (14 августа 2008) - последняя стабильная из ветки 1.x. Работает в операционных системах GNU/Linux, Microsoft Windows, Microsoft Windows CE и PalmOS. Распространяется под лицензией BSD License (основная часть) и GNU General Public License (библиотеки GIF и XM).

Pixilang 2.0 (14 августа 2008) - экспериментальная версия; по функционалу полностью идентична версии 1.6, но имеет встроенный JIT компилятор для повышения производительности на платформе x86. Запускается только в Linux и Windows.

[править] Возможности

  • быстрое написание небольших демок/игрушек/открыток и других графических/звуковых приложений;
  • использование универсального контейнера (pixi) для хранения различных данных (текст, картинки, шрифт);
  • пиксельная графика (в том числе анимация) описывается непосредственно в исполняемом TXT-файле при помощи ASCII символов;
  • продвинутые графические команды (анимация, трансформация координат, пиксельные шейдеры);
  • отсутствие математических floating point операций для повышения скорости выполнения программ;
  • проигрывание трекерной музыки в форматах MOD и XM (используется движок PsyTexx);
  • возможность синтеза звука;
  • загрузка картинок из форматов GIF (анимированных) и JPG;
  • реал-тайм экспорт видеоряда в анимированный GIF;
  • сохранение области экрана в TXT-файл с pixilang-кодом внутри (оптимальное преобразование цветных пикселей в ASCII коды производится при помощи нейросети).

[править] С чего начать? Пример программы

Откройте любимый текстовый редактор и создайте новый файл со следующим содержимым:

Pixilang example 01
//Простой анимационный пример
//Запишем цвет #003050 в переменную o
o = #003050
//Опишем анимированную картинку (pixi), 
//состоящую из двух кадров:
logo = "
.o...ooo...o.
..o..o.o..o..
...ooooooo...
...ooooooo...
.ooooooooooo.
.o.ooooooo.o.
oo.........oo
+
.o...ooo...o.
..o..o.o..o..
...ooo.ooo...
...ooooooo...
.ooooooooooo.
.o.ooooooo.o.
oo.........oo
"
//Теперь заставим язык преобразовать эту картинку 
//из текстового вида в графический:
make_pixi( logo ) 
//В этой переменной будем хранить коэффициент увеличения:
zm = 20 
//Метка:
start: 
//Устанавливаем прозрачность 64:
transp( 64 ) 
//Стираем экран белым цветом. Слегка стираем, 
//так как установлена прозрачность 64:
clear( #FFFFFF )
//Устанавливаем прозрачность 256 (непрозрачный):
transp( 256 ) 
//Рисуем нашу картинку logo по координатам 0,0 с увеличением zm:
pixi( logo, 0, 0, zm ) 
//Уменьшаем увеличение на единицу:
zm - 1 
//Выводим результат на экран и ждем 100 миллисекунд:
frame( 100 ) 
//Переходим на метку start:
go start 

Далее запустите Pixilang интерпретатор и укажите созданный вами файл.

[править] Версия 3

Pixilang 3 - новая версия языка, переписанная практически с нуля. В ней устранены некоторые недостатки предыдущих версий и добавлены новые возможности. Версия 3 совместима с 1.6 и 2.0 лишь частично.

[править] Возможности

  • Поддержка (загрузка и сохранение) форматов WAV, JPEG, PNG.
  • Поддержка звуковых систем ALSA, SDL, OSS, DirectSound, MMSound, ASIO.
  • Синтез звука с минимальными задержками.
  • Предусмотрен набор функций для обработки больших блоков данных (например, звука или изображений).
  • Динамическая типизация.

[править] Технические детали

Pixilang запускает программу в два шага: читает исходный текст и генерирует байт-код; запускает байт-код в виртуальной машине. Если в папке с Pixilang имеется файл boot.txt, то он загружается автоматически.

Основа Pixilang - это pixi-контейнер, двумерный массив данных. В контейнере может храниться картинка, звук, строка текста или любые другие пользовательские данные. Каждому контейнеру присваивается свой уникальный номер и далее обращение к нему идет через этот номер.

[править] Ссылки

none‎
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты