>>  <<  Ndx  Usr  Pri  JfC  LJ  Phr  Dic  Rel  Voc  !:  wd  Help  J for C Programmers

                                                                                                                                           45. 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 .

Array  A noun comprising atoms arranged along 0 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.

Explicit Locale  A locale identifier appended to a name, in one of the two forms simplename_localename_ or simplename__var where var is a variable containing a locale name.

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 bigger than the noun.

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

Frame  The k-frame of a noun, or 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, ' ', a:, or the empty symbol, 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'.

Identity Element  The identity element i of a dyadic verb u is the value that satisfies i = i u y and i = y u i for all y in the domain of .  Also called the neutral.

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

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.

Neutral  See identity element.

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), boxed, or symbol.

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.  A non-scalar 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.

>>  <<  Ndx  Usr  Pri  JfC  LJ  Phr  Dic  Rel  Voc  !:  wd  Help  J for C Programmers