<< >> Contents Help

# 41. Glossary

Adverb One of the primary parts of speech. An adverb modifies the word or phrase to its left to produce a derived entity that can be any of the four primary parts of speech.

Anonymous Having no name. Said of the result of an execution.

Atom Any single number, single character, or single box. Also called a scalar. An atom is a noun with rank 0 .

Array A noun comprising atoms arranged along one or more axes. Each atom is identified by its index list. J arrays are rectangular, meaning that all 1-cells contain an identical number of 0-cells, and all 2-cells contain an identical number of 1-cells, and so on.

Axis One of the dimensions along which the atoms of an array are arranged. The atoms of every noun are arranged along zero or more axes where each axis has a corresponding length and each unique list of nonnegative integers in which each integer is less than the length of the corresponding axis designates a unique atom of the noun.

Boolean Having a numeric value restricted to the values 0 and 1 .

Cell A subarray of a noun consisting of all the atoms of the noun whose index lists have a given prefix. For positive k, each k-cell of a noun whose shape is s has the shape ((- k <. #s) {. s) and together they can be assembled to reconstruct the noun. For negative k, the k-cells are defined to be the (0 >. k + #s)-cells.

Conjunction One of the primary parts of speech. A conjunction modifies the words or phrases to its left and right to produce a derived entity that can be any of the four primary parts of speech.

Copula One of the parts of speech, signifying an assignment of a value to a name. The copulas are =. and =: .

Derived Entity The result of executing an adverb or conjunction. If the part of speech of a derived entity is known, it may be called, for example, a derived verb.

Dyad (dyadic) A verb with left and right operands (which must be nouns). Any verb may be used as a monad or dyad, depending on whether it has a left noun operand when it is executed.

Entity A noun, verb, conjunction, or adverb

Execution The process of replacing a verb and its operands on the execution stack with the result from applying the verb to those operands; or of converting a fragment into a derived entity in accordance with the definition of the fragment, and replacing the fragment on the execution stack by a single word referring to the derived entity.

Execution Stack The set of words of a sentence that have been examined by parsing in its search for an executable fragment, as modified by the replacement performed by execution.

Fill An atom appended to a noun to extend the length of the noun to a required length, especially when the noun must be extended because it is being made a cell in an array whose cells are longer than the noun.

Fragment 2 or 3 words on the execution stack in a context that makes them executable.

Frame The frame of a noun with respect to k-cells is the shape of the noun with the last r items removed, where r is the rank of a k-cell of the noun. When a noun is viewed as an array of k-cells, the frame with respect to k-cells is the shape of the array of k-cells.

Framing Fill A fill added when the results from applying a verb on its operand cells are being joined into an array. Framing fills are always 0, ' ', or a: depending on the type of the result.

Fret A marker indicating the start or end of an interval.

Functional Programming A method of writing programs that describes only the operations to be performed on the inputs to the programs, without the use of temporary variables to store intermediate results. J's tacit programs are an example of functional programming. Aficionados of functional programming consider it to be a purer statement of an algorithm than the usual statement in a procedural language; as the expert J programmer Randy MacDonald has said, "If you're not programming functionally, you're programming dysfunctionally".

Global Of a name, accessible as a simple name by any verb. In the J Dictionary the word 'global' has the meaning we have assigned to the word 'public'.

Index In an array, an integer indicating position along an axis. The index of the first atom along an axis is 0 .

Index List A list of integers with the same length as the shape of a noun, designating an atom of the noun by giving its position along each axis.

Interval A sequence of consecutive indexes or cells.

Item A _1-cell of a noun. An array is a vector of its items. An atom has one item, itself.

List An array of rank 1 .

List of An array whose items are; as in 'list of 3-item lists'.

Local See private.

Locale A namespace in J. The locale in which a public name is defined is an attribute of the name. A locale is identified by a locale name which is a character string not containing an underscore.

Locative A name including both a simple name and an explicit locale.

Modifier An adverb or conjunction, which modifies its operand(s) to produce a derived entity.

Monad (monadic) A verb with no left operand. Any verb may be used as a monad or dyad, depending on whether it has a left noun operand when it is executed.

Name Either a simple name or a locative, to which an entity can be assigned.

Noun One of the primary parts of speech. An atom or array of atoms. Nouns hold the data that verbs operate on.

Parsing The right-to-left search for suitable patterns in a sentence. When a suitable pattern is found, that subset of it that constitutes an executable fragment is executed.

Part of Speech One of the six categories into which words are classified; or, the word or entity so classified. Every word has a part of speech: for primitives, the part of speech is defined by the language; for names, the part of speech is that of the entity assigned to the name. The parts of speech are: noun, verb, conjunction, adverb, punctuation, and copula. The primary parts of speech are noun, verb, conjunction, and adverb.

Partition A selection of (possibly noncontiguous) items of an array, brought together as the items of a new array to be operated on by a verb.

Path See search path.

Primitive A word whose meaning is assigned by the J language.

Private Of a name, assigned in the namespace of an explicit definition and accessible only within the explicit definition in which it was assigned.

Public Of a name, assigned in a locale and accessible from any locale via a locative.

Punctuation A part of speech. Punctuation is not executed but it affects the execution of other words. Punctuation in J comprises (, ), NB., and control words.

Rank Of a noun, the number of axes along which the atoms of the noun are arranged; the number of items in the shape. Of a verb, the highest rank of the noun operands that the verb can operate on.

Scalar See atom.

Script A file containing J sentences.

Search Path Of a locale l, the list of the names of locales that will be searched to find the definition of a name originally sought but not found in l.

Sentence An entire executable line.

Shape The list of the lengths of the axes of a noun.

Simple Name A list of letters, numbers, and underscores beginning with a letter, used to refer to an entity.

Train A sequence of words that cannot immediately be executed to produce a noun result.

Type An attribute of a noun: numeric, literal (also called string), or boxed.

Valence Of a verb definition, an indication of the number of noun operands that the definition can accept: monadic if 1, dyadic if 2, dual-valence if either 1 or 2.

Vector A sequence of cells arranged with a leading axis. An array can be construed as a vector of its items.

Verb One of the primary parts of speech. A verb operates on the noun to its right (and its left, if a noun is to its left) to produce a noun result.

Verb Fill Fill added during processing of a verb. The fit conjunction !.f can often be used to specify the fill atom to be used for verb fill.

Word A sequence of characters in a sentence, recognized as a lexical unit. A word is either a name, a primitive, a constant (which may be a number or a character or a list of either), or a synthetic word used to refer to the result of an execution.

<< >> Contents Help