Linguagem de programação concatenativa é uma linguagem de programação na qual todas as construções válidas, ou termos, correspondem a uma função e a sobreposição de termos denota composição de função. A combinação de uma semântica de composição com uma sintaxe que a reflete faz as linguagens concatenativas bastante adequadas para manipulação algébrica e análise formal, defendem alguns pesquisadores.

Muito da pesquisa original sobre a teoria das linguagens concatenativas foi feito por Manfred von Thun.

Propriedades As propriedades das linguagens concatenativas são o resultado de sua sintaxe e semântica composicional:

Linguagens concatenativas são necessaramente livre de pontos, posto que permitir aos termos denotar variáveis violaria a regra de que todos os termos denotam funções. A redução de qualquer expressão é a simplificação de uma função para outra; nunca é necessário lidar com a aplicação de funções a objetos.* Qualquer subexpressão pode ser substituída com um nome que a represente. A comunidade concatenativa chama isso de fatoração; isto é largamente usado para simplificar programas em partes menores. A sintaxe e a semântica das lingaugens concatenativas formam um monoide. Linguagens concatenativas podem ser adequadas para uma implementação de "lógica linear", o que significa que nenhum lixo é gerado.

Implementações A primeira linguagem concatenativa foi Forth, embora Joy tenha sido a primeira linguagem a ser denominada concatenativa. Outras linguagens concatenativas são Cat, Enchilada, Factor, Onyx, PostScript, RPL, Stappl, and XY.

A maior parte das linguagens concatenativas existentes são baseadas em pilha - não só a implementação como também a semântica é expressa em termos de stacks. Isto não é um requerimento, e outros modelos foram propostas. Linguagens concatenativas são usadas em sistemas embarcados, aplicativos e aplicações web, como linguagens para código intermediário e em pesquisas. A maior parte das linguagens concatenativas são dinamicamente tipadas, embora Cat seja estaticamente tipada.

Ver também Forth

Ligações externas

Categoria:Linguagens de programação