Diğer dillerde Java ile yazılmış kod çevirmek / aktarmak için bir yolu var mı?

7 Cevap java

Teorik olarak bu benim için mümkün görünüyor. Yani herhangi biri eğer mümkünse, bana bu teyit edebilir? ve bunu yapar böyle bir yazılım olup olmadığını? (Java gibi C + + veya C #)

Ve genel olarak bu PHP gibi sunucu tarafı programlama dili Java gibi dilleri aktarmak mümkün olurdu?

7 Cevap

Bir dilin sözdizimsel unsurları Yazılı ve başka üreten önemsiz değil ama imkansız değil. İyi bir ayrıştırıcı bir dil sözdizimi ağaçları inşa etmek ve daha sonra başka yayabilir. Basit bir "Merhaba Dünya" tip uygulamaların bağlamı dışında kod geliştirmenin zorluğu iki yönlüdür:

  1. Bir dil kütüphaneleri muhtemelen (Salıncak vs örneğin WinForms) farklı olacaktır
  2. (Lambda ifadeleri, anonim yöntemler, farklı bir devralma uygulamaları vb): Bazı dil özellikleri için yiyecek ve içecek gerekecektir.

Bu mümkündür, ama önemli bir sorun Java tam otomatik bir dönüşüm yapabilmek için hedef dilde hazır gereken çok büyük bir çalışma zamanı kütüphane olmasıdır.

. Java özel durum için -.> NET, daha sonra kullanılabilecek bir NET derleme derlemek için Microsoft J # kullanabilirsiniz. Ayrıca ikvm.net içeride. NET JVM çalışan sağlar.

PHP için ben böyle bir çözüm var inanmıyorum. Siz de bağlantılı olabilir bir yerli kütüphane oluşturmak için gcj kullanmak mümkün olabilir, ama bir uygun soultion olduğuna inanmıyorum.

PHP hangi işlevler ihtiyacınız var?

Hatta bir C # çevirmen Java ve sert oldukça iyi bir iş yapar, daha sonra temizlemek için bir sürü hala var Visual Studio gemi.

Benim durumumda Eğer gerçekten başka bir dilde kod çevirmek mantıklı eğer kendinize sormalısınız. Kazanç nedir? Tercüme kod sürdürülebilir olacak mı? Bu soruların cevapları yanlış yöne işaret varsa, çeviri muhtemelen doğru bir yaklaşım değildir.

Google Web Toolkit Java JavaScript dönüşüm yapar:

http://code.google.com/webtoolkit/overview.html

soruyu cevaplamak için, evet, teorik olarak bu gerçekten mümkün ve pratik olarak böyle bir teknoloji her gün kullanılır :)

İlginç bir şey, benim görüşüme göre, Java dönüştürücüler genellikle bayt kodunu değil, kaynak kodu alarak dönüştürmek olduğunu. Sonra diyelim ki, var, bytekod-to-ObjectiveC kaynak kodu. Bazı dönüştürücüler (en az bir opensource bir) için baytkodu-to-XML, sonra XML-hedef-dil.

Örneğin, herkes tarafından alkışlanan ve Java (JME) ile yazılmış ve otomatik olarak Java bayt dönüştürülmüş olarak, AppStore en iyi on yolunda yapılmış iPhone için Uniwar uygulama. Ilk on ulaşan, hatta birkaç gün için, bu makinelerin bir sürü dağıtıldığı demektir ;)

Gerçek Dünyada [TM], Cobol-Java ve esrarlı, Java-Cobol duyulmamış değildir.

Eğer gerçekten iyi bir dönüştürücü gerekir dedi çalışma tüm bu :) için

Teorik olarak mümkündür. Diğerleri işaret Ama asıl sorun kütüphaneleri çevirmektir.

Bir süre önce ben çeviri posibility değerlendirmek için Python çevirmenler Tcl (XOTcl) ve Java Java yaptı. java2tcl ve yava2python ile ara.

Onlar sözdizimi dönüştürmek ama ilgili yapılar çevirileri (Python olanlar için, örneğin Java dosya işlemleri) yapmazlar. Bu da daha fazla geliştirme zamanı gerektirir.

Genel olarak benim görüşüm böyle bir çeviri mümkün olabilir budur. Ama çevirmen dönüştürülen projenin sınıfları / kütüphaneleri kapsar sadece.

Evet, şimdiye kadar sıkıcı ve tekrarlayan görevleri yerine getirmek için yapılan en güçlü cihaz var, asistan bilgin denir. Hatta bazı tür marifet gerektiren görevleri üstlenebilir, ama onu seviyorum ve hatta bu görevlerin daha fazla çeşit talep olabilir, bu yüzden onları göndermeyin.