Terminology: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Removed redirect to German terminology)
Tag: Removed redirect
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
APL terminology can be confusing, especially as it often differs from common conventions in [[wikipedia:computer science]], including distinguishing between terms that are usually considered synonyms.
APL terminology can be confusing, especially as it often differs from common conventions in [[wikipedia:computer science|computer science]], including distinguishing between terms that are usually considered synonyms.


== Basic terms ==
== Basic terms ==


{| class=wikitable
{| class=wikitable
! Term !! Explanation !! Common names in Computer Science
! Term !! Explanation !! Other names used in Computer Science
|-
|-
| [[Argument]] || an [[array]] that a [[function]] is applied to || Argument, [[wikipedia:Parameter (computer programming)|Parameter]]
| [[Argument]] || an [[array]] that a [[function]] is applied to || [[wikipedia:Operand|Operand]], [[wikipedia:Parameter (computer programming)|Parameter]]
|-
|-
| [[Array]] || a collection of [[element]]s arranged along '''zero''' or more [[axes]] (note that a [[scalar]] is also an array) || [[wikipedia:Tensor#As_multidimensional_arrays|Tensor]], [[wikipedia:Array_data_structure#Multidimensional_arrays|Multi-dimensional array data structure]], [[wikipedia:Array_data_type#Multi-dimensional_arrays|Multi-dimensional array data type]] but note that [[wikipedia:Scalar (mathematics)|Scalar]] [[wikipedia:Variable (computer science)|Variable]]s are not generally regarded as arrays
| [[Array]] || a collection of [[element]]s arranged along '''zero''' or more [[axes]] (note that a [[scalar]] is also an array) || [[wikipedia:Tensor#As_multidimensional_arrays|Tensor]], [[wikipedia:Array_data_structure#Multidimensional_arrays|Multi-dimensional array data structure]], [[wikipedia:Array_data_type#Multi-dimensional_arrays|Multi-dimensional array data type]] but note that [[wikipedia:Scalar (mathematics)|Scalar]] [[wikipedia:Variable (computer science)|Variable]]s are not generally regarded as arrays
|-
|-
| [[Cell]] || a [[subarray]] which is formed by selecting a single [[index]] along some number of leading [[axes]] and the whole of each trailing axis || [[wikipedia:Array slicing|Array slice]]
| [[Cell]] || a [[subarray]] which is formed by selecting a single [[index]] along zero or more leading [[axes]] and the whole of each trailing axis || [[wikipedia:Array slicing|Array slice]]
|-
|-
| [[Function]] || a program that is applied to one or two [[array]] [[argument]]s to produce an array result || [[wikipedia:Subroutine|Subroutine]], [[wikipedia:Computer program|Program]]
| [[Function]] || a program that is applied to one or two [[array]] [[argument]]s to produce an array result || [[wikipedia:Subroutine|Subroutine]], [[wikipedia:Computer program|Program]]
Line 16: Line 16:
| [[Major cell]] || a [[cell]] of an [[array]] which has [[rank]] one smaller than the rank of the array, or equal to it if the array is a [[scalar]] || Element
| [[Major cell]] || a [[cell]] of an [[array]] which has [[rank]] one smaller than the rank of the array, or equal to it if the array is a [[scalar]] || Element
|-
|-
| [[Matrix]] || an [[array]] of [[rank]] 2 || Table
| [[Matrix]] || an [[array]] of [[rank]] 2 || 2D array, Table
|-
|-
| [[Nested array]] || an [[array]] that contains at least one [[element]] which is not a [[simple scalar]] || [[wikipedia:Data structure|Data structure]]
| [[Nested array]] || an [[array]] that contains at least one [[element]] which is not a [[simple scalar]] || [[wikipedia:Data structure|Data structure]]
Line 22: Line 22:
| [[Operand]] || an [[array]] or [[function]] that is passed to an [[operator]] || Argument, [[wikipedia:Parameter (computer programming)|Parameter]]
| [[Operand]] || an [[array]] or [[function]] that is passed to an [[operator]] || Argument, [[wikipedia:Parameter (computer programming)|Parameter]]
|-
|-
| [[Operator]] || a higher-order function that creates [[derived function]]s based on one or two [[operands]] || [[wikipedia:Higher-order function|Higher-order function]]
| [[Operator]] || a higher-order function that [[derived function|derives a function]] based on one or two [[operands]] || [[wikipedia:Higher-order function|Higher-order function]]
|-
|-
| [[Primitive]] || a built-in [[function]] or [[operator]] which is a core part and is represented by a [[glyph]] || [[wikipedia:Language primitive|Language primitive]], [[wikipedia:Operator (computer programming)|Operator]]
| [[Primitive]] || a built-in [[function]] or [[operator]] represented by a [[glyph]] || [[wikipedia:Language primitive|Language primitive]], [[wikipedia:Operator (computer programming)|Operator]]
|-
|-
| [[Rank]] || the number of dimensions or [[axes]] in the structure of an [[array]] || Order, Degree
| [[Rank]] || the number of dimensions or [[axes]] in the structure of an [[array]] (the rank is the [[Tally|length]] of the [[shape]]) || Degree, Dimensionality, Order  
|-
|-
| [[Scalar]] || an [[array]] of [[rank]] 0 || Value
| [[Scalar]] || an [[array]] of [[rank]] 0 || Value
|-
|-
| [[Shape]] || a [[vector]] of lengths of an [[array]] along each of its [[axes]] || Array dimensions
| [[Shape]] || a [[vector]] of the lengths of an [[array]] along each of its [[axes]] (the shape of a [[scalar]] is an [[zilde|empty vector]]) || Array dimensions
|-
|-
| [[Simple scalar]] || a [[number]], [[character]], or (in dialects that support such) [[Namespace]] || [[wikipedia:Primitive data type|Primitive data type]], [[wikipedia:Value (computer science)|Value]]
| [[Simple scalar]] || a [[number]], [[character]], or (in dialects that support such) [[Namespace]] || [[wikipedia:Primitive data type|Primitive data type]], [[wikipedia:Value (computer science)|Value]]
Line 36: Line 36:
| [[Vector]] || an [[array]] of [[rank]] 1 || Array, [[wikipedia:List (abstract data type)|List]]
| [[Vector]] || an [[array]] of [[rank]] 1 || Array, [[wikipedia:List (abstract data type)|List]]
|}
|}
== See also ==
* [[German terminology]]
* [[Chinese terminology]]
{{APL development}}[[Category:Lists]]
{{APL development}}[[Category:Lists]]

Latest revision as of 10:54, 10 August 2022

APL terminology can be confusing, especially as it often differs from common conventions in computer science, including distinguishing between terms that are usually considered synonyms.

Basic terms

Term Explanation Other names used in Computer Science
Argument an array that a function is applied to Operand, Parameter
Array a collection of elements arranged along zero or more axes (note that a scalar is also an array) Tensor, Multi-dimensional array data structure, Multi-dimensional array data type but note that Scalar Variables are not generally regarded as arrays
Cell a subarray which is formed by selecting a single index along zero or more leading axes and the whole of each trailing axis Array slice
Function a program that is applied to one or two array arguments to produce an array result Subroutine, Program
Major cell a cell of an array which has rank one smaller than the rank of the array, or equal to it if the array is a scalar Element
Matrix an array of rank 2 2D array, Table
Nested array an array that contains at least one element which is not a simple scalar Data structure
Operand an array or function that is passed to an operator Argument, Parameter
Operator a higher-order function that derives a function based on one or two operands Higher-order function
Primitive a built-in function or operator represented by a glyph Language primitive, Operator
Rank the number of dimensions or axes in the structure of an array (the rank is the length of the shape) Degree, Dimensionality, Order
Scalar an array of rank 0 Value
Shape a vector of the lengths of an array along each of its axes (the shape of a scalar is an empty vector) Array dimensions
Simple scalar a number, character, or (in dialects that support such) Namespace Primitive data type, Value
Vector an array of rank 1 Array, List

See also


APL development [edit]
Interface SessionTyping glyphs (on Linux) ∙ FontsText editors
Publications IntroductionsLearning resourcesSimple examplesAdvanced examplesMnemonicsISO 8485:1989ISO/IEC 13751:2001A Dictionary of APLCase studiesDocumentation suitesBooksPapersVideosAPL Quote QuadVector journalTerminology (Chinese, German) ∙ Neural networksError trapping with Dyalog APL (in forms)
Sharing code Backwards compatibilityAPLcartAPLTreeAPL-CationDfns workspaceTatinCider
Implementation ResourcesOpen-sourceMagic functionPerformanceAPL hardware
Developers Timeline of corporationsAPL2000DyalogIBMIPSASTSC