similar to a excel, but very simpler than that.
In each cell we have to store a literal integer value, a referential integer value (that is, a reference to the value stored at another cell) or an equation.
A referential integer value is stored as a string that starts with the symbol "=" followed by the target cell address expressed as a string.
An equation is entered as a string that starts with the symbol "=" and is an expression that may contain the operators "+", "-", "*" and "/" for addition, subtraction, multiplication and integer division. An expression may also contain the symbols "(" and ")" for group of sub-expressions but without nesting. The values in an expression may be literal integers or a reference to a value stored at a cell. The expressions are evaluated left-to-right without any specific operator precedence order. But sub-expression precedence is maintained.
A cell may store the special function "sum", which is the summation of values in a range of cells (either column-wise or row-wise). This special equation is represented as a string "=sum(start_address..end_address)".