Які теоретичні межі мови програмування Стратего?


10

Stratego - мова трансформації програмування / Переписування DSL.

Ентоні Слоун провів певну роботу, виконуючи реалізацію, що працює на Scala .

Які теоретичні межі Стратего як функціональної мови? (незалежно від реалізації). Чи можна написати додаткове замовлення ycombinator в Стратего?


Дуже цікаве запитання.
Дейв Кларк

Ви дійсно мали на увазі посилання на два тривіальних варіанти одного і того ж паперу?
Рандалл Шульц

Уточнення цього питання: Які переваги та недоліки має розширення мови програмування цим засобом, на відміну від макротехнології?
Чарльз Стюарт

Відповіді:


6

Я відповім, хоча у мене немає конкретної програми для того, щоб ви спробували. В одному записі в блозі Eelco Visser ви можете побачити знімок екрана, який по суті містить вирахування лямбда, закодованого в Стратего (я впевнений, що цей код є в інших місцях). Він представляє перекладача обчислення лямбда в Стратего. Імовірно, цього достатньо, щоб показати, що Стратего є Тюрінгом.

Якщо вас цікавить конкретніше поняття виразності, то пропоную вам перефразувати своє запитання.

Що стосується практичного використання, я виявив головне обмеження Стратего в тому, що він працював лише на одній структурі даних, а саме на дереві, що трансформується. Використання інших структур даних, таких як таблиця символів, було неприродним (принаймні, у Стратего 5 років тому). Хоча Стратего ідеально підходить для перетворень на одному дереві, виконувати операції на двох деревах одночасно непросто.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.