Início Tecnologia Por que o tipo de solidez é importante em linguagens de programação...

Por que o tipo de solidez é importante em linguagens de programação funcionais

3
0

 

  1. Introdução
  2. Traduzindo -se ao cálculo seqüente

    2.1 Expressões aritméticas

    2.2 Deixe as ligações

    2.3 Definições de nível superior

    2.4 Dados algébricos e tipos de codata

    2.5 Funções de primeira classe

    2.6 Operadores de controle

  3. Avaliação dentro de um contexto

    3.1 Contextos de avaliação para diversão

    3.2 foco na avaliação no núcleo

  4. Regras de digitação

    4.1 Regras de digitação para diversão

    4.2 Regras de digitação para núcleo

    4.3 Tipo de solidez

  5. Percepções

    5.1 Os contextos de avaliação são de primeira classe

    5.2 Os dados são duplos para codata

    5.3 Letrações são duplas para controlar os operadores

    5.4 A transformação de caso de caso

    5.5 Consumidores diretos e indiretos

    5.6 Callg-By-Value, Call-By-Name e Eta-Laws

    5.7 Lógica linear e a dualidade de exceções

  6. Trabalho relacionado
  7. Conclusão, declaração de disponibilidade de dados e reconhecimentos

A. A relação com o cálculo seqüente

B. Regras de digitação para diversão

C. Semântica operacional da etiqueta/goto

Referências

4 regras de digitação

Nesta seção, introduzimos as regras de digitação para diversão na Seção 4.1 e para o núcleo na Seção 4.2. Na Seção 4.3, declaramos a solidez do tipo para os idiomas e prove que a tradução da diversão para o núcleo preserva a tipabilidade dos programas. Utilizamos os mesmos construtores, destruidores, tipos e contextos de digitação para diversão e núcleo, resumidos na definição 4.1. Observe que distinguimos entre variáveis ​​produtor e consumidor nos contextos de digitação, que indicamos com as anotações PRD e CNS.

” alt=”” aria-hidden=”true” />

Somos especializados as regras para tipos de dados para o par de tipos de concreto e listam as regras dos tipos de codata para lpair, fluir e funções 𝜎 → 𝜏. Uma linguagem de programação realista usaria declarações de tipo introduzidas pelo programador para o TypeCheck Data e os tipos de codata, em vez de usar esses casos especiais. Mas a formalização de um mecanismo geral para especificar dados e tipos de codata torna as regras de digitação menos legíveis. Esse tipo de mecanismo para especificar dados algébricos e tipos de codata em idiomas baseados em cálculo seqüente pode ser encontrado em [Downen et al. 2015] ou [Downen and Ariola 2020, section 8]. Em todas as regras de digitação abaixo, assumimos que temos um ambiente de programa que contém declarações de tipo para todas as definições contidas no programa, mas não encrendam explicitamente esse ambiente de programa por meio de cada uma das regras de digitação.

4.1 Regras de digitação para diversão

Não discutimos as regras de digitação por diversão em detalhes, pois são principalmente padrão. Em vez disso, fornecemos as regras completas no Apêndice B. A diversão do idioma possui apenas uma categoria sintática, termos, por isso precisamos apenas de um julgamento de digitação γ ⊢ 𝑡: 𝜏. Esse julgamento de digitação diz que no contexto γ (que contém atribuições de tipo para variáveis ​​e covariáveis) o termo 𝑡 possui tipo 𝜏. As únicas duas regras interessantes dizem respeito à etiqueta dos operadores de controle e GoTo:

Na regra, exigimos que a covariável 𝛼 esteja no contexto com o tipo 𝜏 e que o termo 𝑡 pode ser digitado com o mesmo tipo. O termo goto (𝑡; 𝛼) em si pode ser usado em qualquer tipo 𝜏 ′ porque não retorna ao seu contexto imediatamente circundante.

Autores:

(1) David Binder, Universidade de Tübingen, Alemanha;

(2) Marco Tzschentke, Universidade de Tübingen, Alemanha;

(3) Marius Muller, Universidade de Tübingen, Alemanha;

(4) Klaus Ostermann, Universidade de Tübingen, Alemanha.


fonte