History bits
1930s: Alonzo Church and Stpehen Cole Kleene developed the lambda calculus which some consider to be the world's first programming language.
However, it was intended to model computation rather than to describe algorithms to a computer system.
1940s: Konrad Zuse designed Plankalkül, the first (real?) programming language - but was only implemented 1998.
1954-1957: John Backus and his team of
IBM researchers develop Fortran, the first widely known and successful
high-level programming language.
ALGOL 58, an attempt to develop a universal computer language.
John McCarthy (MIT) developed
Lisp, based on the
lambda calculus.
TODO
LC-3 (Little Computer 3) is an
educational assembly language with a instruction set that is less complex than x86.
lc3-vm is a virtual machine for LC-3. Its github repository is
here.
LLVM
Subprojects of LLVM include
LLVM Core libraries | source- and target-independent optimizer; code generation support for popular CPUs |
Clang | A LLVM native C/C++/Objective-C compiler. |
libc++ and libc++ ABI | implementation of the C++ Standard Library, including full support for C++11 and C++14. |
libclc | Implementation of the OpenCL standard library |
LLD | A linker |
klee | A symbolic virtual machine. It uses a theorem prover in order to try to find bugs and to prove properties of functions; it can produce a testcase in the event that it detects a bug. |
LLDB | |
compiler-rt | |
MLIR | |
OpenMP | |
polly | |
Misc:
- LLVM IR is the intermediate representation
- The Clang Static Analyzer and clang-tidy are tools that automatically find bugs in your code.