Primitive types

Argentum has very few primitive types: Argentum allows to work with 8-bit, 16-bit, 32-bit, 64-bit types in a raw data structures with the help of sys_Blob class. This is mostly useful for interop with C or other languages. When declaring…

Argentum got const-ness and shared ownership

Tl;DR Added two pointers “*Class”, “&*Class”, one operator “*expression”, one type of constant “*methods”. What’s added: How to use Sometimes it is good to have immutable data objects. This is how it’s done in Java: This is how it’s implemented…

Tutorial #0 Basic syntax

The sources of argentum programming language are organized in modules.Modules are text files with extension ag residing in the same directory. They are always in UTF-8 encoding. On compiler invocation one of modules is passed to it as a starting…

Names and modules handling

Starting today Argentum got new rules for modules and name visibility. TL;DR Previously: Now: Examples All examples can be found in windows-demo #1 Basics #2 Friend of my friend… The SDL-FFI module contains the low-level function declarations implemented in C:…

Tutorial #2. Graphs with Cycles.

Tutorial updated to v.0.0.2 Let’s solve the following coding interview problem: You are given a directed graph in the form of a text string: “a>b b>c c>d e>f b>e e>a c>c” Graph nodes are marked with letters a-z. The graph…

Tutorial #1. Fizz-Buzz.

Code updated to v0.0.2: added module imports. Preparations Setup VSCode environment as shown here: how-to-play-with-argentum-in-vscode. Right-click on src folder and select new file: Type fizz_buzz.ag Question Fizz-buzz is a famous coding interview question. Usually it sounds as follows: Write to…

Windows Demo v0

It’s just released: a demo that lets everyone to try the Argentum programming language on Windows. Download link:  argentum-demo.7z It contains: Short instruction: For the SDL graphical demo application do these three commands: Play with `*.ag` files in `src` directory to see…

Object lifetime management in Argentum. First look.

All nowadays programming languages fall in three possible categories on controlling object lifetimes, memory management and maintaining data structures: All these three approaches have something in common.  They all allow developers to create a mess out of data structures and…