Technical description

  • Ajla is a purely functional programming language aiming at ease of use that has a look and feel like traditional procedural languages.
  • Free software released under the GPL3 license.
  • Purely functional means that every function's return value depends only on its arguments.
  • Ajla has mutable local variables - they don't break purity, so they are allowed.
  • Doesn't have mutable global variables, because they break purity and they introduce side effects and race conditions.
  • Has control flow statements like if, while, for, goto - they don't break purity, so they are allowed.
  • Is memory-safe - i.e. you can't create segmentation fault in Ajla. Ajla doesn't have garbage collection, it uses reference counts to manage memory.
  • Has efficient mutable arrays - if an array's reference count is one, the array is modified in place. If not, a copy of the array is created and modified.
  • Because Ajla is purely functional, it can automatically distribute workload across multiple cores.
  • For sequencing I/O, Ajla uses world-token passing and not monads.
  • Ajla functions can be marked with preconditions and postconditions and they can be verified using the Z3 library. Ajla can also prove (using Z3) that there are no accesses out of array boundaries.

Requirements

Hardware

  • 72 MB RAM
  • 220 MB hard disk

Operating System

  • Android under Termux
  • Windows 11, 10, 8.1, 8, 7, Vista, XP, 2000, NT, 95 natively
  • iOS under iSH (slow due to Apple's decision
  • Linux
  • Windows Subsystem for Linux 1 and 2
  • macOS
  • FreeBSD, NetBSD, OpenBSD
  • Cygwin (a Unix-like environment for Windows)
  • OS/2 2.0 or newer (recommended 4.5 or newer)
  • Hurd, Minix 3, Haiku
  • Solaris, ILLUMOS
  • Should work but wasn't tested: ReactOS, Inferno, AIX, QNX, SCO UNIX, HP-UX. UNIXWare
Ajla
Ajla logotype
Paradigm Purely functional, procedural, structured
Designed by Mikuláš Patočka, PhD.
Developer Mikuláš Patočka, PhD.
First appeared May 24, 2024
Stable release 0.3.1
Preview release Git
Typing discipline Static, strong
Scope Lexical
Memory management Reference counting
OS Cross-platform
License GPL 3 or later
Filename extensions .ajla
Website ajla-lang.cz
Influenced by
C, Haskell, Pascal

Pronunciation

Ajla is pronounced /ˈʔäjlä/ (🔉 MP3 pronounce).

Etymology

Mikuláš Patočka has named Ajla after his favourite Akita Inu dog Ajla of his ex-flatmate.

History

Mikuláš Patočka won a 🏆gold medal at the International Olympiad in Informatics, has a PhD. in computer science, is employed as a full-time Linux kernel developer and got the idea of making his own programming language Ajla which would combine the advantages of functional and procedural languages. On May 24, 2024 he released the first version.

Licensing

Ajla is free software: you can redistribute it and/or modify it under the terms of the GNU GPL 3 or (at your option) any later version.

The license of the web page is written at the bottom of the web page.

This Ajla website © 2025-2026 by Karel Kulhavý, Mikuláš Patočka is licensed under CC BY-SA 4.0