Quais são os limites teóricos da linguagem de programação do Stratego?


10

Stratego é uma linguagem de transformação de programação / reescrita de DSL.

Anthony Sloane fez algum trabalho executando uma implementação que é executada no Scala .

Quais são os limites teóricos do Stratego como linguagem funcional? (independentemente da implementação). Alguém poderia escrever uma ordem de aplicação ycombinator no Stratego?


Uma pergunta muito interessante.
— Dave Clarke

Você realmente quis vincular a duas variantes triviais do mesmo artigo?
— Randall Schulz

Um refinamento dessa pergunta: que vantagens e desvantagens existem de estender uma linguagem de programação por esse meio, em oposição à macroeconomia?
— Charles Stewart

Respostas:


6

Vou tentar a resposta, embora não tenha um programa concreto para você tentar. Em uma entrada do blog da Eelco Visser, você pode ver uma captura de tela contendo essencialmente o cálculo lambda codificado no Stratego (tenho certeza de que esse código está disponível em outro lugar). Ele apresenta um intérprete para o cálculo lambda no Stratego. Presumivelmente, isso é suficiente para mostrar que o Stratego está completo em Turing.

Se você estiver interessado em uma noção mais específica de expressividade, sugiro que você reformule sua pergunta.

Em termos de uso prático, eu encontrei a principal limitação do Stratego de que ele operava apenas uma estrutura de dados, a saber, a árvore sendo transformada. O uso de outras estruturas de dados, como uma tabela de símbolos, não era natural (pelo menos no Stratego há mais de 5 anos). Embora o Stratego seja ideal para transformações em uma única árvore, executar operações em duas árvores simultaneamente não é fácil.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.