M2001 - это модульный образовательный математический язык программирования для разработки и представления математических алгоритмов, от современной дискретной до классической непрерывной математики. M2001 построен на семантической структуре, основанной на теории категорий, и имеет синтаксис, аналогичный синтаксису Pascal или Modula-2.
Он разработан исключительно для педагогических целей, поэтому эффективность и простота реализации были гораздо менее важны при его разработке, чем универсальность и диапазон применения. Он был создан, чтобы сыграть важную роль в формировании формальной алгоритмической основы для студентов-математиков первого курса колледжа.
Основываясь на многоуровневой схеме ввода данных, M2001 включает в себя набор из восьми вычислительных типов и еще из шести структурированных типов. Над этими двумя, соответственно, были построены коллекции математических классов и абстрактных классов, причем последние включают наиболее часто используемые абстрактные типы данных в информатике :
matrix polynomial rationomial stack queue list powerseries series sequence tree graph digraph MATHEMATICAL CLASSES ABSTRACT CLASSES | | | | | | +-------------------------+---------------------+ | | | product sum set string exponential subdomain STRUCTURED TYPES | | | boolean character natural integer rational real complex text COMPUTATIONAL TYPES
Два нижних уровня схемы набора текста M2001 были основаны на более раннем экспериментальном языке программирования CAT.
Модульный язык математического программирования Рональд Е. Пратер [1]