# Programming Language | ![img \|150](https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/C_Hello_World_Program.png/320px-C_Hello_World_Program.png) | 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]]