Caché ObjectScript
Programming language
Caché ObjectScript is a part of the Caché database system sold by InterSystems. The language is a functional superset of the ANSI-standard MUMPS programming language. Since Caché is at its core a MUMPS implementation, it can run ANSI MUMPS routines with no change. To appeal as a commercial product, Caché implements support for object-oriented programming, a macro preprocessing language, embedded SQL for ANSI-standard SQL access to M's built-in database, procedure and control blocks using C-like brace syntax, procedure-scoped variables, and relaxed whitespace syntax limitations.
The language has private and public variables and globals. Global has a different meaning in this language than in most; such variables are global across routines, processes, and sessions. Thus, editing a global variable is making permanent and immediate changes to a system-universal database (which survives reboots, etc.). The scope of a private variable is the local function, the scope of a public variable is the entire process. Variables, private and public, may be single elements or complete multi-dimensional arrays.
The great majority of Caché's feature-set is inherited from the ANSI MUMPS standard. See that article for details on how data is represented and the different ways a programmer can think about the data during development.
01Caché programming examples
Hello world program as a routine
hello // hello world routine write "hello world" end quit // endThen in Caché Terminal (assuming you wrote the hello routine to the SAMPLE namespace):
SAMPLE> DO ^helloHello world program as a ClassMethod
Class User.Helloworld { ClassMethod HelloWorld() { // Write to console Write "Hello World" Quit } }Then in Caché Terminal (assuming you wrote the User.Helloworld Class to the SAMPLE namespace):
SAMPLE> DO ##class(User.Helloworld).HelloWorld()Sources and credits
This article is adapted from the Wikipedia article “Caché ObjectScript”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.