C++ ayrıştırma sorunları iyi bilinmektedir. Sadece sözdizimine göre ayrıştırılamaz, LALR olarak yapılamaz (terim ne olursa olsun, dil kuramcısı değilim), dil bilgisi bir zillion sayfasıdır, vs. Bu ve diğer nedenler I Kişisel projelerim için alternatif bir dile karar verdim.Va ++ C++ ile karşılaştırıldığında ayrıştırmak için bir akıl dili mi?
Vala iyi dil gibi görünüyor. C++ üzerinde pek çok gelişme sağlasa da, ayrıştırmak zahmetli mi? Veya derleyiciler, kaynak analizörleri ve diğer araçlar için ayrıştırıcılar oluşturmak için uygun, düzgün, makul uzunlukta bir dilbilgisi veya bazı mantıksal açıklamaları var mı?
Cevap ne olursa olsun, bu Genie alternatif sözdizimi için gider?(Ben de D ve diğer post-C++ olmayan VM diller hakkında daha az yoğun olsa merak ediyorum.)
Özellikler bir proje için bazı özel dil seçmek için iyi bir neden, ama o dil ayrıştırmak için ne kadar zor ne fark eder? (Kişisel projeniz söz konusu dil için bir derleyici yazmıyorsa). Bu notta C++, Java ve C# gibi bir LR (1) dilbilgisi değildir ve potansiyel olarak sonsuz bir görünüm içerebilir. – birryree
Vana 'C++' dan daha iyi olmalı. Java'nın gerçekten aklı başında olduğunu biliyorum, Java'da yazılmış bir Java Ayrıştırıcısını kullandım ve bir derleyici-derleyici tarafından EBNF'deki gramerden doğrudan oluşturdum. – Lagerbaer
Err .. it * sözdizimine göre ayrıştırılabilir, en azından herhangi bir dil bu şekilde düşünülebilir (tabii ki, tanımlayıcılar gibi şeyler teknik olarak bağlama hassastır, ancak çoğu dilde ortaktır). Evet, dilbilgisi LALR (1) değil, ama elbette parsable. Öte yandan, ayrıştırmadaki zorluk, bir dili seçme konusundaki temel ölçütünüz olmamalıdır - belli bir dil için popülerlik için söylenecek çok fazla şey (ve bu nedenle kütüphane ve benzeri). –