{"id":45787,"url":"https://github.com/robertmuth/awesome-low-level-programming-languages","name":"awesome-low-level-programming-languages","description":"A curated list of low level programming languages (i.e. suitable for OS and game programming)","projects_count":44,"last_synced_at":"2026-07-13T22:00:24.935Z","repository":{"id":39705042,"uuid":"430123064","full_name":"robertmuth/awesome-low-level-programming-languages","owner":"robertmuth","description":"A curated list of low level programming languages (i.e. suitable for OS and game programming)","archived":false,"fork":false,"pushed_at":"2026-06-21T00:37:04.000Z","size":130,"stargazers_count":281,"open_issues_count":0,"forks_count":14,"subscribers_count":15,"default_branch":"main","last_synced_at":"2026-06-21T02:10:51.988Z","etag":null,"topics":["operating-system","progr"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertmuth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-20T14:21:42.000Z","updated_at":"2026-06-21T00:37:07.000Z","dependencies_parsed_at":"2026-04-20T09:00:50.717Z","dependency_job_id":null,"html_url":"https://github.com/robertmuth/awesome-low-level-programming-languages","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robertmuth/awesome-low-level-programming-languages","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2Fawesome-low-level-programming-languages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2Fawesome-low-level-programming-languages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2Fawesome-low-level-programming-languages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2Fawesome-low-level-programming-languages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertmuth","download_url":"https://codeload.github.com/robertmuth/awesome-low-level-programming-languages/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2Fawesome-low-level-programming-languages/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35437768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-13T21:19:13.857Z","updated_at":"2026-07-13T22:00:24.935Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Ada","Odin","ATS","Alumina","Beef","C","C++","C2","C3","Carp","Cone","Crystal","CSpydr","D","Forth","Hare","Modula-2","Nim","Oberon","Pascal (FreePascal)","Rust","V","Zig"],"sub_categories":[],"readme":"\u003e [!NOTE]\n\u003e For a table of contents press the button with the three dashes in the upper right corner of this view\n\u003e \n\u003e If you want to add or fix something in this document, send a pull request or file an issue.\n\n\n# awesome-low-level-programming-languages\n\nA curated list of **low level** programming languages primarily aimed at OS and game\nprogramming.\n\n**Excluded are languages relying on managed run-times, GC, JITs, green threads, etc.**\n(For less exclusionary lists check [ChessMax](https://github.com/ChessMax/awesome-programming-languages) or\n[Wikipedia](https://en.wikipedia.org/wiki/List_of_programming_languages).)\n\n\u003c!--\n## Template\n\n* main:\n* repo:\n* documentation:\n* discussion:\n* implementation-language:\n* meta-programming:\n* backends:\n* major projects using the language\n* syntax:\n* highlights:\n\n```\nHELLO WORLD SNIPPET\n```\n\n```\nFIBONACCI SNIPPET\n```\n--\u003e\n\n## ATS\n\n* main: http://www.ats-lang.org/\n* repo: https://github.com/ats-lang\n* documentation:\n  - http://ats-lang.sourceforge.net/DOCUMENT/INT2PROGINATS/HTML/book1.html\n  - http://www.ats-lang.org/Documents.html\n* discussion:\n  - https://news.ycombinator.com/item?id=28214665\n  - https://news.ycombinator.com/from?site=ats-lang.org\n* implementation-language: ATS\n* meta-programming: N/A\n* backends: C\n* major projects using the language: N/A\n* syntax: functional style\n* highlights:\n  - proofs\n  - dependent types\n  - C code can be specified inline\n* [pldb](https://pldb.pub/concepts/ats.html)\n\n```\n#include \"share/atspre_staload.hats\"\n#include \"share/atspre_staload_libats_ML.hats\"\n\nimplement\nmain0() = println! (\"Hello, world!\")\n```\n\n```\nfun fibc (n: int) : int = let\n  fun loop(n: int, f0: int, f1: int): int =\n    if n \u003e 0 then loop(n-1, f1, f0+f1) else f0\n  end of [loop]\nin\n  loop(n, 0, 1)\nend // end of [fibc]\n```\n\n## Ada\n\n* main:\n  1. [Ada Information Clearing House](https://www.adaic.org)\n  2. [Ada Conformity Assessment Authority](http://www.ada-auth.org)\n  3. [Ada Language](https://ada-lang.io) (Community)\n* repo: N/A\n* documentation:\n  - Reference Manuals:\n    + [Ada 2022](http://www.ada-auth.org/standards/ada22.html) - Next\n    + [Ada 2012](http://www.ada-auth.org/standards/ada12.html) - Current\n    + [Ada 2005](https://www.adaic.org/ada-resources/standards/ada05)\n    + [Ada 1995](https://www.adaic.org/ada-resources/standards/ada-95-documents)\n    + [Ada 1983](https://www.adaic.org/ada-resources/standards/ada83) - First ISO standard\n  - awesome-ada https://github.com/ohenley/awesome-ada\n  - https://learn.adacore.com/\n  - http://groups.umd.umich.edu/cis/course.des/cis400/ada/ada.html\n* implementation-language: Ada, C\n* meta-programming: generics\n* error-handlig: exceptions\n* backends: GCC (gnat), [LLVM](https://github.com/AdaCore/gnat-llvm), several commerical implementations\n* major projects using the language: numerous\n* syntax: begin/end, type to the right of identifier\n* highlights:\n  - type refinement\n  - fixed point types\n  - multitasking built in from the start\n  - real-time constructs\n  - hierarchical package system for separate compilation\n  - design by contract\n  - standard defined FFI for C, Fortran and COBOL\n* [pldb](https://pldb.pub/concepts/ada.html)\n```\nwith Ada.Text_IO;\n\nprocedure Hello_World is\nbegin\n   Ada.Text_IO.Put_Line (\"Hello World\");\nend Hello_World;\n```\n\n```\nfunction fibonacci(n : in integer) return integer is\n f1, f2, fib : integer;\n begin\n    f1 := 0;\n    f2 := 1;\n    for i in 1..n loop\n       fib := f1 + f2;\n       f1 := f2;\n       f2 := fib;\n    end loop;\n    return fib;\n end fibonacci;\n```\n## Alumina\n\n* main: https://docs.alumina-lang.net/\n* repo: https://github.com/tibordp/alumina\n* documentation:\n  - https://docs.alumina-lang.net/\n* discussion:\n  - https://news.ycombinator.com/item?id=32702812\n* implementation-language: Rust\n* meta-programming: (hygienic) macros, (duck-typed) generics, opt-in dynamic dispatch polymorphism\n* backends: compiles to C11 with GCC/Clang extensions\n* major projects using the language: N/A\n* syntax:  curly braces, type to the right of identifier\n* highlights:\n  - defer\n  - uniform function call syntax\n  - closures\n  - block expressions\n* [pldb](https://pldb.pub/concepts/alumina.html)\n\n```\nfn main() {\n    println!(\"Hello, world!\");\n}\n\n```\n\n## Beef\n\n* main: https://www.beeflang.org/\n* repo: https://github.com/beefytech/Beef/\n* documentation:\n  - awesome-beef https://github.com/Jonathan-Racaud/awesome-beef\n* discussion:\n  - https://news.ycombinator.com/item?id=21991382\n* implementation-language: C++\n* meta-programming: generics\n* backends: LLVM\n* major projects using the language: N/A\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - inspired by C#\n  - co-designed with IDE\n  - windows centric development\n* [pldb](https://pldb.pub/concepts/beef.html)\n\n```\nusing System;\n\nnamespace Hello\n{\n    class Program\n    {\n        static void Main()\n        {\n            Console.WriteLine(\"Hello, world!\");\n        }\n    }\n}\n```\n\n```\nN/A\n```\n\n## C\n\n* main: N/A\n* repo: N/A\n* documentation:\n  - https://github.com/inputsh/awesome-c\n  - https://github.com/uhub/awesome-c\n* meta-programming: pre-processor\n* error-handling: magic return values by covention\n* backends: LLVM, gcc, numerous others\n* major projects using the language: numerous\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - ubiquitous\n  - often used as a backend\n  - no namespaces\n  - array to pointer auto conversion\n  - no defer (or RAII) mechanism\n  - lots of undefined / implementation defined behavior\n* [pldb](https://pldb.pub/concepts/c.html)\n\n```\n#include \u003cstdio.h\u003e\n\nint main() {\n  printf(\"Hello World!\");\n}\n```\n\n```\nint fib(int n) {\n    int a = 0;\n    int b = 1;\n    for (int i = 0; i \u003c n; i++) {\n       int c = a + b;\n       a = b;\n       b = c;\n    }\n    return a;\n}\n```\n\n\n## C++\n* repo:\n* documentation:\n  - standard https://isocpp.org/std/the-standard\n  - reference https://en.cppreference.com/w/\n  - awesome-cpp https://github.com/fffaraz/awesome-cpp\n  - AwesomePerfCpp https://github.com/fenbf/AwesomePerfCpp\n* meta-programming:\n  - template meta programming\n  - generics (types, functions)\n  - comptime\n  - macros\n* backends: LLVM, gcc, numerous others\n* major projects using the language: numerous\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - large user base\n  - several compilers\n  - large language (evolving)\n  - slow compiles\n* [pldb](https://pldb.pub/concepts/cpp.html)\n\n```\n#include \u003ciostream\u003e\n\nint main() {\n  std::cout \u003c\u003c \"Hello World!\" \u003c\u003c std::endl;\n}\n\n```\n\n```\nint fib(int n) {\n    int a = 0;\n    int b = 1;\n    for (int i = 0; i \u003c n; i++) {\n       const int c = a + b;\n       a = b;\n       b = c;\n    }\n    return a;\n}\n```\n\n## C2\n\n* main: http://www.c2lang.org/\n* repo: https://github.com/c2lang/\n* documentation:\n  - http://c2lang.org/site/\n* discussion:\n  - https://news.ycombinator.com/from?site=c2lang.org\n* implementation-language: C2 (self hosting)\n* hello-world: http://www.c2lang.org/site/introduction/helloworld\n* meta-programming: generics, N/A\n* backends: C\n* major projects using the language:\n  - C2 (self hosting)\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - modernized C\n* [pldb](https://pldb.pub/concepts/c2.html)\n\n```\nmodule hello_world;\n\nimport stdio as io;\n\npublic fn i32 main(i32 argc, char** argv) {\n    io.printf(\"Hello World!\\n\");\n    return 0;\n}\n```\n\n```\nfn u32 fib(u32 n) {\n    return n \u003c= 2 ? 1 : fib(n - 1) +  fib(n - 2);\n}\n```\n\n## C3\n\n* main: https://c3-lang.org/\n* repo: https://github.com/c3lang/c3c\n* documentation:\n  - https://c3-lang.org/faq/compare-languages/\n* discussion:\n  - https://news.ycombinator.com/item?id=27876570\n* implementation-language: C\n* hello-world: https://c3-lang.org/getting-started/hello-world/\n* meta-programming: generics, semantic macros\n* backends: LLVM\n* major projects using the language: N/A\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - evolution of C\n  - contracts\n* [pldb](https://pldb.pub/concepts/c3.html)\n\n```\nmodule hello_world;\n\nimport std::io;\n\nfn void main()\n{\n    io::printn(\"Hello, World!\");\n}\n```\n\n```\nfn int fib(int n) {\n    int a = 0;\n    int b = 1;\n    for (int i = 0; i \u003c n; i++) {\n       int c = a + b;\n       a = b;\n       b = c;\n    }\n    return a;\n}\n```\n\n## Carp\n\n* main: https://github.com/carp-lang/Carp\n* repo: https://github.com/carp-lang/Carp\n* documentation:\n  - language guide: https://github.com/carp-lang/Carp/blob/master/docs/LanguageGuide.md\n* discussion:\n  - https://news.ycombinator.com/item?id=28875051\n  - https://news.ycombinator.com/item?id=20368969\n* implementation-language: Haskell\n* meta-programming: generics\n* backends: N/A\n* major projects using the language:\n* syntax: Lisp like\n* highlights:\n  - repl\n  - ownership tracking\n* [pldb](https://pldb.pub/concepts/carp.html)\n\n```\n(println \"hello world\")\n```\n\n```\nN/A\n```\n\n## Cone\n\n* main: https://cone.jondgoodwin.com/\n* repo: https://github.com/jondgoodwin/cone\n* documentation:\n  - reference: https://cone.jondgoodwin.com/coneref/index.html\n* discussion:\n  - https://news.ycombinator.com/item?id=19565824\n* implementation-language: C\n* meta-programming: macros, generics (types, function, modules)\n* error-handling: execptions + special syntax for same line rethrowing/default values\n* backends: LLVM\n* major projects using the language:\n* syntax: optionally indentation sensitive, type to the right of identifier\n* highlights:\n  - [Regions and Lifetimes](https://cone.jondgoodwin.com/memory.html)\n  - [Permissions and Actors](https://cone.jondgoodwin.com/concurrency.html)\n  - [Variants, Structural Traits \u0026 Delegated Inheritance](https://cone.jondgoodwin.com/types.html)\n  - [\u003c-, with, and match](https://cone.jondgoodwin.com/complexval.html)\n\n```\nimport stdio\n\nfn main():\n  print \u003c- \"Hello world!\"\n```\n\n```\nfn fib(n i64) i64:\n  mut prior i64 = 0\n  mut result i64 = 1\n  while n-- \u003e 0:\n    prior, result = result, prior + result\n  result\n\n```\n\n## Crystal\n\n* main: https://crystal-lang.org/\n* repo: https://github.com/crystal-lang/crystal\n* note: use garbage collection but it is possible to strip out runtime (see [Lilith Kernel](https://github.com/ffwff/lilith))\n* documentation:\n  - https://crystal-lang.org/reference/\n* discussion:\n  - https://news.ycombinator.com/from?site=kitlang.org\n* implementation-language: Crystal\n* meta-programming: [Sophisticated macro system](https://crystal-lang.org/reference/1.5/syntax_and_semantics/macros/)\n* backends: LLVM\n* major projects using the language: N/A\n* syntax:\n* highlights:\n  - similar to ruby\n* [pldb](https://pldb.pub/concepts/crystal.html)\n\n```\nputs \"Hello World\"\n```\n\n```\ndef fib(n)\n  a = 0\n  b = 1\n  n.times do\n    a += b\n    a, b = b, a\n  end\n  a\nend\n```\n\n## CSpydr\n\n* main: https://github.com/Spydr06/CSpydr\n* repo: https://github.com/Spydr06/CSpydr\n* documentation: https://github.com/Spydr06/CSpydr/wiki\n* implementation-language: C\n* meta-programming: macros\n* backends: x86_64 GNU Assembly, C (deprecated), LLVM (in progress)\n* major projects using the language: CSpydr's standard library\n* syntax: curly braces, type to the right of identifier with colon inbetween\n* highlights:\n  - namespaces\n  - closures\n  - automatic type inferrence\n  - custom std lib\n* [pldb](https://pldb.pub/concepts/cspydr.html)\n```\nimport \"std.csp\";\n\nfn main(): i32 {\n    std::io::puts(\"Hello, World!\");\n    \u003c- 0;\n}\n```\n\n```\nfn fib(n: i32): i32 {\n    let a = 0;\n    let b = 1;\n    for 0 .. n {\n        a + b |\u003e (a = b, b = $);\n    }\n    \u003c- a;\n}\n```\n\n## D\n\n* main: https://dlang.org/\n* repo: https://github.com/dlang, https://github.com/ldc-developers/ldc, https://gdcproject.org/\n* documentation:\n  - spec https://dlang.org/spec/spec.html\n  - overview https://dlang.org/comparison.html\n* implementation-language: D\n* meta-programming: generics\n* backends: Custom (X86-64), LLVM, gcc\n* major projects using the language: numerous\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - large language\n  - optional GC\n* [pldb](https://pldb.pub/concepts/d.html)\n\n```\nimport std.stdio;\n\nvoid main() {\n    writeln(\"Hello, World!\");\n}\n```\n\n```\nN/A\n```\n\n## Forth\n\n* main: N/A\n* repo: N/A\n* documentation:\n  - http://www.forth.org/\n* implementation-language: C, assembler,\n* meta-programming: N/A\n* backends: Custom\n* major projects using the language: N/A\n* syntax: unique\n* highlights:\n - concatenative programming style\n - many different flavors\n - very easy to implement\n* [pldb](https://pldb.pub/concepts/forth.html)\n\n```\n: HELLO .\"Hello World \" ;\n\n```\n\n```\n: FIB ( x -- y ) RECURSIVE\n\tDUP 2 \u003e IF DUP  1- RECURSE\n\t\t   SWAP 2- RECURSE +  EXIT\n\t     ENDIF\n\tDROP 1 ;\n```\n\n## Hare\n\n* main: https://harelang.org/\n* repo: https://sr.ht/~sircmpwn/hare/\n* documentation:\n  - https://harelang.org/documentation/\n* implementation-language: C\n* error-handling: via tagged unions\n* meta-programming: ???\n* backends: QBE (restricted to 64bit: X86-64, AArch64)\n* major projects using the language:\n  - https://sr.ht/~sircmpwn/himitsu/\n  - https://sr.ht/~sircmpwn/helios/\n* syntax: curly braces, type to the right of identifier\n* [pldb](https://pldb.pub/concepts/hare.html)\n\n```\nuse fmt;\n\nexport fn main() void = {\n    fmt::println(\"Hello, world!\")!;\n};\n```\n\n```\nN/A\n```\n\n## Hylo \n\n(formerly: Val)\n(Needs more work - pull requests welcome)\n\n* main: https://www.hylo-lang.org\n* repo: https://github.com/hylo-lang/hylo\n* documentation: https://docs.hylo-lang.org/language-tour/\n* discussion: https://news.ycombinator.com/item?id=31788527\n* implementation-language: Swift\n* meta-programming:\n* backends:\n* major projects using the language\n* syntax: curly braces, type to the right of identifier\n* highlights: value semantics\n\n## Jai\n\n* main: N/A\n* repo: N/A\n* documentation:\n  - inofficial https://inductive.no/jai/\n  - inofffical https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md\n  - Jonathan Blow YT channel https://www.youtube.com/user/jblow888/videos\n  - Community Library https://github.com/Jai-Community/Jai-Community-Library\n* implementation-language: C++\n* meta-programming: macros\n* backends: LLVM (?), Custom\n* major projects using the language: N/A\n* syntax: N/A\n* highlights:\n  - compile time execution\n\n```\nN/A\n```\n\n```\nN/A\n```\n\n## Kit\n\n* main: https://www.kitlang.org/\n* repo: https://github.com/kitlang/kit\n* documentation:\n* discussion:\n  - https://news.ycombinator.com/from?site=kitlang.org\n* implementation-language: Haskell\n* meta-programming:\n* backends: C\n* major projects using the language: N/A\n* syntax: curly braces, type to the left of identifier\n* highlights:\n\n```\nfunction main() {\n    printf(\"%s\\n\", \"hello world!\");\n}\n```\n\n```\nN/A\n```\n\n\n## Lateralus\n\n* main: https://github.com/bad-antics/lateralus-lang\n* repo: https://github.com/bad-antics/lateralus-lang\n* implementation-language: Python, C\n* meta-programming: decorators, compile-time evaluation\n* backends: VM (register-based bytecode), C\n* major projects using the language: N/A\n* syntax: Rust/Swift inspired, curly brace, pipeline operators\n* memory management: ownership model with borrow semantics\n* highlights:\n  - pipeline-native: first-class `|\u003e` pipe operator for data flow\n  - bare-metal OS support\n  - custom assembly format (LTasm) with 80+ opcodes\n  - full LSP with VS Code extension (14 providers)\n  - async/await concurrency\n  - pattern matching, module system, generics\n\n```\nmodule examples.hello\n\nimport io\n\npub fn main() {\n    let nums = [1, 2, 3] |\u003e map(fn(x) x * x)\n    io.println(\"Hello from Lateralus!\")\n}\n\npub struct Point { x: float  y: float }\n\nimpl Point {\n    pub fn new(x: float, y: float) -\u003e Point {\n        return Point { x: x, y: y }\n    }\n}\n```\n\n```\n; Hello World in Lateralus Assembly\n.section code\n.global _start\n\n_start:\n    PUSH_STR   \"Hello, World!\"\n    PRINTLN\n    PUSH_IMM   0\n    HALT\n```\n## Lobster\n\n* main: http://aardappel.github.io/lobster/README_FIRST.html\n* repo: https://github.com/aardappel/lobster\n* discussion:\n  - https://news.ycombinator.com/item?id=19567160\n* implementation-language: C(++)\n* meta-programming: generics, comptime evals\n* backends: JIT (libtcc), C++\n* major projects using the language: N/A\n* syntax: python inspired, white space sensitive\n* memory management: compile time reference counting, lifetime analysis, borrow checker, cycle detection at program exit.\n* highlights:\n  - (flow sensitive) type inference\n\n```\nprint \"hello world\"\n```\n\n```\ndef fibonacci(n:int):\n  var a = 0\n  var b = 1\n  for(n):\n    let t = b\n    b += a\n    a = t\n  return a\n```\n\n## Modula-2\n\n* main: https://en.wikipedia.org/wiki/Modula-2\n* repo:\n  - Gnu Modula 2 Frontend (gm2) https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/devel/modula-2\n* documentation:\n  - https://www.nongnu.org/gm2/homepage.html\n  - https://freepages.modula2.org/\n  - https://www.modula-2.net/\n* implementation-language: C (gm2)\n* meta-programming: None\n* backends: gcc (gm2)\n* major projects using the language: [Medos-2](https://en.wikipedia.org/wiki/Lilith_(computer)#Operating_system)\n* syntax: begin/end, type to the right of identifier\n* highlights:\n  - Evolution of Pascal\n  - Modules\n  - Co-routines\n* [pldb](https://pldb.pub/concepts/modula-2.html)\n\n```\nMODULE Hello;\nFROM STextIO IMPORT WriteString;\nBEGIN\n  WriteString(\"Hello World!\")\nEND Hello.\n```\n\n```\nPROCEDURE fib(n : INTEGER) : INTEGER;\nVAR\n    a, b, c : INTEGER;\nBEGIN\n    a := 0;\n    b := 1;\n\n    WHILE n \u003e 0 DO\n        c := a + b;\n        a := b;\n        b := c;\n        DEC(n)\n    END;\n\n    RETURN a\nEND fib;\n\n```\n\n## Nim\n\n* main: https://nim-lang.org/\n* repo:\n  - https://github.com/nim-lang/Nim\n* documentation:\n  - https://nim-lang.org/documentation.html\n* discussions:\n  - https://news.ycombinator.com/item?id=24800161\n  - https://news.ycombinator.com/item?id=27165366\n  - https://news.ycombinator.com/item?id=28916172\n* implementation-language: Nim (self hosting)\n* error-handing: exceptions\n* meta-programming: macros manipulating the AST, generics, templates\n* backends: JS, C\n* memory management: ARC\n* major projects using the language:\n  - Nim (self hosting)\n  - https://github.com/dom96/jester\n  - https://github.com/karaxnim/karax\n  - https://github.com/planety/prologue\n* syntax: python inspired, white space sensitive\n* highlights:\n  - c interop\n  - async implemented as library\n  - case insensitve identifiers\n* [pldb](https://pldb.pub/concepts/nim.html)\n\n```\necho \"Hello World\"\n```\n\n```\nproc fib(n: uint64): uint64 =\n    if n \u003c= 1: return n\n    return fib(n - 1) + fib(n - 2)\n```\n\n## Oberon\n\n* main: http://www.projectoberon.com\n* note:\n  - Oberon DOES use garbage collection but it has been used to implememt an influential OS of the same name\n    so we include here.\n  - There are serveral flavors of Oberon (\n      Oberon-2 (1992),\n      [Obereon-7 (2007)](http://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf),\n      [Active Oberon](http://cas.inf.ethz.ch/projects/a2/repository/raw/trunk/LanguageReport/OberonLanguageReport.pdf),\n      [Oberon+](https://github.com/oberon-lang) )\n* repo:\n  - Oberon+ https://github.com/oberon-lang/\n* documentation:\n  - http://www.projectoberon.com\n* discussion:\n  - https://news.ycombinator.com/item?id=21557057\n* implementation-language: Oberon\n* meta-programming: None\n* backends: Custom\n* major projects using the language: Oberon-OS\n* syntax: begin/end, type to the right of identifier\n* highlights:\n  - evolution of Pascal and Modula-2\n  - deliberate small language\n* [pldb](https://pldb.pub/concepts/oberon.html)\n\n```\nMODULE Hello;\n         IMPORT Oberon, Texts;\n  VAR W: Texts.Writer;\n\n  PROCEDURE World*;\n  BEGIN\n    Texts.WriteString(W, \"Hello World!\");\n    Texts.WriteLn(W);\n    Texts.Append(Oberon.Log, W.buf);\n  END World;\n\nBEGIN\n  Texts.OpenWriter(W);\nEND Hello.\n```\n\n```\nPROCEDURE fib(VAR n: INTEGER) : INTEGER;\n  VAR\n    a, b, c, i : INTEGER;\n  BEGIN\n    a := 0;\n    b := 1;\n    FOR i := 1 TO n DO\n      c := a + b;\n      a := b\n      b := c\n    END;\n    RETURN a;\nEND fib;\n```\n\n## Odin\n\n* main: https://odin-lang.org/\n* repo: https://github.com/odin-lang/Odin\n* documentation:\n  - spec https://odin-lang.org/docs/spec/\n  - https://www.youtube.com/channel/UCUSck1dOH7VKmG4lRW7tZXg\n* discussion:\n  - https://news.ycombinator.com/item?id=22199942\n* implementation-language: C++\n* meta-programming: generics\n* error-handling: \"go-style\" via multiple return values\n* backends: LLVM\n* major projects using the language: [EmberGen](https://jangafx.com/software/embergen/)\n* syntax: curly braces, type to the right of identifier\n* highlights:\n  - implcit context parameter\n* [pldb](https://pldb.pub/concepts/odin.html)\n\n```\npackage main\n\nimport \"core:fmt\"\n\nmain :: proc() {\n  fmt.println(\"Hello World!\")\n}\n\n```\n\n```\nfibonacci :: proc(n: int) -\u003e int {\n  switch {\n  case n \u003c 1:\n    return 0\n  case n == 1:\n    return 1\n  }\n  return fibonacci(n-1) + fibonacci(n-2)\n}\n\n```\n\n## Pascal (FreePascal)\n\n\n* main: https://www.freepascal.org/\n* repo: https://github.com/fpc\n* documentation: https://www.freepascal.org/docs.html\n* note: includes support for Delphi language extensions (classes, etc.)\n* discussion:\n  - https://news.ycombinator.com/from?site=freepascal.org\n* implementation-language: Pascal\n* meta-programming: generics\n* backends: Custom(X86 (32+64), PowerPC (32+64), Sparc, ARM (32+64))\n* major projects using the language\n* syntax: begin/end, type to the right of identifier\n* highlights:\n* [pldb](https://pldb.pub/concepts/pascal.html)\n\n```\nprogram Hello;\nbegin\n  writeln ('Hello, world.');\n  readln;\nend.\n```\n\n```\nfunction fibonacci(const n: integer): integer;\nvar\n  a, b, c, i: integer;\nbegin\n  a := 0;\n  b := 1;\n  for i := 1 to n do\n  begin\n    c := a + b;\n    a := b;\n    b := c;\n  end;\n  fibonacci := a\nend;\n```\n\n## Rust\n\n* main: https://www.rust-lang.org/\n* repo: https://github.com/rust-lang\n* documentation:\n  - https://doc.rust-lang.org/book/\n* implementation-language: Rust\n* meta-programming:\n  - hygienic macros\n  - generics/traits\n  - comptime\n* backends: LLVM\n* major projects using the language: numerous (including large parts of [Firefox](https://www.mozilla.org/en-US/firefox/new/))\n* syntax: curly braces, type to the right of identifier\n* highlights:\n  - memory safety focus (ownership semantics)\n  - immutable by default\n  - bare metal programming via `no_std` environment\n  - steep learning curve\n  - large language\n  - slow compiles\n* [pldb](https://pldb.pub/concepts/rust.html)\n\n```\nfn main() {\n    println!(\"Hello World!\");\n}\n```\n\n```\nfn fib(n: u8) -\u003e u64 {\n  let mut prev: u64 = 0;\n  let mut curr: u64 = 1;\n  for _ in 1..n {\n      let next = prev + curr;\n      prev = curr;\n      curr = next;\n  }\n  curr\n}\n```\n\n## Scopes\n\n* main: https://scopes.readthedocs.io/en/latest/\n* repo: https://hg.sr.ht/~duangle/scopes\n* documentation:\n* discussion:\n  - https://news.ycombinator.com/item?id=19830860\n  - https://news.ycombinator.com/item?id=16603134\n* implementation-language: C++\n* meta-programming:\n* backends: LLVM\n* major projects using the language\n* syntax: indentation sensitive\n* highlights:\n  - on-line compiler\n\n```\nprint \"hello world\"\n\n```\n\n```\nfn fib (n)\n  loop (a b = 0 1)\n    if (b \u003c n)\n      repeat b (a + b)\n    else\n      break b\n\n```\n## Swift\n\n* main: https://swift.org/\n* repo: https://github.com/SwiftLang\n* documentation:\n  - https://www.swift.org/documentation/\n* discussion:\n  - https://forums.swift.org\n* implementation-language: C++ and Swift\n* error-handling: dedicated syntax\n* meta-programming:\n  - generics\n  - compile-time evaluation\n  - macros\n* backends: LLVM, clang, many others\n* major projects using the language: most apps from Apple, server-side frameworks (Vapr, Hummingbird, SwiftNIO), and much more\n* syntax: curly braces, type to the right of identifier and C/C++ like\n* highlights:\n  - open source\n  - large user base (Apple ecosystem + beyond)\n  - ARC (Automatic Reference Counting) for memory management\n  - strong type inference\n  - protocol-oriented programming\n  - cross-platform (Apple platforms, Linux, Windows, embedded)\n  - C, C++, Obj-C and Java interoperability\n\n```swift\nprint(\"Hello, World!\")\n```\n\n```\nfunc fibbonacci(number: Int) -\u003e Int {\n\tvar a = 0\n  \tvar b = 1\n  \tfor _ in 0..\u003cn {\n    \tlet c = a + b\n    \ta = b\n    \tb = c\n  \t}\n  \treturn a\n}\n```\n\n## V\n\n* main: https://vlang.io/\n* repo: https://github.com/vlang\n* documentation:\n  - https://github.com/vlang/v/blob/master/doc/docs.md\n* discussion:\n  - https://news.ycombinator.com/from?site=vlang.io\n* implementation-language: V\n* error-handling: special case of optional types, dedicated syntax\n* meta-programming: generics\n* backends: C, LLVM\n* major projects using the language: N/A\n* syntax: curly braces, type to the right of identifier\n* highlights:\n  - go derived syntax\n  - immutable by default\n  - some confusion around memory-allocators and GC (\"autofree\")\n* [pldb](https://pldb.pub/concepts/v.html)\n```\nfn main() {\n  println('Hello, World!')\n}\n```\n\n```\nfn fn(n int) int {\n  mut a := 0\n  mut b := 1\n  for _ in 0 .. n {\n    c := a + b\n    a = b\n    b = c\n  }\n  return a\n}\n```\n\n## Vale\n\n* main: https://vale.dev/\n* repo: https://github.com/ValeLang/Vale\n* documentation:\n  - introduction https://vale.dev/guide/introduction\n  - https://www.reddit.com/r/vale/\n* discussion:\n  - https://news.ycombinator.com/item?id=16603134\n  - https://news.ycombinator.com/from?site=vale.dev\n* implementation-language: Vale, Scala\n* meta-programming: generics\n* backends: LLVM\n* major projects using the language: N/A\n* syntax: curly braces, type to the right of identifier\n* highlights:\n  - immutable by default\n  - ownership semantics\n\n```\nfn main() export {\n  println(\"Hello world!\");\n}\n```\n\n```\nN/A\n```\n\n## Vox\n\n* main: https://github.com/MrSmith33/vox\n* repo: https://github.com/MrSmith33/vox\n* documentation: N/A\n* discussion: N/A\n* implementation-language: D\n* meta-programming: generics\n* backends: Custom (X86-64)\n* major projects using the language: N/A\n* syntax: curly braces, type to the left of identifier\n* highlights:\n  - AOT + JIT\n\n```\nenum u32 stdin  = 0;\nenum u32 stdout = 1;\nenum u32 stderr = 2;\n\n@extern(syscall, 60)\nvoid exit(i32 error_code);\n\n@extern(syscall, 1)\nvoid sys_write(u32 fd, u8* buf, u64 count);\n\nvoid write(u32 fd, u8[] data) { sys_write(fd, data.ptr, data.length); }\n\nvoid main(u8* lpCmdLine, i32 nShowCmd) {\n\twrite(stdout, msg);\n\texit(0);\n}\n```\n\n```\nN/A\n```\n\n## Zig\n\n* main: https://ziglang.org\n* repo: https://codeberg.org/ziglang/zig\n* documentation:\n  - https://ziglang.org/documentation/master/\n* discussion:\n  - https://news.ycombinator.com/item?id=25797025\n  - https://news.ycombinator.com/item?id=28458713\n  - https://news.ycombinator.com/item?id=27399876\n  - https://news.ycombinator.com/from?site=ziglang.org\n* implementation-language: C++, Zig\n* meta-programming: comptime (including types)\n* error-handling: compiler built-in type, dedicated syntax\n* backends: LLVM, custom\n* major projects using the language: [tigerbeetle](https://github.com/tigerbeetle/tigerbeetle) [bun](https://github.com/oven-sh/bun)\n* syntax: curly braces, type to the right of identifier\n* highlights:\n  - small language\n  - testing built into the language\n  - variables must be declared via `const` (immutable) or `var` (mutable)\n  - no invisible control-flow\n  - defer/errdefer\n* [pldb](https://pldb.pub/concepts/zig.html)\n\n```\nconst std = @import(\"std\");\n\npub fn main() !void {\n    const stdout = std.io.getStdOut().writer();\n    try stdout.print(\"Hello, {s}!\\n\", .{\"world\"});\n}\n\n```\n\n```\nfn fibonacci(n: u32) u32 {\n   var a : u32 = 0;\n   var b : u32 = 1;\n   var i : u32 = 0\n   while (i \u003c n) : (i += 1) {\n      const c : u32 = a + b;\n      a = b;\n      b = c;\n   }\n   return a;\n}\n```\n\n\n\n# Not yet summarized (pull requests welcome):\n\n### Austral\n\n* main: https://github.com/austral/austral\n\n### Cakelisp\n\n* https://cakelisp.handmade.network/\n\n### Carbon\n\n* https://docs.carbon-lang.dev/\n* https://github.com/carbon-language/carbon-lang\n\n### eC\n\n* https://ec-lang.org/\n\n### Helix\n\n* https://github.com/helixlang/helix-lang\n\n### Inko\n\n* https://inko-lang.org/\n\n### Jiyu\n\n* https://jiyu.handmade.network/\n\n### LitaC\n\n* https://github.com/tonysparks/litac-lang\n\n### Modula-3\n\n* https://en.wikipedia.org/wiki/Modula-3\n\n### Move\n\n* https://move-language.github.io/move/\n\n### Myr\n\n* https://myrlang.org/\n\n### Neat\n\n* https://neat-lang.github.io/\n\n### Nelua\n\n* https://nelua.io/\n\n### Oak\n\n* https://github.com/adam-mcdaniel/oakc/\n\n### Ocen\n\n* https://github.com/ocen-lang/ocen\n\n### Seed7\n\n* http://seed7.sourceforge.net/\n\n### Silk\n\n* https://github.com/AjayMT/silk\n\n### Sparrow\n\nhttps://github.com/Sparrow-lang/sparrow\n\n### Terra\n\n* https://terralang.org/\n\n### Vala\n\n* https://vala.dev/\n\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/robertmuth%2Fawesome-low-level-programming-languages/projects"}