M

From Freephile Wiki

M is the short-name for the programming language MUMPS which stands for "Massachusetts General Hospital Utility Multi-Programming System". M predates SQL so it's the trendy "no-sql" before SQL. How hipster is that? Because M was developed around 1966 on the DEC PDP-7 (which didn't even have an operating system), M was an operating system of sorts and a database and a programming language all in one.

diagram of the MUMPS system architecture
M System Architecture

Implementations

InterSystems is the company that has the widest commercial implementation of M - based on their enhanced version called Caché, which is now superseded by their new system called IRIS, which has overtaken Cache in popularity[1].

M is the basis for the U.S. Veterans Administration's computer medical record system: Veterans Health Information Systems and Technology Architecture (VistA)

There are many other 'flavors' that have developed over time since the 1960's. One, called GT.M (Greystone Technology M) powers many trillions of dollars in global financial transactions.

It is the database concepts in M that make it unique, not necessarily the programming language. The M database has been described as multidimensional and post-relational, both are true. It is this database, or Global structure that makes MUMPS unique, and difficult to understand.

Learning Mumps

Professor Kevin O'Kane's website at University of Iowa https://www.cs.uni.edu/~okane/ and YouTube series: MUMPS Programming Language Tutorial

Menlo Innovations - a software consultancy out of Michigan, has a 3-part series on Mastering M. Here is Part 1

To really appreciate MUMPS, you need to understand trees (the data structure in computer science) including binary search trees[2] and B-trees This means you'll also be dealing with stacks (Data Structures/Stacks and Queues)

Learn more

Open Data Structures

https://opendatastructures.org/

Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs.

Data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and ajacency list representations; and B-trees.

The data structures in this book are all fast, practical, and have provably good running times. All data structures are rigorously analyzed and implemented in Java and C++. The Java implementations implement the corresponding interfaces in the Java Collections Framework.

The book and accompanying source code are free (libre and gratis) and are released under a Creative Commons Attribution License. Users are free to copy, distribute, use, and adapt the text and source code, even commercially. The book's LaTeX sources, Java/C++/Python sources, and build scripts are available through github.

B-tree visualization

https://www.cs.usfca.edu/~galles/visualization/BTree.html

This visualization is one of many Algorithm visualizations by David Galles of the Computer Science department at the University of San Francisco

Big O Cheat Sheet

https://www.bigocheatsheet.com/

This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.

References