Chapter 1 - Introduction to "M"
The "Oslo" Modeling Language (M) is a modern, declarative language for working with data. M lets users write down how they want to structure and query their data using a convenient textual syntax that is convenient to both author and read.
Introduction TO "M"
The "Oslo" Modeling Language (M) is a modern, declarative language for working with data. M lets users write down how they want to structure and query their data using a convenient textual syntax that is convenient to both author and read. M does not mandate how data is stored or accessed, nor does it mandate a speci .c implementation technology. Rather, M was designed to allow users to write down what they want from their data without having to specify how those desires are met against a given technology or platform. That stated, M in no way prohibits implementations from providing rich declarative or imperative support for controlling how M constructs are represented and executed in a given environment.
M builds on three basic concepts: values, types, and extents. Here's how M de.nes these three concepts:
A value is simply 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 the typing of data from the storage/extent of the data. 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 .rst and decide where to put or calculate the corresponding values later.
On the topic of determining where to put values, the M language does not specify how an implementation maps 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.
Another important aspect of data management that M does not address is that of update. M is a functional language that does not have constructs for changing the contents of an extent. How data changes is outside the scope of the language. That said, M anticipates that the contents of an extent can change via external (to M) stimuli. Subsequent versions of M are expected to provide declarative constructs for updating data.
This chapter provides a non-normative introduction to the fundamental concepts in M. Chapters 2-6 provide the normative de.nition of the language.