Матрица. Основным типом хранилищ данных в maCom являются многомерные матрицы. Многомерная матрица данных характеризуется размерностью (числом координат) и размерами по каждой из координат. Например, матрица 100×200 имеет размерность 2, размер 100 по координате "строки" и размер 200 по координате "столбцы". Элементы матриц могут содержать значения различных типов, в том числе пустые.
Метод. Основным типом вычислителей являются методы обработки матричных данных, или просто методы.
Метод — это преобразование данных, которое принимает на входе некоторое количество входных аргументов и записывает результат в выходные аргументы. Аргументами являются многомерные матрицы.
"Некоторое количество" означает ни одного, один или более одного аргумента. Такая общая структура вычислителя принята во многих системах обработки матричных данных, например в MatLab. Отличие maCom заключается в том, что несколько методов могут объединяться в один алгоритм и работать совместно.
Алгоритм объединяет несколько взаимосвязанных методов. Это позволяет реализовать концепцию обучаемых (настраиваемых) алгоритмов преобразования информации.
Матричный алгоритм — это совокупность методов с общим списком параметров. Методы алгоритма могут свободно считывать и записывать параметры алгоритма.
Классические алгоритмы распознавания имеют два метода: настройки и вычисления. Метод настройки формирует набор параметров на основе входной (обучающей) информации. Метод вычисления реализует основное преобразование данных, используя настроенные значения того же самого набора параметров. В общем случае алгоритм может иметь более двух методов, например для поэтапной настройки, для расширения состава обучающей выборки (дообучения), для оценивания качества настройки, для настройки с применением процедуры кросс-проверки, и т.д.
Методы алгоритма обязаны хранить свою внутреннюю информацию только в параметрах, и обмениваться информацией только через параметры. Это позволяет унифицировать процедуры сохранения, загрузки и просмотра внутреннего состояния алгоритмов.
Допускаются алгоритмы, имеющие только один метод. Такие алгоритмы реализуют необучаемые процедуры обработки данных.
Списки и деревья. Параметры алгоритмов, методы алгоритмов и матричные аргументы методов хранятся в виде списков ячеек.
Список ячеек — это универсальная структура данных, позволяющая хранить значения произвольных типов: числа, строки, матрицы, методы, списки, потоки.
К элементам списков можно обращаться как по именам, так и по порядковым номерам.
Ячейка списка может в свою очередь хранить еще один список. Это позволяет создавать деревья ячеек с любым уровнем вложенности.
Дерево алгоритма. Каждый алгоритм хранится в виде отдельного дерева. На первом уровне этого дерева находится поддерево параметров "Param" и по одному поддереву для каждого метода. Поддерево метода состоит из двух списков — списка входных аргументов "Input" и списка выходных аргументов "Output". Аргументы являются многомерными матрицами.
Типичная структура алгоритма иллюстрируется следующей таблицей:

Имя элемента | Назначение элемента
`Param` | поддерево параметров
`Debug` | параметр Debug — поток вывода отладочной информации
`coeff` | параметр с именем coeff
`Tune` | метод настройки (в общем случае имя метода произвольно)
`Input` | список входных аргументов
`St|F` | двумерная матрица
`St|{goal}` | вектор-столбец
`Output` | список выходных аргументов (в данном случае пуст)
`Calc` | метод настройки (в общем случае имя метода произвольно)
`Input` | список входных аргументов
`Sc|F` | двумерная матрица
`Output` | список выходных аргументов
`Sc|{y}` | вектор-столбец

Потоки. Любой объект maCom может быть сохранен в поток и считан из потока. Например, при сохранении алгоритма происходит запись всего дерева параметров и всех методов, включая их матричные аргументы. Потоки имеют одинаковый интерфейс независимо от типа носителя (файл, строка, окно, внешнее приложение, и т. д.).
Библиотеки методов. Реализации методов объединяются в динамические библиотеки методов. Каждый метод реализуется в виде отдельного объекта с очень простым интерфейсом ImaMethodDef, состоящим из функций вычисления и инициализации метода. Библиотека методов предоставляет компонент, способный создавать экземпляры методов по указанному символьному имени алгоритма. Процесс создания методов скрыт от пользователя и выполняется автоматически при создании алгоритма. Состав методов в алгоритме определяется разработчиком библиотеки, а также порядком загрузки библиотек, поскольку одна библиотека может переопределять методы, описанные в другой библиотеке.