Oct 08

This is part 13 in a series of articles on obscure programming languages.

What is M?

The Microsoft “M” programming language is a declarative language for working with data and building domain models.  M lets users write down how they want to structure and query their data using a textual syntax that is convenient to both author and reader.  M does not mandate how data is stored or accessed, nor does it mandate a specific implementation technology.  This is not to be confused with the MUMPS language, which is also known as M.

M Design

M is a simple language.  M builds on three basic concepts: values, types, and extents:

  • A value is data that conforms to the rules of the M language.
  • A type describes a set of values.
  • An extent provides dynamic storage for values.

In general, M separates data typing from storage.  A given type can be used to describe data from multiple extents as well as to describe the results of a calculation.  This allows users to start writing down types first and decide where to put or calculate the corresponding values later.

The M language does not specify how to map a declared extent to an external store such as an RDBMS.  However, M was designed to make such implementations possible and is compatible with the relational model.

M History

Last year at the PDC, Microsoft announced the modeling platform “Oslo.”  The goal of Oslo is to reduce the mismatch between humans and computers by making things more declarative in nature.  The Oslo project consists of three core pillars: write, interact, and store.  The M programming language represents the first pillar and allows developers to express complex data models in text.  Microsoft released M in the Oslo SDK in January 2009.

“Hello World” in M
module Hello 
{
    language HelloLanguage 
    {
        syntax Main = "Hello, World";
    }
}
References

Article published on October 8, 2009




One Response to “M: Obscure Programming Language of the Month”

  1. Tweets that mention M: Obscure Programming Language of the Month -- Topsy.com Says:

    […] This post was mentioned on Twitter by ComputerGeeker. ComputerGeeker said: M: Obscure Programming Language of the Month http://bit.ly/Cok9C […]

Leave a Reply