parent
222a71b34c
commit
a4b3d9e4a4
|
@ -50,6 +50,35 @@ Performance has improved drastically,
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
||||||
|
|
||||||
|
@section Compiler
|
||||||
|
The compiler itself has cruft from over the years and most of the code
|
||||||
|
exists from the design prior to object files and symbol tables.
|
||||||
|
There is plenty of room for optimization.
|
||||||
|
|
||||||
|
@enumerate
|
||||||
|
@item Validate against an algebraic type system.
|
||||||
|
Certain classes of bugs can be avoided entirely by stating that
|
||||||
|
values must always be a vector of positive real numbers, for
|
||||||
|
example.
|
||||||
|
The compiler can determine the type of expressions by the
|
||||||
|
symbols it references and by its child expressions.
|
||||||
|
In situations that are not resolvable at compile-time,
|
||||||
|
runtime checks via terminating classifications would do;
|
||||||
|
an example being the sum of two unsigned integers being
|
||||||
|
non-zero.
|
||||||
|
In cases where types are simply too difficult to determine
|
||||||
|
without significant compiler work,
|
||||||
|
annotations can be used to declare expressions equivalent
|
||||||
|
to certain mathematical concepts
|
||||||
|
(e.g. ``this function is equivalent to rounding to the
|
||||||
|
nearest integer'');
|
||||||
|
this can also serve as an alternative to primitives in
|
||||||
|
certain instances,
|
||||||
|
since native target language features could be used.
|
||||||
|
|
||||||
|
@end enumerate
|
||||||
|
|
||||||
|
|
||||||
@section Input/Return Map
|
@section Input/Return Map
|
||||||
@enumerate
|
@enumerate
|
||||||
@item Generate normal packages and use templates rather than a
|
@item Generate normal packages and use templates rather than a
|
||||||
|
|
Loading…
Reference in New Issue