Programming languages are tools for writing software. A language has three main components:

  • Syntax: defines the form of programs; how expressions, commands, declarations are built and put together to form a program
  • Semantics: give meaning to programs; how they behave when they are executed
  • Implementation: software system that can read a program and execute it in a machine, plus useful tools (editors, debuggers, etc)