Caché ObjectScript

{{Short description|Programming language}}

{{Multiple issues|

{{self-published|date=October 2011}}

{{original research|date=October 2011}}

{{notability|date=October 2011}}

{{one source |date=April 2024}}

}}

{{Infobox programming language

| name = Caché ObjectScript

| year = 1997

| influenced_by = MUMPS

| operating_system = Cross-platform

}}

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

=[["Hello, World!" program|Hello world]] program as a routine=

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

{{Cite web|url=https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=TCOS_Quit|title = Quit Command | ObjectScript Tutorial | Caché & Ensemble 2018.1.4 & 2018.1.5}}

=[["Hello, World!" program|Hello 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()

See also

References

{{Reflist}}