Content area

Abstract

Pascal is a high level programming language designed for use on von Neumann model computers. VAL is a high level programming language designed to run on data flow computers. The objective of this thesis is to develop an algorithm for translating Pascal programs to VAL.

Data flow computers are parallel processors which are not fashioned after the von Neumann model. The classic von Neumann machine has two defining characteristics: it has a globally addressable memory and a program counter. These qualities are contrary to parallel execution. Multiple instructions concurrently acting upon global memory may lead to conflict; sequential program instructions must be decoded sequentially to preserve the logical integrity of programs. Computer [COM] devoted an issue to data flow systems. It is a good introduction to data flow philosophy and architecture.

Parallel architectures often benefit from having programming languages specially designed to go with them. Multiprocessors have Concurrent Pascal; the ILLIAC IV array processor has GLYPNIR; dataflow machines have data flow languages such as VAL. William Ackermann(one of VAL's designers) wrote a clear and convincing introduction to data flow languages [ACK1]. He claims that the programming language characteristics required by data flow are desirable for languages written for other systems.

John Backus's "Can Programming Be Liberated from the von Neumann Style?" makes similar claims for all functional programming languages [BAG]. (Languages like VAL are sometimes called "functional." Pure LISP is another example.)

Why should we think about Pascal to VAL translation? First, any translation from one high level language to another offers a close view of each of the languages. Pascal and VAL are a particularly good pair since Pascal is imperative and VAL is expression oriented. Second, since Pascal is a sequential language and VAL has parallel computation constructs, translating a Pascal program to efficient VAL code requires detecting potential parallelism in the Pascal code. Since interest in parallel processing is rapidly growing and we are trained to view computers as sequential machines, the translation is an important exercise. Treleaven, Brownbridge, and Hopkins [THE] predict that the next generation of computers will not be modelled after the von Neumann machine. Third, the translator could be useful in its own right, if data flow really catches on.

I thought Allan and Oldehoeft [ALL] might have solved the problem of Pascal to VAL translation. They wrote an article titled "A Flow Analysis Procedure for the Translation of High Level Languages to a Data Flow Language." The title suggests that data flow languages are not high level, but VAL is a high level data flow language. Allan and Oldehoeft use the phrase "data flow language" to refer specifically to data flow graphical program representation. The title is misleading. A better one would be "Data Flow Compilation." They consider the problem of converting high level language programs to a form which is more readily used by a data flow machine. VAL is an example of a high level language which was designed to lend itself to such a conversion.

Details

1010268
Title
Pascal to Val Translation
Number of pages
92
Publication year
1983
Degree date
1983
School code
0056
Source
MAI 85/12(E), Masters Abstracts International
ISBN
9798382848679
Committee member
Lovell, Bernard; Greenshields, Ian
University/institution
University of Connecticut
University location
United States -- Connecticut
Degree
M.S.
Source type
Dissertation or Thesis
Language
English
Document type
Dissertation/Thesis
Dissertation/thesis number
31077454
ProQuest document ID
3073206346
Document URL
https://www.proquest.com/dissertations-theses/pascal-val-translation/docview/3073206346/se-2?accountid=208611
Copyright
Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Database
ProQuest One Academic