# Programming Language
|  | A **Programming Language** is a system of notation for writing computer programs. |
|-|-|
| | wikipedia:: [Programming language](https://en.wikipedia.org/wiki/Programming_language) |
## Types
### Interpreted Language
- Examples
- Python
- don't need a compiler, just an interpreter that translates the source code directly as the program is run (or translates it to some other source code to be more efficient).
### Compiled Language
- Translates source code into another computer language, usually assembly or machine language.
- Swift
- Takes source code and compiles it into object code/binary/the executable
### High-Level vs Low-Level Language
- Low
- Machine Language
- Assembly Language
- Technically, a computer can only run machine language - everything else needs to be processed before it can be run.
## Languages
- [[Python]]
- [[Java]]
- [[JavaScript|JavaScirpt]]
- [[+Groovy]]
- [[TypeScript]]
- [[Scala]]
- [[Rust]]
- [[Ruby]]
- [[C Sharp|C#]]
- [[C & C++]]
- [[Assembly language]]
- [[Machine code]]
- [[AppleScript]]
- Swift
- Perl
- Lua
- Lisp
- Prolog
- Erlang
- Elixir
- Kotlin
- [[+Groovy]]
- [[PowerShell]]
- [[Regular Expressions|RegEx]]
- [[awk]]
- [[sed]]
- [[Regular Expressions|RegEx]]
- [[Ansible|Ansible]]
- [[Puppet]]
- [[Chef]]
- [[Terraform]]
- [[Pulumi]]
- [[GitLab Pipelines]]
- [[Jenkins]] pipeline
- [[Shell]]
- [[Bash]]
- [[HTML]]
- [[+CSS]]
- [[React]]
- [[Vue.js]]
- [[Angular]]
- [[Astro]]
- [[Svelte]]
- [[SQL]]
## Transpiling vs Compiling
### Transpiler
- Usually for translating from languages at a similar level of abstraction
- aka source-to-source compiler
- https://en.wikipedia.org/wiki/Source-to-source\_compiler
### Compiler
- https://en.wikipedia.org/wiki/Compiler
- https://illustrated.dev/compilers
- Usually for translating from a high-level language to a low-level language like assembly or machine code for execution
- "Many Modern languages use both processes. They are first compiled into a lower level language, called byte code, and then interpreted by a program called a virtual machine. Python uses both processes, but because of the way programmers interact with it, it is usually considered an interpreted language."
## [[Programming Paradigm]]s
## Inbox
- [[Turing completeness]]