İyi bir fikir C dili derlemek için mi?
Tüm web üzerinden, bir C derleyici için bir arka uç yazma artık iyi bir fikir değil o hissi alıyorum. DZD C arka uç aktif olarak geliştirilmekte artık (desteklenmeyen bu benim düşüncem budur). Derleyiciler C-- ya LLVM hedef alıyor.
Normalde, GCC gerçekleştirir iyi optimize kod mu o eski güzel olgun bir derleyici olduğunu düşünüyorum, bu nedenle C derlemek için GCC vadesi daha iyi ve daha hızlı kod verim için kullanacaktır. Bu doğru değil mi?
Bu soru büyük ölçüde daha fazla sürdürülebilir kod alma gibi diğer faktörlere dil derleniyor doğasına bağlıdır farkındayım. Daha çok genel bir cevap (w.arıyorum r.t. sadece performans (kod kalitesini göz ardı ederek, vb.) üzerinde duruluyor derlenmiş dil). Ben olur da gerçekten sevindim eğer cevap içeren bir açıklama üzerinde neden DZD sürüklenmektir uzak C ve neden LLVM daha iyi yapar gibi bir arka uç (see this) veya başka bir örnek Derleyiciler yapıyor aynı ben değilim farkında.
CEVAP
Eğer bu dil ne bağlı bir sorun Varsa bana C derleme ile iki benim en büyük sorunlardan bir liste yapalım.
Çöp toplamaÇöp toplama varsa program içinde herhangi bir noktada düzenli çalışmasını durdurmak için olabilir, ve bu noktada öbek gösteren tüm göstergelerine ulaşmak gerekir. C derlemek için bu işaretçileri nerede olabileceği hakkında bir fikrin yok. C değişkenleri, bağımsız değişkenleri, vb yerel sorumludur. Göstericiler muhtemelen yığında (ya da belki bir SPARC diğer kayıt windows), ama yığın gerçek erişim yok. Ve tarama bile işaret yığını? LLVM aslında bu sorun (hiç GC ile LLVM kullandım beri ne kadar iyi bilmiyorum düşündüm) adresleri.
Kuyruk çağırırBirçok dilde bu kuyruk işi (yığın yetişmiyor bu yani) çağırır varsayalım; Düzeni görev, Haskell varsayar. Bu bazı C derleyicileri kuyruk aramaları yapmak için ikna edebilirsin, belirli koşullar Altında C. ile durum böyle değil. Ama kuyruk kuyruk aramalar bilinmeyen bir fonksiyonu çağırırken güvenilir, örneğin, olmak istiyorum. Hantal geçici çözümler tarmbolin üstünde zıplamak, ama hiçbir şey oldukça tatmin edici.
Neden&; dizi yineleme için... "* o kad...
Özel bir yöntem kamu test birimi için....
Bir veya daha fazla türde bulunamıyor ...
Neden Java bize bir isim dosya adından...
Böyle büyük mükafat 5.1 - (=ONLY_ACTİV...