CS 1104 Introduction to Computer Science

COMPILERS AND TRANSLATORS

Introduction

The concept of using a computer to translate programs
from a human-like language to machine language was first suggested by Grace
Murray Hopper in 1952, though there had been some suggestions of translating
from one natural language to another (such as Russian to English) previously.
For many years the concept of a computer doing symbolic manipulation was
rejected on the basis that computers were arithmetic machines not symbol
machines. Between 1952 and 1957 Hopper and her colleagues developed several
programming languages and implemented compilers for them using a UNIVAC
I computer. These included the languages A-1, B-0, and later MATHMATIC
and FLOWMATIC. However the earlier languages were primarily targeted to
computer programmers and not to the general user.

In 1954 John Backus
developed the idea for a user's language to express mathematical algorithms.
Approved as a research project at IBM with a curt "go ahead"
from Cuthbert Hurd, Vice President of Applied Science, Backus formed a
team of programmers who developed the language that became know as FORTRAN
and developed the first true compiler for the IBM 704. Backus gave credit
for for the ideas to Lanning and Zierler of MIT who had produced an interpreter
for a mathematical language on the TX-0 computer. From that point on there
was a proliferation of languages and compilers including COBOL, ALGOL,
and almost 2000 others.

Definitions:

Translator

A device that changes a sentence from one language to another without change of meaning.

Compiler

A program that translates between programming languages.

Interpreter

A processor that compiles and executes programming language statements one by one in an interleaved manner.

Syntax

An alphabet and a set of rules defining spatial relationships between symbols and symbol sets in a language.

Semantics

The meanings assigned to symbols and symbol sets in a language.

Pragmatics

The meanings perceived to be associated with symbols and symbol sets in a language.