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.


CS 4304 Compiler Construction


[TOC]


© J.A.N. LEE
Last Updated 2001/04/09