K
- Дата создания:
- 1993
- Создан под влиянием:
- Парадигма:
- Типизация:
- Принятые расширения файлов:
- .k
K — проприетарный матричный язык программирования, предназначенный для работы с базами данных и создания финансовых приложений.
K был создан Артуром Уитни (Arthur Whitney) после его ухода из Morgan Stanley в 1993 году. Для коммерческого распространения языка он создал компанию Kx Systems, которая существует до сих пор. В 1998 году была выпущена база данных kdb, написанная на K и основанная на хранении данных в оперативной памяти. 64-битная версия этой базы kdb+ была выпущена в 2003 году и включала в себя язык Q, объединяющий возможности K и ksql — SQL-подобного языка запросов. В настоящее время распространяется только язык Q, в рамках kdb+ или нет, но фактически интерпретатор Q позволяет работать и с языком K (незадокументированной версии K4). Альтернативный вариант использования языка — свободная реализация Kona.
K был создан под влиянием APL и Scheme, но сильно отличается как от обоих этих языков, так и от других вариантов APL. Особенности языка:
- Программы записываются символами набора ASCII, как и в J. Элементарные функции и операторы записываются одиночными символами (не алфавитно-числовыми), при этом одному символу обычно соответствуют до пяти значений, нужнаое из которых выбирается в зависимости от контекста.
- Основной структурой данных, в отличие от APL, являются гетерогенные списки, состоящие из элементов различных типов. Впрочем, однородные списки (массивы) активно используются, и у многих операторов K есть варианты, предназначенные специально для обработки массивов.
- Как и в J, для описания сущностей языка используются грамматические термины (хотя K не заходит в этом так далеко). Данные называются существительными, функции, преобразующие данные, — глаголами, а функции высшего порядка, образующие глаголы, — наречиями. Предопределенных наречий всего 6, и язык не позволяет определять новые.
- Глаголы подразделяются на атомарные (применяющиеся к атомарным значениям в списке, независимо от того, насколько глубоко в структуре вложенности списка они находятся) и неатомарные (применяющиеся с списку в целом). Почти все глаголы унарны или бинарны, но в общем случае глагол может иметь произвольное количество аргументов.
- Функции-глаголы являются объектами первого класса, т.е. могут использоваться в тех же контекстах, что и данные-существительные.
- Язык реализует словари — ассоциативные массивы с индексами-строками. На словарях основано глобальное иерархическое пространство имен, так называемое K-дерево.
- K-дерево — способ организации данных и кода программ языка. Вершинами дерева являются каталоги — глобальные переменные-словари, содержащие данные, код и другие каталоги. В каждый момент интерпретации программы один из каталогов является текущим, и имена переменных трактуются относительно него. Этот механизм оказывается очень эффективным для разделения модулей и областей видимости.
Обычно программист K взаимодействует с языком через консоль; для ввода и визуализации данных используется графический интерфейс с виджетами, автоматически синхронизирующимися с соответствующими переменными.
Элементы синтаксиса:
Объявление переменной с присваиванием значения | name:value |
---|
Комментарии
]]>blog comments powered by Disqus
]]>