Jakie są teoretyczne ograniczenia języka programowania Stratego?


10

Stratego to język transformacji programowej / Przepisywanie DSL.

Anthony Sloane wykonał trochę pracy przy implementacji działającej na Scali .

Jakie są teoretyczne granice Stratego jako języka funkcjonalnego? (niezależnie od wdrożenia). Czy można napisać w Stratego aplikacyjny ekombinator kolejności?


Bardzo interesujące pytanie.
Dave Clarke

Czy naprawdę chciałeś połączyć dwa trywialne warianty tego samego papieru?
Randall Schulz,

Udoskonalenie tego pytania: Jakie są zalety i wady rozszerzenia języka programowania w ten sposób, w przeciwieństwie do technologii makro?
Charles Stewart,

Odpowiedzi:


6

Postaram się odpowiedzieć, choć nie mam konkretnego programu do wypróbowania. W jednym wpisie na blogu Eelco Visser możesz zobaczyć zrzut ekranu zawierający zasadniczo rachunek lambda zakodowany w Stratego (jestem pewien, że ten kod jest dostępny gdzie indziej). Przedstawia tłumacza do rachunku lambda w Stratego. Prawdopodobnie wystarczy to, aby pokazać, że Stratego jest kompletny w Turingu.

Jeśli interesuje Cię bardziej szczegółowe pojęcie ekspresji, sugeruję, abyś sformułował swoje pytanie.

Pod względem praktycznego wykorzystania znalazłem główne ograniczenie Stratego, że działało ono tylko na jednej strukturze danych, a mianowicie na transformowanym drzewie. Używanie innych struktur danych, takich jak tablica symboli, było nienaturalne (przynajmniej w Stratego sprzed ponad 5 lat). Mimo że Stratego jest idealny do transformacji na jednym drzewie, wykonywanie operacji na dwóch drzewach jednocześnie nie jest łatwe.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.