Introduction

A programming language is a system of notation for writing computer programs.

There are millions of programming languages out there, which can be categorized in many ways: Object-oriented, functional, imperative, declarative, event-based, logic-based, high-level, etc. Most languages nowadays fit into multiple categories.

Why study Programming Languages?

In this course, we will:

Compiler

A compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).

The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language (e.g. assembly language, object code, or machine code) to create an executable program.

Compilers, even though they can be extremely fast, are too complex and hard to program. As a result, in this course, we will instead program an interpreter.

Interpreters

An interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution: