Sophisticated source level debugger with breakpoints, stepping, frames, etc...
Integer Data Types: SBYTE, UBYTE, SSHORT, USHORT, SLONG, ULONG, XLONG, GIANT
Floating Data Types: SINGLE, DOUBLE.
Built-in single and double precision complex number types: SCOMPLEX, DCOMPLEX.
Built-in single and double precision complex arithmetic (+, -, *, /).
Scope: AUTO, AUTOX, STATIC, SHARED, SHARED /group/, EXTERNAL, EXTERNAL /group/
Arrays of all types, including strings and composites.
Arrays are manually elastic (they can be resized anytime).
Strings are automatically elastic (they resize automatically).
Complete set of bitfield operators and intrinsics.
Arithmetic shift operators (<<<_and_>>>).
Bitwise shift operators (<<_and_>>).
Logical operators (!,_!!,_&&,_||,_^^).
Functions are fully encapsulated by default.
Function arguments are passed by value by default.
Function arguments can be passed by value, reference, address.
Function arguments can be numerics, strings, arrays, composites.
XBasic functions can call C functions, and be called by C functions.
XBasic memory allocation is faster than C equivalent.
Strings testable for TRUE/FALSE in IF, CASE, WHILE, UNTIL, etc.
Arrays testable for TRUE/FALSE in IF, CASE, WHILE, UNTIL, etc.
Arrays redimensionable without losing contents.
Conventional regular arrays and tree-structured irregular arrays.
Subarrays can be detached from any node and attached to any other.
Computed GOTOs, GOSUBs, function calls.
Functions can return values of any type, or no value (VOID).
DO...LOOPs can have WHILE or UNTIL tests at top, bottom, both.
Extended loop constructs (DO DO, DO LOOP, DO FOR, DO NEXT).
Shell and subtask execution directly from XBasic.
Complete type conversion with natural syntax.
System constants with pre-defined values.
SELECT CASE substantially enhanced.
Interactive GuiDesigner and GUI function library.
Function libraries for advanced math, complex math, matrix math, graphics, etc.