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 LanguageImplementation(s)
CGCC, Clang
JavaOpenJDK, Oracle
PythonCPython, PyPy
RubyMRI, JRuby
JavascriptV8, SpiderMonkey
PHPZend Engine
Gogc, gccgo
Rustrustc
SwiftSwift

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 LanguageInterpretedCompiled
JavascriptYesNo
TypescriptYesYes
PythonYesNo
JavaNoYes
C#NoYes
PHPYesNo
GoNoYes

Imperative Programming Languages

Declarative Programming Languages

Summary

Exercises

Extra Resources