A Lógica Afim Elementar é um sistema de tipos que captura a classe de termos λ que podem ser reduzidos no tempo elementar. Além disso, termos tipáveis à EAL podem ser reduzidos usando o fragmento abstrato do algoritmo de Lamping, o que é particularmente interessante para mim porque estou explorando os correspondentes combinadores de interação.
Minha pergunta é: como alguém pode criar uma linguagem de programação prática usando o EAL como o sistema de tipos subjacente? Ou seja, que tipo de extensões (pontos de correção, polimorfismo, tipos dependentes, tipos de dados etc.) poderiam ser feitas no sistema de tipos principais sem afetar essa característica e que tal linguagem seria utilizável na prática ou seria de alguma forma também restritivo por razões que não conheço?
fonte
Respostas:
Algo muito semelhante, mas usando a lógica afim da luz (LAL) em vez da EAL, foi tentada há alguns anos por Baillot, Gaboardi e Mogbil (você pode encontrar o artigo aqui ). Eu acho que o trabalho deles pode ser facilmente generalizado para a EAL, que é um sistema mais liberal.
Quanto aos recursos dessa linguagem, você tem polimorfismo nativamente (EAL é uma restrição da lógica linear de segunda ordem). Até onde eu sei, ninguém olhou para os tipos dependentes, mas não vejo por que eles não deveriam funcionar. De fato, o EAL sem tipo funciona tão bem quanto o EAL digitado, porque suas propriedades de normalização não dependem dos tipos.
De qualquer forma, se você estiver interessado na relação entre avaliação ótima, EAL e lógicas leves em geral, sugiro que você dê uma olhada nos trabalhos de Coppola do início até meados dos anos 2000.
fonte