Apa batas teoretis Bahasa Pemrograman Strategi?


10

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?


Pertanyaan yang sangat menarik.
Dave Clarke

Apakah Anda benar-benar bermaksud menautkan ke dua varian sepele dari kertas yang sama?
Randall Schulz

Penyempurnaan dari pertanyaan ini: Apa kelebihan & kerugian yang ada dari memperluas bahasa pemrograman dengan cara ini, yang bertentangan dengan teknologi makro?
Charles Stewart

Jawaban:


6

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.