Проект заброшен. Единственное интересное это набросок скриптового языка.
Saku - прототип программы для параллельных вычислений.
После запуска Saku выбирите подходящую из доступных в системе платформ. Для получения списка платформ используйте команду kernel, а для смены платформы функцию set_platform():
>>> kernel
// ...
Список доступных платформ:
--> [0] Runtime Platform
[1] OpenCL 2.0: Intel(R) Core(TM) i3-4330 CPU @ 3.50GHz
>>> set_platform(1)
Выбранная платформа будет использоваться как целевая для всех вычислений.
Если какое-либо устройство отсутствует в списке доступных платформ, то проверьте наличие установленного драйвера CUDA/OpenCL.
Saku содержит набор комманд для вывода разнообразной информации. Для выполнения команды достаточно указать её имя:
>>> help
// вывод справочной информации
Команды не меняют состояние системы и используются только для вывода.
Любой ввод, который не содержит в себе наименование какой-либо из команд, является выражением. Выражения состоят из операций выполнения (вызов функций) или присваивания (вызов функции с последующей записью результата в переменную).
Прежде чем приступить к синтаксису выражений стоит рассмотреть основные типы объектов.
Saku поддерживает три базовых типа, объекты которых можно создать просто указав их значения в естественном виде.
Действительные числа:
>>> 3.14
Строки:
>>> "Привет мир"
Перечисления:
>>> 3, 4, 5, "Строка"
Объекты других типов создаются через специальные функции. К примеру: объект типа "файл" создаётся вызовом функции file() с указанием пути в качестве единственного аргумента:
>>> file("data/image.png")
Таковых конструирующих функций и ассоциируемых с ними типов существует множество. Получить полный список поддерживаемых типов вы можете с помощью команды "help".
Переменная это ссылка на некоторый объект. Для создания новой переменной достаточно указать её имя и присвоить ей некоторое значение:
>>> pi = 3.14
Вывести значение переменной можно через указание её имени:
>>> pi
3.14
Созданные переменные храняться в вычислительном ядре. Для получения списка всех переменных используйте команду "variables":
>>> variables
Переменная может хранить в себе объект совершенно любого типа и принимать новые значения не ограничено от того, какого типа объект она хранила изначально:
>>> x = 3.14
>>> x = file("data/image.png")
При присваении значений одной переменной другой, выполняется копирование:
>>> a = 5
>>> b = a
>>> a = 6
>>> b
5
Для получения типа переменной можно использовать либо команду "variables", либо специальную функцию typeof():
>>> typeof(x)
"number"
>>> typeof("Петя")
"string"