Stratego Programlama Dilinin teorik sınırları nelerdir?


10

Stratego bir programlama dönüşüm dilidir / DSL'i Yeniden Yazmaktır.

Anthony Sloane, Scala üzerinde çalışan bir uygulama yaparak bazı çalışmalar yaptı .

İşlevsel bir dil olarak Stratego'nun teorik sınırları nelerdir? (uygulamadan bağımsız olarak). Stratego'da bir başvuru emri hazırlayıcısı yazılabilir mi?


Çok ilginç bir soru.
Dave Clarke

Gerçekten aynı makalenin iki önemsiz varyantına bağlanmak istediniz mi?
Randall Schulz

Bu sorunun ayrıntılandırılması: Bir programlama dilini bu yolla genişletmenin makro teknolojinin aksine ne gibi avantajları ve dezavantajları vardır?
Charles Stewart

Yanıtlar:


6

Denemeniz için somut bir programım olmamasına rağmen, cevaba bir göz atacağım. Bir Eelco Visser blog girişinde esas olarak Stratego'da kodlanmış lambda hesabını içeren bir ekran görüntüsü görebilirsiniz (bu kodun başka bir yerde mevcut olduğundan eminim). Stratego'da lambda hesabı için bir tercüman sunar. Muhtemelen, bu Stratego'nun Turing-complete olduğunu göstermek için yeterlidir.

Daha spesifik bir ifade anlayışı ile ilgileniyorsanız, sorunuzu yeniden ifade etmenizi öneririm.

Pratik kullanım açısından, Stratego'nun sadece bir veri yapısı, yani dönüştürülen ağaç üzerinde çalıştığı ana sınırlamasını buldum. Bir sembol tablosu gibi diğer veri yapılarını kullanmak doğal değildi (en azından 5+ yıl öncesinden Stratego'da). Stratego tek bir ağaçtaki dönüşümler için ideal olsa da, aynı anda iki ağaç üzerinde işlem yapmak kolay değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.