The CSL language supports a notation for elementary arithmetic, relational and logical operations similar to most other high-level programming languages.

Arithmetic Operators

Elementary arithmetic operators are represented by the +, -, *, /, ^ and ** tokens as follows:


+        Addition

-        Subtraction

*        Multiplication

/        Division

^        Power

**        Power (alternative form)


Note that the subtraction operator may also be used as a unary negation: e.g., y = -x.

Relational Operators

Relational operators also follow the notation of languages like C/C++, Java and similar languages.  Note that FORTRAN-style relational operators used in older CSL language versions are no longer supported.  These operators include .EQ., .LT., .LE., etc.  FORTRAN-style relational oerators must be replaced with their C- and Java-style equivalants.


==        Equals

<        Less than

<=        Less than or equal

>        Greater than

>=        Greater than or equal

~=        Not equal

Logical Operators

The logical "and" (conjunction) and "or" (disjunction) operators are also identical in use to the C/C++ and Java analogs.  The unary "not" operator is denote by the "~" character, however, to avoid conflict with the CSL comment operator.


&&        And

||        Or

~        Not

Order of Precedence

Order of precedence in the CSL language is similar to most modern programming languages.  When it is desired to force a particular order of calculation, parentheses may be used.  For arithmetic expressions, the following order of precedence is observed:


    1. Parenthesized expressions
    2. Exponentiation (right to left)
    3. Multiplication/division (right to left)
    4. Addition/subtraction (right to left)


For relational and logical expressions, the following order of precedence is observed:


    1. Relational operators (left to right)
    2. Unary negation (~)
    3. Conjunction (&&)
    4. Disjunction (||)