AmiBroker Formula Language: what programming language most similar to it?

Hello,

I searched the Web and these forums but was unable to find the answer.

What more common programming laguage does AFL (AmiBroker Formula Language) derive from? Or what what language does it derive from?

Say, Java has syntax very similar to C++. Most of C# is derived from Java with a little C++ put back in.

S (programming laguage in statistical package R) is derived from APL.

Things don't hang in vacuum.

Thanks!
 
It's similar to C

But (and by the words of the developer Tomasz Janeczko):

.
.
.
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

here is some more info
amibroker.com/guide/AFL.html
amibroker.com/guide/h_understandafl.html
amibroker.org/userkb/
etc
 
Back
Top