Existe um levantamento da semântica de vários recursos da linguagem de programação?

12

Existe uma pesquisa (em papel, capítulo de livro, tutorial, links, ...) da semântica de vários recursos da linguagem de programação? Eu estava inicialmente impressionado com os recursos de D aqui http://www.digitalmars.com/d/2.0/comparison.html

Gostaria de ver o que eu poderia obter daqui, apesar de ter feito uma pergunta semelhante no stackoverflow e entender que esses dois sites têm perspectivas diferentes.

Realmente aprecio sua resposta! Obrigado a Dave Clarke por sua sugestão sobre meta

Tim
fonte
Penso que esta questão levanta uma questão interessante: a semântica das linguagens de programação ainda é uma área de pesquisa no laboratório ou está pronta para a luz do dia? Se estiver pronto para a luz do dia, deve haver compêndios que descrevam como descrever a semântica de cada recurso de linguagem de programação, para que futuros designers de linguagem possam procurá-los ao projetar suas linguagens. Eu acho que vale a pena ponderar para onde queremos ir daqui.
Uday Reddy

Respostas:

17

Não conheço nenhuma pesquisa sobre a semântica de vários recursos de linguagem, embora existam muitos livros que tratam da semântica de linguagens de programação. Aqui estão alguns dos mais abrangentes, que também lidam com construções menos padrão:

  • Conceitos de design em linguagens de programação de Franklyn Turbak, David Gifford e Mark Sheldon. Um livro gigantesco, cheio de semânticas de muitas construções linguísticas diferentes.

  • Conceitos, técnicas e modelos de programação de computadores por Peter Van Roy e Seif Haridi. Este livro concentra-se principalmente nos conceitos em termos da linguagem Oz. Todos os exemplos do livro são executados. No final do livro, há um capítulo ou dois discutindo a semântica formal das construções da linguagem.

Os textos mais clássicos, que enfatizam mais as técnicas semânticas, e não a variedade de construções da linguagem de programação, incluem:

  • Tipos e linguagens de programação por Benjamin Pierce. O livro sobre sistemas de tipos. Concentra-se principalmente em construções de linguagem funcional, enquanto aumenta a sofisticação do sistema de tipos. Também abrange o Featherweight Java, um cálculo básico do Java.

  • Transições e árvores por Hans Huttel. Uma boa introdução à semântica operacional, cobrindo uma variedade de construções de linguagens de crescente complexidade.

  • Semântica com Aplicações de Hanne Riis Nielson e Flemming Nielson. Uma introdução a vários estilos semânticos, incluindo algumas aplicações não óbvias deles. Uma ótima leitura!

  • A estrutura das linguagens de programação digitadas por David A Schmidt. Um sólido livro fundamental.

  • Semântica das Linguagens de Programação: Estruturas e Técnicas de Carl A Gunter. Outro sólido livro fundamental.

Por fim, um trabalho em andamento, generosamente disponível para download, Practical Foundations for Programming Languages por Bob Harper, abrange muitos recursos diferentes da linguagem de programação, garantindo que tudo seja formalizado ao longo do caminho.

Devo acrescentar que, se você fizer uma pergunta mais específica, obterá uma resposta mais específica. Muitos artigos científicos estão por aí dando semântica a vários recursos da linguagem de programação. Se você estivesse interessado em um recurso específico, eu poderia desenterrar um ou dois papéis sobre esse recurso.

Dave Clarke
fonte
11

Outro bom livro sobre semântica operacional é a Semantics Engineering with PLT Redex de Matthias Felleisen, Robby Findler e Matthew Flatt. Ele começa com um tratamento de semântica de redução e máquinas abstratas, além de abordar o uso da ferramenta Redex para modelar a semântica de linguagens de programação.

Sam Tobin-Hochstadt
fonte
5
É bom ver outra pessoa do PL a bordo.
9119 Dave