The language of programming
Back in the 80s, Infocom [1] created a database program named Cornerstone.  Because it was an integrated environment, identifiers were abstracted.  A line of code displayed on the screen as:<p><pre><code>    xn = (A * y) * x * (1 - x)
</code></pre>
was actually stored as:<p><pre><code>    id17 = (id1 * id11) * id10 * (1 - id10)
</code></pre>
and there was a mapping of internal IDs to visible names:<p><pre><code>    id1  A
    id2  B
    ...
    id10 x
    id11 y
    ...
    id17 xn
</code></pre>
The upshot---you could change the name of a variable anywhere in the editor and the code would still work because the "name" picked by the programmer was not the actual "name" used by the system. I often wonder if that can't even extend to keywords in a language as well, translating this [2]:<p><pre><code>    medan not_done
    börja
      för x:= 1 till 5 gör
      börja
        om person^.age = 120 så
          too_old(person);
        om person^.age > 130 så
          gåtill person_should_be_dead;
      slut;
    slut;
</code></pre>
into:<p><pre><code>    while not_done
    begin
      for x := 1 to 5 do
      begin
        if person^.age = 120 then
          too_old(person);
        if person^.age > 130 then
          return person_should_be_dead;
      end
    end
</code></pre>
Or heck, while we're at it:<p><pre><code>    while(not_done)
    {
      for (x = 1 ; x <= 5 ; x++)
      {
        if (person->age = 120)
          too_old(person);
        if (person->age > 130)
          return person_should_be_dead;
      }
    }
</code></pre>
But I'm not holding my breath on this.<p>[1] Yes, the company that made all the text adventure games.<p>[2] <a href="http://boston.conman.org/2008/01/04.1" rel="nofollow">http://boston.conman.org/2008/01/04.1</a>