( rpsoft | 2023. 08. 23., sze – 20:21 )

Gondolom az, hogy felismerje a nyelvben a struktúrát, és valami értelmes módon fordítsa. Mondjuk az alábbi Fortran programból:

      i = 0
 100  write (*, *) i
      if i - 100, 100, 120, 120
 120  continue
      end
      

ne azt csinálja, hogy

#include <iostream>
#include <iomanip>


int main(){
  int i = 0;
  label100: std::cout << i << std::endl;
  if(i - 100 < 0){
    goto label100;
  } else if(i - 100 == 0){
    goto label120;
  } else{
    goto label120;
  }
  label120: return 0;
}

hanem valami értelmesebbet. És akkor még nem foglalkoztunk azzal, ha mondjuk egy olyan nyelvet kell átfordítani, amiben van név szerinti átadás, tehát egy függvénynek egy változó helyett átadhatom azt hogy 'i+1' ha tudom, hogy a függvény belsejében van egy i változó, és akkor azt ott megcsinálja (Algol 60 call-by-name), vagy valami más olyan konstrukció, ami a target nyelvben nagyon nincs.