.
.
.
So although it looks like C it is way more easy than C. What is single operator in AFL (like array addition) involves many line of code in C plus memory allocation/deallocation (and keeping track on all that). SIMPLICITY OF USE plus compactness of code is the paramount design decision. That's why arrays in AFL are automatically managed, have size that automatically refers to "visible" area, so you can simply add arrays with single + operator. With general purpose C language with "normal" arrays you would need to manage memory for arrays by yourself, alignment (if size differs which elements to add), looping (you need to perform calculations on individual elements of array). (maybe you don't know but in C and there are no built-in dynamic arrays, only fixed compile-time size is supported, and dynamic array is implemented via pointers and explicit memory allocation malloc/free)
As for "matrix" operations - that this does not belong to the definition of any general purpose language.
There are no "matrix" operations in any popular general purpose language C/C++/Java/JScript/Basic/Pascal. In C/C++ even scalar trigonometric operations like sin( x) or string concatenation are NOT part of the language.
The language itself defines:
a) syntax
b) basic arithmetic operators + precedence working on primitive types only (scalar integer and/or float)
c) flow control (conditional execution, loops)
d) structural concepts (variables/functions/procedures/structures/objects)
e) some miscellaneous stuff like run-time type info, exception handling etc.
And that's it.
Anything more is supplied by LIBRARIES. In C there is a library for basic string manipulation (such as concatenation - strcat) or floating point. The same with any high-level stuff like matrices - this is the area which is implemented by EXTERNAL libraries (not part of the language).
Libraries in AFL can be provided by:
a) #include - the AFL code implementing features via functions
b) AmiBroker Development Kit - allowing to write extensions (functions) as a DLL in any compiled language.
c) JScript/VBScript d) any external COM object
http://www.amibroker.com/guide/a_aflcom.html
This covers any imaginable application and any imaginable need you may have.
.
.
.
Best regards,
Tomasz Janeczko
amibroker.com