---
key: pl/llvm
kind: plang
name: "LLVM"
url: https://plangs.page/llvm
---

# LLVM

> Set of compiler technologies for developing language frontends and architecture backends.

Set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. The name LLVM originally stood for Low Level Virtual Machine, though the project has expanded and the name is no longer officially an initialism.

## Facts

- Appeared: 2003
- Homepage: https://llvm.org/
- GitHub: https://github.com/llvm/llvm-project
- Languish ranking: #89

## Relationships

### Paradigms

- [Assembly](https://plangs.page/paradigm/assembly)
- [Compiled](https://plangs.page/paradigm/compiled)
- [Multi](https://plangs.page/paradigm/multi)

### Platforms

- [Cross-Platform](https://plangs.page/platform/cross)

### Type Systems

- [Object-Oriented](https://plangs.page/type-system/object)

### Target Of

- [Kotlin](https://plangs.page/kotlin)

### Influenced

- [Clang](https://plangs.page/clang)
- [WebAssembly](https://plangs.page/webassembly)

### Written With

- [C++](https://plangs.page/c++)

### Used to Write

- [Inko](https://plangs.page/inko)
- [Jank](https://plangs.page/jank)
- [Julia](https://plangs.page/julia)

### Licenses

- [Apache 2.0](https://plangs.page/license/apache)
- [BSD](https://plangs.page/license/bsd)

### Tags

- [Application Framework](https://plangs.page/tag/framework)
- [Assembler](https://plangs.page/tag/asm)
- [Compiler](https://plangs.page/tag/compiler)
- [Data Analysis](https://plangs.page/tag/analysis)
- [Interpreter](https://plangs.page/tag/interpreters)
- [Ray Tracer](https://plangs.page/tag/ray-tracer)
- [Shell](https://plangs.page/tag/shell)
- [Visualization](https://plangs.page/tag/viz)
