Stratego Programming Language의 이론적 한계는 무엇입니까?


10

Stratego 는 프로그래밍 변환 언어 / Rewriting DSL입니다.

Anthony Sloane은 Scala에서 실행 되는 구현을 수행하는 일부 작업을 수행했습니다 .

기능적 언어로서 Stratego의 이론적 한계는 무엇입니까? (구현에 관계없이). Stratego에서 적용 순서 ycombinator를 작성할 수 있습니까?


매우 흥미로운 질문입니다.
Dave Clarke

당신은 정말 같은 논문의 두 가지 사소한 변형에 연결하는 것을 의미 했습니까?
랜달 슐츠

이 질문의 개선 : 매크로 기술과 달리이 방법으로 프로그래밍 언어를 확장하면 어떤 장단점이 있습니까?
Charles Stewart

답변:


6

나는 당신이 시도 할 구체적인 프로그램이 없지만 대답에 갈 것입니다. 하나의 Eelco Visser 블로그 항목 에서 Stratego로 인코딩 된 람다 미적분이 포함 된 스크린 샷을 볼 수 있습니다 (이 코드는 다른 곳에서도 사용 가능합니다). 그는 Stratego의 람다 미적분학에 대한 통역사를 제공합니다. 아마도 이것은 전략이 Turing-complete임을 보여주기에 충분합니다.

좀 더 구체적인 표현력 개념에 관심이 있다면 질문을 바꿔 보는 것이 좋습니다.

실제 사용 측면에서, Stratego의 주요 제한 사항은 하나의 데이터 구조, 즉 트리가 변환되는 것만으로 작동한다는 것입니다. 기호 표와 같은 다른 데이터 구조를 사용하는 것은 부자연 스럽습니다 (적어도 5 년 전부터 Stratego에서). Stratego가 단일 트리의 변환에 이상적이지만 두 트리에서 동시에 작업을 수행하는 것은 쉽지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.