Ben PHP için HipHop ilginç bir araç olduğunu düşünüyorum. Bu aslında C + + koduna PHP kodu dönüştürür. Bu şekilde çapraz derleme harika bir fikir gibi görünüyor, ama ben nasıl iki tip sistemler arasındaki temel farklılıkları üstesinden gelirsiniz, merak var? Benim genel sorununun spesifik bir örnek, heterojen veri yapılarıdır. Statik olarak yazılan diller de diğer ucunda türlerini anlamaya muktedir olması gerekir, çünkü bir dizi ya da diğer kabın içine keyfi türlerini koymak izin eğilimi yoktur. Ben böyle bir PHP dizi varsa:
$mixedBag = array("cat", 42, 8.5, false);
Bu nasıl C + + kodunda temsil edilebilir? Bir seçenek (artırmak :: herhangi bir ya da üstün sürümü) geçersiz işaretçileri kullanmak olacaktır, ama o zaman ... Dizinin dışında geri eşyalarını almak ve ben tüm ikna değilim zaman döküm gereken tip inferencer Her zaman diğer ucunda için döküm anlamaya olabilir. Daha iyi bir seçenek, belki de bir sendika gibi daha bir şey olurdu (veya artırmak :: varyantı), ama sonra belki mümkün ... derleme zamanında olası tüm türleri numaralandırmak gerekir, ancak diziler keyfi karmaşık varlıkları içerebilir beri kesinlikle dağınık.
HipHop ve statik bir disiplin dinamik yazarak disiplin gitmek benzer araçlar bu tür sorunları nasıl ele biliyor mu?