Technical Reports (CIS)

Document Type

Technical Report

Date of this Version

September 1991


University of Pennsylvania Department of Computer and Information Science Technical Report No. MS-CIS-91-64.


We examine the problem of finding fully abstract translations between programming languages, i.e., translations that preserve code equivalence and nonequivalence. We present three examples of fully abstract translations: one from call-by-value to lazy PCF, one from call-by name to call-by-value PCF, and one from lazy to call-by-value PCF. The translations yield upper and lower bounds on decision procedures for proving equivalences of code. We finally define a notion of "functional translation" that captures the essence of the proofs of full abstraction, and show that some languages cannot be translated into others.



Date Posted: 04 January 2008