Skip to content

Glossary

Alexander G. Pronchenkov edited this page May 16, 2024 · 1 revision

Glossary of Arolla

Expr

A multifunctional abstraction that can represent various structures, such as computational graphs or syntactic trees.

Note: There are four kinds of expression nodes:

  • literal -- stores a value,
  • leaf -- represents an external data input,
  • placeholder (consider merging with leaf),
  • operator node -- binds an operator to its inputs.

AValue

A value. Almost everything in Arolla is a value, including types and operators. A significant exception is "expression", which is not a value.

AType

A type identifier, such as ARRAY[FLOAT32]. In contrast, dtype usually only identifies the type of elements within an array.

Note: (For engineers) The atype defines the memory layout of values such as byte size, alignment, and methods for constructing, copying, and destructing.

The Arolla's type system does not support type inheritance (by design).

Operator

Identifies a computation (in the case of computational DAG) or a grammar rule (in the case of AST).

Operator arguments / operator inputs

Operator arguments refer to what you pass to an operator or function in Python: fn(arg1, arg2, keyword_arg=arg3).

The arguments can be either positional or keyword, and the arguments for parameters with default values can be omitted.

Operator inputs, on the other hand, are the actual values that the operator sees: these are always a linear sequence of values (without keywords), and default values must be explicitly mentioned.

Example: Let's consider the following:

@arolla.optools.as_lambda_operator('axpb')
def axpb(a, x, b = 0):
  returns a * x + b

In the call axpb(1, x=2), we pass two arguments to the operator: 1 and x=2. The corresponding inputs will be (1, 2, 0), where 0 is the default value for the parameter b.

Standard library

  • primitive types: INT32, FLOAT32, ...
  • arrays of primitives: ARRAY[*], DENSE_ARRAY[*], ...
  • operator library: core.*, math.*, ...
Clone this wiki locally