2014-05-22 22 views
11

Geçenlerde Julia benim simülasyonları birini taşıdık ve sadece çalışma zamanında birkaç tip hataları keşfetti. Julia kodumu statik olarak analiz etmek istiyorum. MATLAB, çalışma zamanında sadece birçok hata bulmakta benzer bir soruna sahiptir.Çalışma zamanı türü hatalarından kaçınmak için Julia (julia-lang) kodu istatistiksel olarak analiz edilebilir mi?

Bulduğum tek araç (TypeCheck.jl) bir derleyiciden bekleyeceğim statik analizin küçük bir alt kümesini gerçekleştiriyor.

şimdi çalışma zamanı ne hatalar birçok önlemek, böylece Julia komut dosyaları için statik bir analiz var mı?

Ben LLVM JIT derleyicisi kullanabilirsiniz şey var mı? (Julia'nın nasıl çalıştığı ve neyin mümkün olmadığı hakkında pek bir şey bilmiyorum)

Bu, Julia'nın doğası nedeniyle mümkün mü?

cevap

4

Yanıtın ne tür bir çalışma zamanı hatasına bağlı olduğunu düşünüyorum, çünkü Julia'nın derleme zamanı, çoğu derlenmiş dilin çalışma zamanı olarak adlandırılacağı bir zamanda gerçekleşir.

Tüm işlevlerinizin girişlerini yazıp tüm değişkenlerinize tüm değişkenleri yazdığınızda, Julia'nın derleme zamanında çok fazla tür hatası alabilirsiniz.

+1

Bu yüzden, karışıklık, belgelerin tür bildirimlerinin gerekli olmadığını öne sürmesidir, ancak daha sonra (potansiyel olarak) çoğu dinamik olarak yazılmış dil gibi (çok sayıda) çalışma zamanı hatasına sahip olursunuz. Ve dediğin gibi, tüm türleri bildirirseniz, derleme zamanı kontrolünü alabilirsiniz. Benim için bu sinir bozucu çünkü o noktada polimorfizme artık ihtiyacım yok (ve Fortran'ı da kullanmış olabilirim). – kebno

+0

Tercih ettiğiniz alternatif ne olurdu? –

+0

Belki Julia'nın her türün dönüşümleri bilen küçük bir aile türünden olduğunu varsaydığı bir moddur (böylece karmaşık bir çift vektör gördüğünde karmaşık bir çift matrise dönüştürmeyi tamamlayacağını bilir). Böyle bir kısıtlı tip modunda, her şeyi optimize edebilir ve belirli bir dönüşüm için çok şey tahmin etmeleri gerekiyorsa bana uyarı verebilirler. Daha sonra, bu varsayımlarla, çok fazla statik analiz yapabilir. Ben her tip ** ** ilan etmek zorunda kalmadan statik olarak yazılan bir Julia'nın hızını umuyorum. Böylece belki bir tip aile modu. – kebno

İlgili konular