Brak języków dla języków programowania, ponieważ języki programowania są niezwykle złożone. Chociaż jest to hipotetycznie możliwe, istnieje wiele wyzwań.
Pierwszym wyzwaniem są jedynie akceptowalne praktyki języka. Konwersja między dwoma obiektowymi językami, takimi jak Java i C ++, jest niezwykle złożona i oba są oparte na języku C. Program tłumaczący musiałby mieć doskonałą znajomość standardowych bibliotek dla obu języków i być w stanie poznać różnice w zachowaniu. Musiałbyś stworzyć ogromny słownik, a nawet wtedy różnice w stylach programowania między programistami oznaczałyby, że musiałby zgadywać, jak wprowadzić pewne zmiany.
Po zakończeniu tłumaczenia składni musisz dowiedzieć się, jak przekonwertować konstrukt w pierwszym języku na konstrukt w drugim języku. Jest to w porządku, jeśli przenosisz obiekt w C ++ do obiektu w Javie (to stosunkowo łatwe), ale co robisz ze swoimi strukturami C ++? Czy funkcje poza klasami C ++? Decyzja o tym, jak sobie z tym poradzić, może być trudna, ponieważ może spowodować inny problem, a mianowicie utworzenie obiektu blob. Kropelka jest anty-wzorem, który jest dość powszechny.
To nie jest pełna lista problemów, ale są to tylko dwa i są duże. Jeden z moich profesorów wspomniał, że ktoś przekonał swojego pracodawcę, że w latach 80. można go stworzyć z kodu maszynowego na C, ale wtedy to nie działało. Wątpię, czy kiedykolwiek będzie taki, który działa w pełni.