Stratego adalah bahasa transformasi pemrograman / Menulis Ulang DSL.
Anthony Sloane telah melakukan beberapa pekerjaan melakukan implementasi yang berjalan di Scala .
Apa batas teoritis Stratego sebagai bahasa fungsional? (terlepas dari implementasi). Bisakah seseorang menulis ycombinator pesanan aplikatif di Stratego?
functional-programming
hawkeye
sumber
sumber
Jawaban:
Saya akan coba menjawabnya, meskipun saya tidak punya program konkret untuk Anda coba. Dalam satu entri blog Eelco Visser Anda dapat melihat tangkapan layar yang pada dasarnya berisi kalkulus lambda yang disandikan dalam Stratego (saya yakin kode ini tersedia di tempat lain). Dia menghadirkan seorang juru bahasa untuk kalkulus lambda di Stratego. Agaknya, ini cukup untuk menunjukkan bahwa Stratego Turing-lengkap.
Jika Anda tertarik pada gagasan ekspresif yang lebih spesifik, maka saya sarankan Anda mengulangi pertanyaan Anda.
Dalam hal penggunaan praktis, saya menemukan batasan utama Stratego bahwa itu hanya beroperasi pada satu struktur data, yaitu pohon yang ditransformasikan. Menggunakan struktur data lain seperti tabel simbol tidak wajar (setidaknya di Stratego dari 5+ tahun yang lalu). Meskipun Stratego ideal untuk transformasi pada satu pohon, melakukan operasi pada dua pohon secara bersamaan tidak mudah.
sumber