başka bir dile çevirmek?

4 Cevap java

bir tercüman ile başka bir dile çevirmek mümkün mü?

palamudu java php çevirmek olabilir duydum? ilk başta, ben bu kod hataları verebilir ucuz berbat bir çözüm olduğunu düşündüm, ama bunu yapmak için tam olarak mümkün gibi görünüyor.

Eğer python ya da yakut gibi diğer dillere php tercüme olabilir? c + + java ve benzeri?

4 Cevap

Başka bir dil çeviri derleyiciler, tercümanlar ve çevirmenler denilen programlar sınıfı için sadece özel bir durumdur.

Programın Bu sınıf usually resmi bir gramer ve irade çıkışı ile sembollerinin bir akımını tarif edilebilir girdi sembollerinin bir akımını ("kaynak kodu") alacak.

Sembollerin bu çıkış akımı olabilir:

  • Genellikle işletim sistemi ve donanım makine için yerli montaj kodu, üzerinde çalışıyor. Bu durumda, program bir derleyici olarak adlandırılır;
  • Farklı bir işletim sistemi ve / veya donanım için yerli montaj kodu. Bu da bir derleyici denebilecek ancak genellikle enine derleyici olarak adlandırılır;
  • Bir tür sanal makine tarafından yürütülebilecek bir ara formu için. Bu gerçek bir derleyici değil ama çoğu zaten bir derleyici denir. Java, C #, F #, VB.NET, vb "derleyiciler" bu sınıfa girer;
  • Başka bir dilde tamamen. Bu bir çevirmen olarak adlandırılan ve C # çevirmene Java, diyelim ki, örnekler söz konusudur. Deyimler genellikle kolayca çevrilebilir değildir, çünkü onlar genellikle başarı dereceleri değişen var;
  • Tercümanlar aynı prensibi takip ama genelde yerine bir yere kaydederek daha yerinde işlenmiş formunu yürütmek. Perl, PHP ve kabuk komut tüm bu kategoriye girer. Örneğin PHP (opcoding önbelleğe alma etkinse) bir ara form olarak bir opcode önbellek opcodes saklayacak ancak bir tercüman PHP aramak için hala güvenli yüzden bu ara form saklanmaz.

Eğer ya ya, iyi tercüme yok deyimler olduğunda sorun gelir. Sen sözdizimsel olarak geçerli olduğunu, ancak asit üzerinde birisi tarafından yazılmış gibi görünüyor kodu olsun.

Bazı noktalardaki "transpiler" için SO Ara: http://stackoverflow.com/search?q=transpiler

This may not be what you are after but there is SWIG http://en.wikipedia.org/wiki/SWIG

Bir C + + çerçeve için python, java ve yakut bağlamaları / mahfazalar oluşturmak için bizim projelerinden biri olarak kullandım. http://marsyas.sness.net eylem olarak görmek