Introduction to programming languages
Repositories for common programming languages, frameworks, and compilers
- C# / .NEThttps://github.com/dotnet
- D: a statically typed general-purpose language designed primarily for systems programminghttps://github.com/dlang
- Darthttps://github.com/dart-lang
- Gohttps://github.com/golang/
(Fork of Go from Microsoft: https://github.com/microsoft/go/ )
- Java / JDKhttps://github.com/openjdk/jdk
Latest version: https://github.com/openjdk/jdk21
- Juliahttps://github.com/JuliaLang/julia
- Kotlinhttps://github.com/Kotlin
- Lean (a language with a strong emphasis on mathematics)https://github.com/leanprover/lean4
- Mojo (a language that aims to provide an alternative to Python, has a similar syntax, is compatible with Python, but offers greater performance)https://github.com/modularml/mojo
- Nimhttps://github.com/nim-lang/Nim
- OCamlA functional, statically typed language from the ML family of languages, it provides a modular system coupled with an object-oriented, class-based approach.
- Odinhttps://github.com/odin-lang/Odin
- PHPhttps://github.com/php/php-src
- Rubyhttps://github.com/ruby/ruby
- Rusthttps://github.com/rust-lang/rust
- Perlhttps://github.com/Perl/perl5
- Swifthttps://github.com/swiftlang
- V8 JavaScript Enginehttps://github.com/v8/v8
- Vhttps://github.com/vlang/
- Valhttps://github.com/val-lang/val
- Zighttps://github.com/ziglang/zig
- RacketA general-purpose, cross-platform language for a wide variety of tasks—web applications, systems programming, network applications, and graphical applications. It’s more similar to functional languages, but as stated on the Racket website, it’s a “Language-Oriented Programming Language.”
- HaareA systems programming language similar to C, but simpler than C.
The language utilizes manual memory management and static typing. It is optimized for low-level tasks (development of operating systems, compilers, network applications, and system utilities that require maximum performance and full execution control). A minimal runtime environment is attached for application execution, and a standard library of functions is distributed for development. This library provides access to the operating system’s core interfaces and offers functions for working with common algorithms, protocols, and formats.
- Reasonhttps://github.com/reasonml/reason
- Grainhttps://github.com/grain-lang/grain
- GuileA free implementation of the Scheme functional programming language that supports embedding code into applications written in other programming languages.
- UniconA cross-platform, high-level programming language that evolved from the Icon language.
- Cheerp – C/C++ code compiler to WebAssembly or JavaScripthttps://github.com/leaningtech/cheerp-compiler
- jsiiA modification of the TypeScript compiler that enables the creation of class libraries in TypeScript that can be used in C#, Go, Java, and Python projects by translating them into native modules for those languages that provide the same API.
- FableF# to JavaScript, TypeScript, Python, Rust, and Dart compiler
- PRQLa language for simplifying the creation of complex queries on data that compiles to SQL
- C3 (c3lang)A systems programming language based on C. It is an evolution of C, allowing the use of the same paradigms while preserving, as much as possible, the same syntax. Although the syntax differs somewhat from standard C.
- ReScript (c3lang)A statically typed functional programming language that can run in the browser or in a Node.js environment.
- PharoObject-oriented language, a dialect of Smalltalk
- BorgoA language written in Rust with similar syntax, but compiled to Go. This is an attempt to make the language less complex than Rust and more expressive than Go.
- ErlangThe language is primarily designed for creating scalable and fault-tolerant real-time services.
- jankA general-purpose language that is a Clojure dialect and runs on top of LLVM, with the possibility of integrating native C++ code.
- TinyGoA Go language compiler designed for use in small applications such as microcontrollers, WebAssembly (wasm/wasi), and command-line tools. Based on LLVM.
- RyeA high-level dynamic programming language based on Rebol, with some additions from Factor, the Linux shell, and Golang.
C/C++
- GCChttps://github.com/gcc-mirror/gcc
- LLVMhttps://github.com/llvm/llvm-project
- Intel® Implicit SPMD Program CompilerA C compiler from Intel. It’s cross-platform—compatible with Windows, MacOS, and Linux—and can be compiled for both Intel and ARM processors.
- TinyCC (a compact and fast C compiler)https://github.com/TinyCC/tinycc
- CompCertA compiler for a subset of the C programming language that generates code for PowerPC, ARM, x86, and RISC-V processors.
- Open64 (compiler for C/C++)https://github.com/open64-compiler/open64
- Cosmopolitanhttps://github.com/jart/cosmopolitan
A library that allows you to compile a C program once and run it anywhere, like Java, except it doesn’t require an interpreter or virtual machine. Instead, it reconfigures standard GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD, and BIOS with maximum performance and minimal footprint.
- Fil-CA memory-safe compiler for C and C++. Compatibility with other C and C++ compilers is incomplete.
Python
- Pythonhttps://github.com/python
- Codon is a Python compiler.https://github.com/exaloop/codon
- RustPython is a Python interpreter written in Rust.https://github.com/RustPython/RustPython/
- Kuroko (Python dialect)https://github.com/kuroko-lang/kuroko
- Nuitka (a Python compiler written in Python)https://github.com/Nuitka/Nuitka
Pascal
- PascalABChttps://github.com/pascalabcnet/pascalabcnet
- Free Pascalhttps://github.com/fpc/FPCSource
Common Lisp
- CLISPhttps://gitlab.com/gnu-clisp/clisp
- SBCL (Steel Bank Common Lisp) – implementation of the Common Lisp languagehttps://github.com/sbcl/sbcl
- CCL (Clozure Common Lisp) is an implementation of the Common Lisp language.https://github.com/Clozure/ccl
- Clasp is a Common Lisp implementation that uses LLVM.https://github.com/clasp-developers/clasp
- ABCL (Armed Bear Common Lisp) is a Common Lisp implementation that uses the JVM.https://github.com/armedbear/abcl
- ECL (Embeddable Common-Lisp) is an implementation of Common Lisp aimed primarily at embedded systems.https://github.com/armedbear/abcl
- Movitz (Embeddable Common-Lisp) is a Common Lisp implementation primarily aimed at running on bare metal under x86.https://github.com/PuercoPop/Movitz
Assemblers
- YASM assemblerhttps://github.com/yasm/yasm
- NASM assemblerhttps://github.com/netwide-assembler/nasm
- FASM assemblerhttps://github.com/tgrysztar/fasm
Basics
- FreeBASICA cross-platform BASIC compiler with syntax similar to MS-QuickBASIC, adding new features such as pointers, OOP, unsigned data types, assembly language insertions, etc.
- FSmall Visual Basic (sVB)A compiler and development environment for the BASIC dialect, designed for educational purposes and reminiscent of Visual Basic
- QB64a cross-platform BASIC compiler that maintains compatibility with QBasic/QuickBASIC 4.5