Flavors Technology, Inc. |
Paracell Users' Guide |
|
Here is a list of all keywords in the Paracell language and related information.
Examples of keyword use are provided under each keyword heading. In some instances, these examples are simple phrases, while in other sections are self-contained and can be compiled as a unit. Such sections of compileable code are shown in green.
Keywords that appear in red have recently been implemented in the latest release of the Paracell compiler. Further information will be added to these keywords shortly!
Word Type: Relational Operator
Description: Compares the values of two expressions. If the first expression is less than the second value, then evaluates to true, otherwise false.
Syntax:
{an expression} is less than {an expression}
Examples:
if x is less than 5 /* this is the same as: if x < 5 */
then add 17 to x.
#kappa is a local machine integer initially OFF.
if #iota is less than #theta
then #kappa is ON
else #kappa is OFF.
Related Topics |
Exception Values propagation for lesser
< | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | unknown | true | true | true | true | unknown |
-OK | false | OK | true | true | true | unknown |
0 | false | false | false | true | true | unknown |
+OK | tfalserue | false | false | OK | true | unknown |
+RAIL | false | false | false | false | unknown | unknown |
unknown | unknown | unknown | unknown | unknown | unknown | unknown |
Results:
OK: a valid value within range of representation (i.e., true or
false)
unknown: neither true nor false
Word Type:
Description: natural logarithm, base e
Syntax:
Examples:
#two is a local float initially 2. lambda is a float initially 0. lambda = ln #two. // lambda = ln 2 = .6931
Word Type:
Description:
Syntax:
Examples:
#two is a local paracell number initially 2. lambda is a float initially 0. lambda = ln two. // lambda = ln 2 = .6931
Word Type:
Description: common logarithm, base 10
Syntax:
Examples:
#two is a local paracell number initially 2. // base 10 log mu is a floating point number initially 0. mu = log (10 * #two). // mu = log 20 = 1.3010
Word Type:
Description: base 2 logarithm
Syntax:
Examples:
#sixtyFour is a local safe integer initially 64. nu is a pnumber initially 0. nu = log2 (#sixtyFour). // nu = 6 = log2(64); 2**6 = 64
Word Type:
Description: logicals may only have values of TRUE, FALSE or UNKNOWN
Syntax:
Examples:
xi is a logical initially TRUE. if kappa is OFF then xi is TRUE else xi is FALSE.
Word Type:
Description:
Syntax:
Examples:
#one is a local machine integer initially 1.
Word Type: Special Function
Description: Finds the maximum from a given set of values.
Syntax:
max {set of variables}
Examples:
max (x, y, Generator_1)
max (x, y, and Generator_1)
foo = max (#one, #two, #three).
#one is a local machine integer initially 1. #two is a local machine integer initially 2. #three is a local machine integer initially 3. foo is a machine integer initially 0. foo = max(#one, #two, #three). // foo = 3
Related Topics |
Exception Values propagation for max
max | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-OK | -OK | OK | 0 | +OK | +RAIL | NAN |
0 | 0 | 0 | 0 | +OK | +RAIL | NAN |
+OK | +OK | +OK | +OK | +OK | +RAIL | NAN |
+RAIL | +RAIL | +RAIL | +RAIL | +RAIL | +RAIL | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Special Function
Description: Finds the minimum from a given set of values.
Syntax:
min {set of variables}
Examples:
min (x, y, Generator_1)
min (x, y, and Generator_1)
bar = min (#one, #two, #three).
#one is a local machine integer initially 1. #two is a local machine integer initially 2. #three is a local machine integer initially 3. bar is a machine integer initially 0. bar = min(#one, #two, #three). // bar = 1
Related Topics |
Exception Values propagation for min
min | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | -RAIL | -RAIL | -RAIL | -RAIL | -RAIL | NAN |
-OK | -RAIL | -OK | -OK | -OK | -OK | NAN |
0 | -RAIL | -OK | 0 | 0 | 0 | NAN |
+OK | -RAIL | -OK | 0 | +OK | +OK | NAN |
+RAIL | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Arithemitic Operator
Description: Computes the difference of two numbers.
Syntax:
{expression} minus {expression}
Examples:
17 minus x /* this is the same as 17 - x */
y minus (x + z) /* this is the same as y - (x + z) */
alpha = 1 minus 3. // alpha = -2
Related Topics |
Exception Values propagation for minus
minus | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | NAN | NAN | -RAIL | -RAIL | -RAIL | NAN |
-OK | NAN | OK | -OK | -??? | -RAIL | NAN |
0 | +RAIL | +OK | 0 | -OK | -RAIL | NAN |
+OK | +RAIL | +??? | +OK | OK | NAN | NAN |
+RAIL | +RAIL | +RAIL | +RAIL | NAN | NAN | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Arithemitic Operator
Description:
Applies the modulus function to two variables. It has a number
of uses with examples below.
Syntax:
{expression} mod {expression}
Examples:
Generator_2 mod Generator_2
Gernerator_2 mod (x + y + Generator_1)
PI is the constant 2 * acos 0.
gamma and delta are paracell numbers.
epsilon and zeta are machine integers.
rho is a floating point number.
#beta is a local float initially 0.
#temp is a local safe integer.
#four is a local pnumber initially 4.
if #beta < 1000
then add PI to #beta
else #beta = 0.
gamma = #beta mod 1. // #gamma = the fractional part of #beta
rho = #beta mod 1. // the same as the above line, but a float
delta = #beta mod #four. // #delta takes on real values from 0 to 4
epsilon = #beta mod #four. // rounding up can cause #epsilon to be 4
#temp = #beta. // convert #beta to an integer
zeta = #temp mod #four. // #zeta can only be 0, 1, 2 or 3
Related Topics |
Exception Values propagation for modulo
mod | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | NAN | NAN | NAN | NAN | NAN | NAN |
-OK | NAN | -OK | NAN | +OK | NAN | NAN |
0 | 0 | 0 | NAN | 0 | 0 | NAN |
+OK | NAN | -OK | NAN | +OK | NAN | NAN |
+RAIL | NAN | NAN | NAN | NAN | NAN | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Command Verb (Setter)
Description: Sets the value of the variable to the product of the variable and a specified value. The value to be multiplied is specified by the keyword "by".
Syntax:
multiply {a variable} by {an expression}
Examples:
multiply x by 6 /* this is the same as x = x * 6. */
multiply generator_1 by (y + 1). /* this is the same as:
generator_1 = generator_1 * (y + 1) */
Related Topics |
Exception Values propagation for Multiplication
* | -RAIL | -OK | -0.x | 0 | +0.x | +OK | +RAIL | NAN |
-RAIL | +RAIL | +RAIL | NAN | 0 | NAN | -RAIL | -RAIL | NAN |
-OK | +RAIL | +??? | +OK | 0 | -OK | -??? | -RAIL | NAN |
-0.x | NAN | +OK | +OK | 0 | -OK | -OK | NAN | NAN |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NAN |
+0.x | NAN | -OK | -OK | 0 | +OK | +OK | NAN | NAN |
+OK | -RAIL | -??? | -OK | 0 | +OK | +??? | +RAIL | NAN |
+RAIL | -RAIL | -RAIL | NAN | 0 | NAN | +RAIL | +RAIL | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Exceptional Value
Description:
1. Denotes non-representable number (Not A Number).
2. Denotes the Unknown condition branch in a Conditional Sentence;
used in place of the keyword, UNKNOWN.
Syntax:
see If...then...else...UNKNOWN
Examples:
If x is less than 5
then multiply x by 6
NAN multiplpy generator_1 by (y + 1).
Related Topics |
Word Type: Logical Operator
Description: Performs the logical NOT operation.
Syntax:
not {an expression}
Examples:
foo is a boolean initially FALSE. bar is a pnumber initially 0. if foo is not TRUE then increment bar else bar = 666 endif.
Related Topics |
Exception Values propagation for NOT
true | false | unknown | |
not | false | true | unknown |
Word Type:
Description:
Syntax:
Examples:
theta is a paracell number initially 0. if theta is not equal to 100 then increment theta else theta = 0. #myArray is a local array[1..3] of paracell numbers initially 0. #myArray[1] = 1. #myArray[2] = 2. #myArray[3] = 3.
Word Type:
Description:
Syntax:
Examples:
myArray is an array[1..3] of paracell numbers initially 0. myArray[1] = 1. myArray[2] = 2. myArray[3] = 3.
Word Type:
Description:
Syntax:
Examples:
iota is a local boolean initially TRUE. #theta is a machine integer initially 100. if #theta > 50 then iota is OFF else iota is ON.
Word Type: Logical Operator
Description: Performs the logical OR operation.
Syntax:
{an expression} or {an expression}
Examples:
x or y
If (x is 3) or (y is 4)
then add y plus 17 to x.
// x, y, and z are Paracell Numbers.
foo is a paracell number initially 0.
If foo > 100
or foo is NAN
then foo = 1
else foo = foo + 1.
Related Topics |
Exception Values propagation for operator OR
or | true | false | unknown |
true | true | true | true |
false | true | false | unknown |
unknown | true | unknown | unknown |
Word Type:
Description:
Syntax:
Examples:
kappa is a paracell number initially 0. #lambda is a local pnumber initially 1. if kappa < 100 then kappa = kappa plus #lambda else kappa = 0.
Word Type: Arithmetic Operator
Description: Computes the sum of two numbers.
Syntax:
{an expression} plus {an expression}
Examples:
17 plus x /* this is the same as 17 + x */
y plus x /* this is the same as y + x */
foo is a machine integer initially 1.
If foo < 100
then foo = foo plus foo
else foo = 1.
Related Topics |
Exception Values propagation for addition
+ | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | -RAIL | -RAIL | -RAIL | NAN | NAN | NAN |
-OK | -RAIL | -??? | -OK | OK | NAN | NAN |
0 | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
+OK | NAN | OK | +OK | +??? | +RAIL | NAN |
+RAIL | NAN | NAN | +RAIL | +RAIL | +RAIL | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type:
Description:
Syntax:
Examples:
kappa is a paracell number initially 0. #lambda is a local pnumber initially 1. if kappa < 100 then kappa = kappa plus #lambda else kappa = 0. mu and nu are local pnumbers initially 1.01. xi is a local floating point number initially 0. xi = mu ** nu. if mu is RAIL then mu = 1.01 else mu = mu * mu.
Word Type:
Description:
Syntax:
Examples:
mu and nu are local pnumbers initially 1.01. xi is a local floating point number initially 0. xi = mu ** nu. if mu is RAIL then mu = 1.01 else mu = mu * mu.
Word Type: Exceptional Value
Description: Denotes a value greater or less than what is representable.
Syntax:
Examples:
mu and nu are local pnumbers initially 1.01. xi is a local floating point number initially 0. xi = mu ** nu. if mu is RAIL then mu = 1.01 else mu = mu * mu.
Related Topics |
Word Type:
Description:
Syntax:
Examples:
#mu is a paracell number initially 3.1416. nu is a paracell number initially 0. nu = round(#mu). // nu = 3.0000
Word Type:
Description:
Syntax:
Examples:
omicron is a safe integer initially 60. rho is a paracell number initially 0. set rho to sec(omicron)°. // rho = sec(60 deg) = 2
Word Type:
Description:
Syntax:
Examples:
omicron is a local safe integer initially 60. rho is a local paracell number initially 0. set rho to sec(omicron)°. // rho = sec(60 deg) = 2
Word Type: Command Verb (Setter)
Description: Sets a variable to a specified value.
Syntax:
set {a variable} to {an expression}
Examples:
Set x to 5. /* this is the same as x = 5. */
Set generator_1 to Y + X * Z. /* this is the same as Generator_1 = x + y * z. /*
Set rho to sec (omicron)
Related Topics |
Word Type:
Description: sine
Syntax:
Examples:
#omicron is a local pnumber initially 60. sigma is a float initially 0. sigma = sin(#omicron)°. // sin(60 deg) = sqrt3 / 2 = .8860
Word Type:
Description: hyperbolic sine
Syntax:
Examples:
#one is a local machine integer initially 1. tau is a floating point number. tau = sinh(#one). // sinh(1) = 1.1752
Word Type:
Description: square root
Syntax:
Examples:
upsilon is a local machine integer initially 1000. if upsilon > 0 then subtract sqrt(upsilon) from upsilon else upsilon = 1000.
Word Type: Command Verb (Assigner)
Description: Assigns the difference of the variable and a specified value to the variable.
Syntax:
subtract{expression} from {expression}
Examples:
Subtract 17 from x /* this is the same as 17 - x */
subract y from x /* this is the same as y - x */
upsilon is a machine integer initially 1000.
if upsilon > 0
then subtract sqrt(upsilon) from upsilon
else upsilon = 1000.
Related Topics |
Exception Values propagation for minus
minus | -RAIL | -OK | 0 | +OK | +RAIL | NAN |
-RAIL | NAN | NAN | -RAIL | -RAIL | -RAIL | NAN |
-OK | NAN | OK | -OK | -??? | -RAIL | NAN |
0 | +RAIL | +OK | 0 | -OK | -RAIL | NAN |
+OK | +RAIL | +??? | +OK | OK | NAN | NAN |
+RAIL | +RAIL | +RAIL | +RAIL | NAN | NAN | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type:
Description: tangent
Syntax:
Examples:
#PI is the local constant 2 * acos 0. #four is a local paracell number initially 4. foo is a paracell number initially 1. foo = tan(#PI / #four). // tan(pi/4) = 1
Word Type:
Description: hyperbolic tangent
Syntax:
Examples:
#one is a local paracell number initially 1. bar is a float initially 1. bar = tanh(#one). // tanh(1) = .7616
Word Type:
Description:
Syntax:
Examples:
alpha is a paracell number initially 1.1. #ONE_THOUSAND is the local constant 1000. if alpha is greater than #ONE_THOUSAND then alpha = 1.1 else alpha = alpha times 1.1.
Word Type:
Description:
Syntax:
Examples:
alpha is a paracell number initially 1.1. #ONE_THOUSAND is the local constant 1000. if alpha is greater than #ONE_THOUSAND then alpha = 1.1 else alpha = alpha times 1.1.
Word Type:
Description:
Syntax:
Examples:
alpha is a paracell number initially 1.1. #ONE_THOUSAND is the local constant 1000. if alpha is greater than #ONE_THOUSAND then alpha = 1.1 else alpha = alpha times 1.1.
Word Type: Arithmetic Operator
Description: Computes the product of two values. The value to be multiplied is specified by the keyword "by".
Syntax:
{an expression} times {an expression}
Examples:
17 times x /* this is the same as 17 * x */
y times (x + z). /* this is the same as y * (x + z) */
alpha is a paracell number initially 1.1. #ONE_THOUSAND is the local constant 1000. if alpha is greater than #ONE_THOUSAND then alpha = 1.1 else alpha = alpha times 1.1.
Related Topics |
Exception Values propagation for Multiplication
* | -RAIL | -OK | -0.x | 0 | +0.x | +OK | +RAIL | NAN |
-RAIL | +RAIL | +RAIL | NAN | 0 | NAN | -RAIL | -RAIL | NAN |
-OK | +RAIL | +??? | +OK | 0 | -OK | -??? | -RAIL | NAN |
-0.x | NAN | +OK | +OK | 0 | -OK | -OK | NAN | NAN |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NAN |
+0.x | NAN | -OK | -OK | 0 | +OK | +OK | NAN | NAN |
+OK | -RAIL | -??? | -OK | 0 | +OK | +??? | +RAIL | NAN |
+RAIL | -RAIL | -RAIL | NAN | 0 | NAN | +RAIL | +RAIL | NAN |
NAN | NAN | NAN | NAN | NAN | NAN | NAN | NAN | NAN |
Word Type: Preposition
Description: Used in assignment commands.
Syntax:
assign {an expression} to {a variable}
set {a variable} to {an expression}
Examples:
Assign 5 to x. /* this is the same as x = 5 */
Set x to 5. /* this is the same as x = 5 */
Related Topics |
Word Type:
Description:
Syntax:
Examples:
beta is of type paracell number. gamma is a boolean initially true. delta is a pnumber. epsilon is a pnumber initially 99.99. if gamma is true and delta is unknown then delta = 1, beta = 1, epsilon = 99.99, gamma is false else epsilon = sqrt(epsilon), set beta to truncate(epsilon), delta = 1 / (1 - epsilon), gamma is true.
Word Type:
Description:
Syntax:
Examples:
beta is of type paracell number. gamma is a boolean initially true. delta is a pnumber. epsilon is a pnumber initially 99.99. if gamma is true and delta is unknown then delta = 1, beta = 1, epsilon = 99.99, gamma is false else epsilon = sqrt(epsilon), set beta to truncate(epsilon), delta = 1 / (1 - epsilon), gamma is true.
Word Type:
Description:
Syntax:
Examples:
beta is of type paracell number. gamma is a boolean initially true. delta is a pnumber. epsilon is a pnumber initially 99.99. if gamma is true and delta is unknown then delta = 1, beta = 1, epsilon = 99.99, gamma is false else epsilon = sqrt(epsilon), set beta to truncate(epsilon), delta = 1 / (1 - epsilon), gamma is true.
Word Type:
Description: Denotes the Unknown condition branch in a Conditional Sentence.
Syntax:
see if...then...else...Unknown
Examples:
if x is less than 5
then multiply x by 6
UNKNOWN multiply generator_1 by (y + 1).
beta is of type paracell number. gamma is a boolean initially true. delta is a pnumber. epsilon is a pnumber initially 99.99. if gamma is true and delta is unknown then delta = 1, beta = 1, epsilon = 99.99, gamma is false else epsilon = sqrt(epsilon), set beta to truncate(epsilon), delta = 1 / (1 - epsilon), gamma is true.
Related Topics |
Next: Appendix:
Special Characters, Top: Table of
Contents
Flavors Technology,
Inc. |
Copyright© 1993-6 by Flavors Technology, Inc. All rights Reserved.