Programming Languages
Programming languages are used to describe the behavior of a computer (includes mobile phones, tablets, embedded devices and servers) to perform a specific task. There are many programming languages and each of them has its own strengths and weaknesses. Some of the programming languages are general purpose and some of them are domain specific. In this chapter, we will look different programming languages and their paradigms. We will try to classify them with different criteria such as typing, execution model, and paradigm.
A programming language is a formal specification of programs that can be executed by a computer. For this reason, it is important to know the difference between a programming language and implementation of a programming language.
Programming Language | Implementation(s) |
---|---|
C | GCC, Clang |
Java | OpenJDK, Oracle |
Python | CPython, PyPy |
Ruby | MRI, JRuby |
Javascript | V8, SpiderMonkey |
PHP | Zend Engine |
Go | gc, gccgo |
Rust | rustc |
Swift | Swift |
The syntax of a programming language describes the valid "sentences" that can be written in the language. On the other hand, the semantics of a programming language describes the meaning of the "sentences" that can be written in the language.
Programming languages often categorized by their paradigms, execution model and typing.
Compiled and Interpreted Languages
Most programming languages can be categorized as compiled or interpreted.
Programming Language | Interpreted | Compiled |
---|---|---|
Javascript | Yes | No |
Typescript | Yes | Yes |
Python | Yes | No |
Java | No | Yes |
C# | No | Yes |
PHP | Yes | No |
Go | No | Yes |