
Fully Abstract Compilation via Universal Embedding [pdf] - mpweiher
https://www.williamjbowman.com/resources/fabcc-paper.pdf
======
nickpsecurity
Alright, I have a hard time following some of these papers because of the
wording. Does this basically mean the language is immune via the compiler to
failures or attacks from abstraction gaps between what high-level language
shows and what low-level target actually does? Or something else entirely?

~~~
mafribe
Full abstraction (FA) simply means two things:

1\. That any two source programs are equal exactly when their translations are
equal. So FA is parametrised by two notions of program equality, one for the
source, one for the target.

2\. That the source and target language are substantially different.

Requirement (2) is vague and is supposed to rule out "term models", eg.
translations from a language to itself. There have been many FA results since
the concept was introduced in the 1970s (I think). It's close to soundess /
completenss of logic.

~~~
imh
When you say equal for 1, do you mean equal under a simple "their
representations match" sense, or under something more abstract?

~~~
mafribe
I mean equal w.r.t. a chosen notion of equality. So for any pair (==s, ==t) of
notions of equality, there is a different notion of full abstraction. Here ==s
relates programs of the source language and ==t relate programs of the target
language.

~~~
imh
Cool! Thanks for the clarification!

------
dang
Url changed from [http://lambda-the-ultimate.org/node/5364](http://lambda-the-
ultimate.org/node/5364), which points to this.

