]]> ]]>
Править | Обсудить | История

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

]]>

Работа программистам