Category Features

Pipe and initializer operators

These two binary infix operators simplify some frequent scenarios Pipe operator This operator allows to pass the value from left operand to the right operand and return the result of the right operand. Initializer (colombo) operator This operator allows to…

Strings simplified

The first language iteration is almost over. It’s time to revise some previously made decisions on syntax and semantic. Nowadays Argentum has too many syntax for strings – single and multiline, with and without interpolation, strings are defined with “”…

SQLite integration

Argentum got SQLite integration: Build & run: It prints (depending on the actual content of the database): This code: Other supported features not shown in this demo: Limitations:

Map, SharedMap, WeakMap

Argentum standard library has three hash maps: Map, SharedMap, WeakMap. Most of design details of Maps are similar to Arrays: These maps are unordered key-value containers, where: Internally they are implemented as flat, open addressed, 2n grow, linear probe, robin…

Array, WeakArray, SharedArray

Argentum has no built-in Arrays Other languages have built-in arrays (and some even have built-in maps), but these built-in data structures quickly become insufficient. So the parallel containers from the standard libraries emerge. They quickly surpass and replace the built-in…

Return, break, continue

Argentum blocks can be marked with ‘=name’ labels that are visible from inner sub-statements. They are used in ^leave statements. Leave-statement can have a parameter – expression that produces result It reads as “here’s a block “sign”. If ‘i<0’ terminate…

Multithreading

Argentum threads act as ultra-lightweight processes. They don’t use mutexes, conditional variables or atomics to share state. They share immutable objects naturally and isolate hierarchies of mutable objects inside single thread. There is a mechanism of asynchronous message passing that…

Asynchronous mode

Argentum application can work in either: In the synchronous mode application gets executed this way: In this mode application has access to the following objects: There is no global variables and no mutable global state in this mode: by tracing…