Category Publication

How fast is Argentum (part 2)

The previous “benchmark” tested integer arithmetic, control structures and function/lambda calls. This benchmark tests data structures, object creation, method calls and pointers. It’s based on First of all, tests from the above site have a number of issues: Let’s…

How fast is Argentum?

Argentum is advertised as fast. But how fast it actually is? Here is a simple benchmark of three languages: Python, C, and an x86-64 assembly. Though this benchmark is questionable: This though gives a glimpse on how these languages are…

What for?

The secret actual reason for Argentum creation Argentum executables are small (starting from kilobytes w/o specific runtime libs), they have no memory and CPU overheads. So this language is applicable to everything from microcontrollers to desktops, web and mobile platforms.…

Nested Optionals, `&&`, `||`

In Argentum optional type can wrap any type, including another Optional. This theoretically allows having types like ?int, ??int, ???int, and so on. Why is this needed? For instance, when accessing a container of bool or optional elements, it’s necessary…

Optional and Containers Indexes/Keys

In Argentum all standard containers, return optionals (?T) when indexed with x[i]. Therefore, Argentum makes it impossible to access beyond the array bounds or using an invalid key in associative containers. It not only helps to prevent OOB errors. It…

Optionals and Weak References

In Argentum, associative reference (also known as weak) is one of fundamental built-in types. Such reference is easily created, copied, passed, and stored. It is not a pointer, it is rather a Schrodinger box that may or may not have…

Argentum optionals and Type Casting

In Argentum typecast operator has syntax: expression ~ ClassOrInterface. It performs two types of type castings. Unlike casts in Java and C++, where it is not required to check the typecast result, in Argentum, it is syntactically impossible to access…