İki şey arıyorum - hız ve entegrasyon. Genellikle ikisi birlikte ve aşina olurlar. Ne yazık ki, C ++ için, hız ve entegrasyon sunan hemen hemen hiç dil yok. Lua kullandım ve korkunç bir şekilde emdi. Bağları yazmak için tüm zaman geçirdim ve aslında hiçbir zaman kod yazmak için yeterince yakın zaman geçmedi.
Dil özellikleri? Bir komut dosyası dilinin gömülmesinin amacı, orijinal dilimin sahip olmadığı vızıltı dinamik dil özelliklerine sahip olması değil , çalışma zamanında yorumlanabilmesidir . Aslında bunun ötesinde umurumda değil, temelde işlevsel olduğu sürece, o zaman bu iyi - ve benim ana bilgisayar dili (bu durumda C ++) ile uyuyor. Ancak, şaşırtıcı, tasarlanmış dil tamamen ilgili bölümü başarısız konak uygulamalarına entegre edilmesi entegrasyon .
Birlikte rutinlere ihtiyacım var mı? Hayır, eş-rutinlere ihtiyacım yok. Dinamik yazmaya ihtiyacım var mı? Hayır, komut dosyası dilimden bana hangi türlerin geri geldiğini bilmem gerekiyor ve mevcut kodumun tümü çok güçlü bir yazım etrafında oluşturulduğundan, kod kodumun buna da saygı göstermesini gerçekten istiyorum. Çöp toplamaya ihtiyacım var mı? Hayır, türlerim zaten kendi kaynaklarını yönetiyor ve kesinlikle deterministik yıkım istiyorum. Gitmek ister miyim? Hayır- İstisnalar vermek istiyorum.
Bulduğum sorun, temel olarak tüm varolan komut dosyası dillerinin C ++ değil C'yi genişletmek için tasarlanmış olması ve C ++ modelini birçok yönden düzgün bir şekilde desteklememesi ve buna ek olarak tamamen farklı anlambilime sahip olmalarıydı. shared_ptr
Otomatik deterministik yıkım olan yeryüzünde nasıl çöp toplanmış bir çevreye çevireceğim? İstediğiniz sarma kitaplıklarını yazabilirsiniz, temel dil semantiğinin onunla genişletmeye çalıştığınız dil ile uyumsuz olmasını değiştirmezsiniz. Bunun void*
doğru tip olduğundan nasıl emin olabilirim ? Kalıtımla nasıl başa çıkabilirim? İstisnaları nasıl atar ve yakalarım? Sadece işe yaramıyor.
C ++ için iyi bir komut dosyası dili statik olarak yazılacak, anlambilimsel olarak belirlenecek, deterministik olarak yıkılacak, istisnaları atacak ve yakalayacak ve yıkıcılarıma / kurucularıma / kopya oluşturucularına saygı gösterecekti, çünkü o zaman tüm türlerim işe yarayacak, güzel ve kolay olacak ve sonuçta ortaya çıkan dil hızlı ve tüm orijinal anlambilimi destek, kolay bağlanır.