Kepsec

From AlliedModders Wiki
Revision as of 04:06, 12 March 2010 by BAILOPAN (talk | contribs) (Created page with 'wip straw-man kepsec proposal. types and expressions may apply, see store for details. == Types == === Bool === The "bool" type represents two values: <tt>true</tt> and <tt>fa...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

wip straw-man kepsec proposal. types and expressions may apply, see store for details.

Types

Bool

The "bool" type represents two values: true and false.

String

The "string" type represents ordered, finite sequences of textual characters. The length of a string is its number of elements. The size of each element is fixed, but unspecified. A string can contain zero or more elements. The maximum size of a string is unspecified, but must be at least 65,535 characters.

Integer

The "int" type represents any integer in ℤ. Integers have infinite, arbitrary precision. An implementation may limit the precision of integers if and only if it does not violate their operational semantics as described in this document.

NOTE: For example, a resource-constrained implementation may choose to trigger "out of memory" errors if an integer cannot be expressed in a 32-bit, signed machine register. However, it cannot violate the semantics of integer operations, such as overflow.

Double

The "double" type represents any value in the IEEE-754 double-precision, 64-bit floating point standard, with one exception: the 2^53-2 "NaN" values are represented by a single NaN value.

Three special values are also defined:

  • Positive Infinity, referred to symbolically in this document as ∞.
  • Negative Infinity, referred to symbolically in this document as -∞.
  • Negative Zero. Unless specified otherwise, as in the language, 0 is a positive zero, and -0 is a negative zero.