The Microsoft code name "M" Modeling Language Specification

Microsoft Corporation

November 2009

[This content is no longer valid. For the latest information on "M", "Quadrant", SQL Server Modeling Services, and the Repository, see the Model Citizen blog.]

[This documentation targets the Microsoft SQL Server Modeling CTP (November 2009) and is subject to change in future releases. Blank topics are included as placeholders.]

The Language Specification provides guidance on the structure of the code name "M" language.

The Microsoft code name "M" Language Specification is the authoritative source for "M" grammar and syntax. It contains detailed information about all aspects of the language. The code name "M" Modeling Language is a language for defining domain models and domain-specific languages (textual DSLs). "M" was created to allow developers to efficiently capture their intention in a form that is natural to author but also efficient to store and query using off-the-shelf database technology.

**Download the complete "M" language specification
**Docx Format
XPS Format
PDF Format


Introduction to "M" – This section provides an introduction to the fundamental concepts in "M".

Lexical Structure – This section defines how Unicode characters are combined to form line terminators, white space, comments, tokens, and pre-processing directives.

Text Pattern Expressions – Text pattern expressions perform operations on the sets of possible text values that one or more terms recognize.

Productions– A production is a pattern and an optional constructor.

Rules– A rule is a named collection of alternative productions.

Languages – A language is a named collection of rules for imposing structure on text. 

Types – This section describes how both intrinsic and derived types are defined and used within the "M" language.

Computed and Stored Values – This section describes the definition and scope of computed values and stored values (a.k.a. fields).

Expressions – This section defines the syntax, order of evaluation of operands and operators, and meaning of expressions.

Modules –Modules in "M" contain declarations of types, extents, and computed values.

Attributes – Attributes provide metadata which can be used to interpret the language feature they modify.

Catalog – This section contains a definition of the "M" Catalog using "M" itself.

Standard Library– This section describes the standard types used within the "M" specification.

Glossary – This section provides the definition of words used elsewhere in the specification.