Translacja języków.

0

Cze!
Czy ktoś wymyślił już narzędzie do translacji np. C++ na Pascala itp.
Chyba ciekawy temat co? I nie mówcie że nie szukałem o tym czegoś bo szukałem troche i działam teraz przez modem (to mnie chyba troche tłumaczy:))
Pozdro!

0

Translatorami sa m. in. kompilatory i interpretery. Taki jak ty chcesz translator jest jeszcze prostszy (przynajmniej dla wiekszej czesci gramatyki) do zrealizowania nie kompilator. Mozes sobie wziac np. Yacc'a podac mu gramatyke C i tylko napisac akcje semantyczne odpowiadajace pewnym konstrukcjom z Pascala. Gotowe :)
Wydaje mi sie jednak, ze translacja w druga strone jest prostsza, gdyz Pascal stawia wieksze ograniczenia programiscie. Zamieniajac na C mozemy pominac wiele "konwersji", sprawdzania zakresow tablic itp. Jednym slowem przesiadka z samochodu z automatyczna skrzynia biegow na manualna: wieksze mozliwosci, ale tez wieksze ryzyko popelnienia bledu.

0

Popieram...

if((i=strlen(s=tpop(st)))>2 && *s==40 && *(s+(--i))==41)*(strncpy(s,(char*)(s+1),--i)+i)=0;

...Normalna konstrukcja jak na c++, a bedzie ją trudno automatowi przetłumaczyć na pascala. Tłumaczę: jeśli ciąg znaków jest ogranicznony parą nawiasów (char(40) i char (41)) to zostają one usunięte...

s:=tpop(st);
i:=length(s);
if((i>2)and(s[1]=#40)and(s[i]=#41))then s:=copy(s,2,i-2);

... To ładnie tłumaczy sie ręcznie, ale automat, podejrzewam, wyłozy się na tym jak złoto.
// pomijam różnicę pomiedzy stringiem a char*.

1 użytkowników online, w tym zalogowanych: 0, gości: 1