- Argentum programming language automates memory management without using Garbage Collector, so no sudden pauses.
- Unlike Rust/Swift it doesn't have memory leaks caused by cycles in pointers. It doesn't have memory leaks at all.
- It's memory-safe, type-safe, null-safe, thread-safe, const-safe, array-index-safe and so on.
- It compiles to machine code. It's crazy fast and small. It has a straightforward interop with C.
Try Argentum compiler:
- on Windows in VSCode: step by step instruction
- on Linux aglan_0.0-1_amd64.deb (todo: write a post)
Hello world in Argentum:
using sys { log } // Import function `log` from module `sys`
log("Hello world") // Call it
More examples are here: 99 bottles of beer, Tutorials
Publications
All publications and articles related to the Argentum features and ideas that were published to the broader audience:
- Announcement. Argentum programming language
- Publication 1. Managing Object Lifetimes
- Publication 2. How Argentum makes fast dynamic_cast and interface method dispatch with 4 CPU instructions
- Publication 3. How Argentum programming language handles object hierarchies
- Series of publications. Optional-Based Conditionals
Features
- What is Argentum
- Syntax
- Formal grammar
- Module file description
- Expressions
- Modules
- Multiline raw string constants and String interpolation
- Multithreading
- Tests
- Functions and callables
- Types
- Generics
- Memory management (how it works without GC)
- Object lifetime management in Argentum. First look.
- Understanding Composition in Programming: Importance, Support in Argentum, and Differences from Mainstream Languages
- More on pointers to mutable objects: Composition/Association/TemporaryLocks
- Shared Pointers and Immutable Objects
- Parent pointers and splicing
- Classes and Interfaces
- Control flow using
optionals
Tutorials
- Tutorial #0. Basic Syntax
- Tutorial #1. Fizz-Buzz.
- Tutorial #2. Graphs with Cycles.
- Tutorial #3. Call C99 functions from Argentum.
- Tutorial #4. SDL Demo.
- Tutorial with no number: Debugger
Project status
- Windows Demo
- 0.0.0 working Windows SDL examples: hello_world + sdl
- 0.0.1 added string module, supported \n \r \t \ff\ \ffff\ \10ffff\ escape characters
- 0.0.2 added modules with module-bound names, + module-level imports, + aliases
- 0.0.3 added shared objects, immutable objects, weak and owning pointers to frozen objects, const pointers, const methods, module level constants, freeze operation, splicing, parent pointers.
- 0.04 multiline string literals, string interpolation
- 0.0.5 parameterized classes (generics), platform class/interface methods.
- 0.0.6 debugger v1
- 0.0.7 multithreading
- Argentum got immutable objects and shared ownership (aggregation)
- May 17. Argentum got Multiline raw string constants and String interpolation
- May 26. Argentum got generics, and FFI-methods.
- May 30. Debugger v0 Breakpoints, stepping, local vars of primitive types
- June 5. Debugger v1 Object inspection, watch expressions, strings and limited arrays.
- July 28. Multithreading. Asynchronous message passing.