99 bottles of beer
There is a famous kid’s song in the USA: 99 bottles of beer on the wall, 99 bottles of beer. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the…
programming language
programming language
There is a famous kid’s song in the USA: 99 bottles of beer on the wall, 99 bottles of beer. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the…
Now argentum classes and interfaces can have parameters: Parameters can be used in place of classes in type declarations: In v0 there are three limitations: Some of these limitations will be reduced in next revisions. Arrays became generics too: These…

Multiline raw strings can have placeholders with the common language expressions: It prints: As described here, the format expression of a multiline string defines extra indent, tab handling, line endings and extra linefeeds There is more. It can contain one…
String literals are bad but necessary In general, the use of literal strings in the program source code is considered a bad practice. There are two reasons for this: Unfortunately, in the modern world, a huge number of programs are…
Argentum can call C/C++ functions and pass parameters of primitive data types and objects. On Argentum side: Create a module io.ag and declare there a number of functions with “;” in place of body: On C/C++ side: Create a library:…
Module source file contains three parts (order matters): Dependencies In this example moduleA is used without name imports, thus all names of that module can be referred using long names: moduleA_functionfromModuleA For example: sys_getParent. While moduleB is used with imports.…
General program structure Argentum program consists on modules. All module sources are placed in the same directory in text files having “.ag” extension. File name matches module name. One module is passed to the compiler as starting module name. Compiler…
Each mutable object can tell who is its parent.These parent pointer are maintained automatically at a very low cost (single move instruction).They simplify handling of document data models and allow integrity checks if needed. In this example we build a…
Personally I find the very conception of immutable variables very oxymoronic and illogical. When “immutable variable” is a field, it doesn’t work as immutable in some cases: at least in constructors and in deserialization logic. It prevents objects from delegating…
Type deduction for fields, lambda parameters, results, local variables and constants Every value in Argentum has statically assigned type. For fields, constants, variables and lambda prototypes compiler deduces their types automatically by their initial values: Explicit type declarations: Only function/method…