Caché ObjectScript
From Wikipedia the free encyclopedia
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
First appeared | 1997 |
---|---|
OS | Cross-platform |
Influenced by | |
MUMPS |
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.
Caché programming examples[edit]
Hello world program as a routine[edit]
hello // hello world routine write "hello world" end quit // end
Then in Caché Terminal (assuming you wrote the hello routine to the SAMPLE namespace):
SAMPLE> DO ^hello
Hello world program as a ClassMethod[edit]
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()
See also[edit]
- GT.M, an implementation of MUMPS
- Profile Scripting Language, an extension to MUMPS
References[edit]
External links[edit]
- http://www.intersystems.com/cache
- https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_objectscript