Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Definitions

1995 Version of ANSI (Equivalent to Current ISO Version) of Standard

4. Definitions

For the purposes of this standard, the following definitions apply.

[ A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, R, S, T, U, V ]

4.1 argument (of a command): M command words are verbs. Their arguments are the objects on which they act.

4.2 array: M arrays, unlike those of most other computer languages, are trees of unlimited depth and breadth. Every node may optionally contain a value and may also have zero or more descendant nodes. The name of a subscripted variable refers to the root, and the nth subscript refers to a node on the nth level. Arrays vary in size as their nodes are set and killed. See scalar, subscript.

4.3 atom: A singular, most-basic element of a construction. For example, some atoms in an expression are names of variables and functions, numbers, and string literals.

4.4 block: One or more lines of code within a routine that execute in line as a unit. The argumentless Do command introduces a block, and each of its lines begins with one or more periods. Blocks may be nested. See level.

4.5 call by reference: A calling program passes a reference to its actual parameter. If the called subroutine or function changes its formal parameter, the change affects the actual parameter as well. Limited to unsubscripted names of local variables, either scalar or array. See also call by value.

4.6 call by value: A calling program passes the value of its actual parameter to a subroutine or function. Limited to a single value, that is, the value of a scalar variable or of one node in an array. See also call by reference.

4.7 call: A procedural process of transferring execution control to a callee by a caller.

4.8 callee: The recipient of a call.

4.9 caller: The originator of a call.

4.10 command: A command word (a verb), an optional conditional expression, and zero or more arguments. Commands initiate all actions in M.

4.11 computationally equivalent: The result of a procedure is the same as if the code provided were executed by a M program without error. However, there is no implication that executing the code provided is the method by which the result is achieved.

4.12 concatenation: The act or result of joining two strings together to make one string.

4.13 conditional expression: Guards a command (sometimes an argument of a command). Only if the expression’s value is true does the command execute (on the argument). See truthvalue.

4.14 contains: a logical operator that tests whether one string is a substring of another.

4.15 data-cell: in the formal model of M execution. It contains the value and subscripts (if any) of a variable, but not the name of the variable. Many variable names may point to a data-cell due to parameters passed by reference. See also name-table, value-table.

4.16 descriptor: uniquely defines an element. It comprises various characteristics of the element that distinguish the element from all other similar elements.

4.17 device-dependent: That which depends on the device in question.

4.18 empty: an entity that contains nothing. For example, an empty string contains no characters; it exists but has zero length. See also null string, NULL character.

4.19 environment: a set of distinct names. For example, in one global environment all global variables have distinct names. Similar to a directory in many operating systems.

4.20 evaluate: to derive a value.

4.21 execute: to perform the operations specified by the commands of the language.

4.22 extract: to retrieve part of a value, typically contiguous characters from a string.

4.23 extrinsic: a function or variable defined and created by M code, distinct from the primitive functions or special variables of the language. See intrinsic.

4.24 follow: to come after according to some ordering sequence. See also sorts after.

4.25 function: a value-producing subroutine whose value is determined by its arguments. Intrinsic functions are defined elements of the language, while extrinsic functions are programmed in M.

4.26 global variable: a scalar or array variable that is public, available to more than one job, and persistent, outliving the job. See local variable.

4.27 graphic: a visible character (as opposed to most control characters).

4.28 hidden: unseen. The New command hides local variables. Also pertains to unseen elements invoked to define the operation of some commands and functions.

4.29 intrinsic: a primitive function or variable defined by the language standard as opposed to one defined by M code. See extrinsic.

4.30 job: A single operating system process running a M program.

4.31 label: Identifies a line of code.

4.32 level: The depth of nesting of a block of code lines. The first line of a routine is at level 1 and successively nested blocks are at levels 2, 3, . . . Formally, the level of a line is one plus li. Visually, li periods follow the label (if any) and precede the body of the line. See block.

4.33 local variable: A scalar or array variable that is private to one job, not available to other jobs, and disappears when the job terminates. See global variable.

4.34 lock: To claim or obtain exclusive access to a resource.

4.35 mapping: The logical association or substitution of one element for another.

4.36 map: The act of mapping.

4.37 metalanguage: Underlined terms used in the formal description of the M language.

4.38 modulo: An arithmetic operator that produces the remainder after division of one operand by another. There are many interpretations of how this operation is performed in the general computing field. M explicitly defines the result of this computation.

4.39 multidimensional: Used in reference to arrays to indicate that the array can have more than one dimension.

4.40 naked: A shorthand reference to one level of the tree forming a global array variable. The full reference is defined dynamically.

4.41 name-table: In the formal model of M execution, a set of variable names and their pointers to data-cells.

4.42 node: One element of the tree forming an array. It may have a value and it may have descendants.

4.43 NULL character: The character that is internally coded as code number 0 (zero). A string may contain any number of occurrences of this character (up to the maximum string length). A string consisting of one NULL character has a length of 1 (one).

4.44 null string: 1. A string consisting of 1 (one) NULL character; 2. A string consisting of 0 (zero) characters.

4.45 object: An entity considered as a whole in relation to other entities.

4.46 own: To have exclusive access to a resource. In M this pertains to devices.

4.47 parameter: A qualifier of a command modifies its behavior (for example by imposing a time out), or augments its argument (for example by setting characteristics of a device). Some parameters are expressions, and some have the form keyword=value. See argument.

4.48 parameter (of a function or subroutine): The calling program provides actual parameters. In the called function or subroutine, formal parameters relate by position to the caller’s actual arguments. See also call by reference, call by value, parameter passing.

4.49 parameter passing: This alliterative phrase refers to the association of actual parameters with formal parameters when calling a subroutine or function.

4.50 partition: The random access memory in which a job runs.

4.51 piece: A part of a string, a sub-string delimited by chosen characters.

4.52 pointer: Indirection allows one M variable to refer, or point to, another variable or the argument of a command.

4.53 portable: M code that conforms to the portability section of the standard.

4.54 post-conditional: See conditional expression.

4.55 primitives: The basic elements of the language.

4.56 process-stack: In the formal model of M execution, a push-down stack that controls the execution flow and scope of variables.

4.57 relational: Pertaining to operators that compare the values of their operands.

4.58 scalar: Single-valued, without descendants. See array.

4.59 scope (of a command): The range of other commands affected by the command, as in loop control, block structure, and conditional execution.

4.60 scope (of a local variable): The range of commands for which the variable is visible, from its creation to its deletion, or from its appearance in a New command to the end of the subroutine, function, or block. Scope is not textual, but dynamic, controlled by the flow of execution.

4.61 sorts after: To come after according to an ordering sequence that is based on a collating algorithm. See also follows.

4.62 subscript: An expression whose value specifies one node of an array. Its value may be an integer, a floating point number, or any string. Subscripts are sparse, that is, only those that have been defined appear in the array. See array, scalar.

4.63 truthvalue: The value of an expression considered as a number. Non-zero is true, and zero is false.

4.64 tuple: A sequence of a predetermined number of descriptors (usually a name and a series of subscripts) that identifies a member of a set.

4.65 type: M recognizes only one data type, the string of variable length. Arithmetic operations interpret strings as numbers, and logical operations further interpret the numbers as true or false. See also truthvalue.

4.66 unbound: In the formal model of M execution, the disassociation of a variable’s name from its value.

4.67 undefined: Pertaining to a variable that is not visible to a command.

4.68 unsubscripted: See scalar.

4.69 value-denoting: Representing or having a value.

4.70 value-table: In the formal model of M execution, a set of data-cells.

4.71 variable: M variables may be local or global, scalar or array.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

This page most recently updated on 16-Nov-2023, 17:33:38.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)