Advanced Computing Environment | brix-os project page |
---|
removed ADD, SUB, MUL, DIV, INC and DEC names for those extensions ** added RECURSE extension
Compiler status does not reflect the recent changes to the language.
Tetra compiler (in C) |
Features: comments (single-line, multi-line and nested multi-line), modules, function and lambda creation and calling via the :func and :lambda accessors, recursion and tail recursion, parameter coercion, module and local variable declaration and assignment, local variable scopes, implicit module and local variable declaration, undeclaring local variables, heap object allocation, quoted variables, type definitions and slot access, type aliases, global and local pointers, never-null and null-checked pointers, boolean true and false enumerations, ascii character enumerations (literals), string literals (including multi-line strings), array element accessor (including memory arrays and strings), positive and negative array indices, compile-time and runtime bounds checking for arrays, nested arrays, IF/IF-NOT extension has ELSE, ELIF and ELIF-NOT virtual extensions, most assembler instructions via ASM, a simple register allocator Extensions:DEFUN, DEFTYPE, DEFMODULE, CURRENT-MODULE (temporary), DEFUN-ASM (temporary), INCLUDE (temporary), SET, SET-POINTER, UNSET, SETQ, NEW, OVERLAY-TYPE, RECURSE, RETURN, IF, IF-NOT, WHILE, WHILE-NOT, FOREACH, FOREACH-REV, BREAK, CONTINUE, REPEAT, SLOT, ALIAS, TO-INT64, TO-UINT64, TO-BYTE, TO-WORD, +, -, *, **, /, MOD, ++, --, ^, BITAND, BITOR, BITXOR, BITNOT, ~, >>, <<, ==, <>, >, <, >=, <=, AND, OR, NOT, !, NAND, NOR, NULL?, NOT-NULL?, ZERO?, NOT-ZERO?, ABOVE-ZERO?, BELOW-ZERO?, ABOVE-EQ-ZERO?, BELOW-EQ-ZERO?, BETWEEN?, NOT-BETWEEN?, EMPTY?, NOT-EMPTY?, ASM, OUTPORTB (temporary), OUTPORTW (temporary), OUTPORTD (temporary), INPORTB (temporary), INPORTW (temporary) and INPORTD (temporary), PRE (partial), THROW (partial) Types:int8, int16, int32, int64, uint8, uint16, uint32, uint64, bool, char, array, memory, string, lambda, func (hacked) Type Aliases:int -> int32, uint -> uint32, byte -> uint8, word -> uint16, dword -> uint32 and qword -> uint64 To Do: rewrite lexer and parser to handle new infix syntax. replace pointers with references. Missing Features:function interface levels, function templates, implicit function returns, implicit return type, mutually recursive functions, unpacked collections, optional function parameters, function parameter labels and parameter swizzling, dynamic types, undeclare module variables, SET..IN and SETQ..IN module and local variable scopes, multiple variable declarations and/or assignments, static local variables, variable histories, dynamic types, inheritance, parameterized types, default slot values, auto-generated constructors for types with primary slots, methods, type constructors and destructors, type accessors, 'variable' type modifier, type properties, submodules, virtual slots, function aliases, ranges, enumerations, bit-fields, array literals, unicode string literals, unicode character literals, lists, unions, files, streams, loop histories, platform specific code, closures, exceptions, contracts Missing Extensions:CAST-RETURN, FUNC, #, COPY, CLONE, LOCK, ORIG, OLD, SUM, LEN, MIN, MAX, INHERIT-FROM, METHOD, CONSTRUCTOR, DESTRUCTOR, DEFSET, DEFGET, DEFEXEC, CAST-TO-PARENT, DEFSUBMODULE, FOREACH-UP/DOWN, REPEAT-UP/DOWN, MATCH, CATCH, RETHROW, POST, ASSERT, PLATFORM, SET extension flags STATIC, MUTABLE and IMMUTABLE
|
---|---|
Boot/Setup code |
Boot sector loads setup, setup gathers system information and loads the core.
|
Core code |
The existing assembler code needs to be converted to Tetra.
The new DEFUN-ASM extension will allow the existing assembler code to be used without porting it. This is a temporary solution until ASM supports all required instructions.
|
Device code |
The existing assembler code has drivers for floppy, keyboard, text screen and partial
vga/vesa support. This code needs to be converted to Tetra.
The new DEFUN-ASM extension will allow the existing assembler code to be used without porting it. This is a temporary solution until ASM supports all required instructions.
|
Tetra shell, compiler and assembler |
To Do: port Tetra compiler, add extension support to compiler, write an editor/shell, write an assembler
|
Graphical User Interface |
-
|
Copyright © 1995-2018 Brand Huntsman