Qual é a diferença fundamental entre a semântica operacional de pequeno e grande passo? Estou tendo dificuldade para entender o que é e a motivação para ter os
A semântica descreve formalmente o significado de alguma sintaxe.
Qual é a diferença fundamental entre a semântica operacional de pequeno e grande passo? Estou tendo dificuldade para entender o que é e a motivação para ter os
Estou procurando um cálculo simples que suporte o raciocínio sobre reflexão , a saber, a introspecção e manipulação de programas em execução. Existe uma extensão de cálcio não tipada que permita converter termos λ em um formato que possa ser sintaticamente manipulado e depois avaliado...
Dado um sistema de transição rotulado (S,Λ,→)(S,Λ,→)(S,\Lambda,\to) , onde SSS é um conjunto de estados, ΛΛ\Lambda é um conjunto de rótulos e →⊆S×Λ×S→⊆S×Λ×S\to\subseteq S\times\Lambda\times S é uma relação ternária. Como sempre, escreva p→αqp→αqp \stackrel\alpha\rightarrow q para . A transição...
No artigo "Um tipo de dados JSON replicado sem conflito" , encontrei essa notação para definir formalmente "regras": Como é chamada essa notação? Como eu o leio? Por exemplo: a DOCregra não tem nada no seu "numerador" - por que não? as regras EXECe GETparecem ter dois termos separados acima...
Nas linguagens de programação, os fechamentos são um recurso popular e frequentemente desejado. A Wikipedia diz (ênfase minha): Na ciência da computação, um fechamento (...) é uma função juntamente com um ambiente de referência para as variáveis não locais dessa função. Um fechamento permite...
Estou realmente lutando com esta propriedade: Deixe que X,YX,YX,Y ser espaços coerentes e ser uma função monótona. é contínuo se e somente se , para todos os modo que seja um conjunto direcionado.f f ( ⋃ x ∈ D x ) = ⋃ x ∈ D f ( x )f:Cl(X)→Cl(Y)f:Cl(X)→Cl(Y)f: Cl(X) \rightarrow...
Com referência a recursos em linguagens como ruby (e javascript), que permitem que um programador estenda / substitua classes a qualquer momento após defini-la (incluindo classes como String), é teoricamente viável projetar uma linguagem que permita que os programas estendam posteriormente sua...
Suponha que temos uma linguagem simples que consiste nos termos: truetrue\mathtt{true} falsefalse\mathtt{false} se são termos, o mesmo acontece comt1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 Agora assuma as seguintes...
Eu estou familiarizado com a semântica operacional (passo a passo e passo a passo) para definir linguagens de programação. Também estou interessado em aprender semântica denotacional, mas não sei se valerá a pena. Estarei aprendendo o mesmo material de um ponto de vista diferente, ou há idéias que...
Acho que estou bastante confuso sobre o que é chamado de cálculo e o que é chamado de linguagem de programação. Costumo pensar, e pode ter sido dito, que um cálculo é um sistema formal de raciocínio sobre a equivalência de programas. Os programas têm uma semântica operacional especificada por uma...
Existem muitos idiomas populares. Porém, os cientistas da computação nos dizem que, para entender o comportamento dos programas nessas línguas de maneira definitiva e inequívoca, argumentar sobre o comportamento do programa (por exemplo, provar sua identidade), precisamos traduzi-los para outra...
Eu sei que autores diferentes usam notação diferente para representar a semântica da linguagem de programação. De fato, Guy Steele aborda esse problema em um vídeo interessante . Gostaria de saber se alguém sabe se o operador líder de torniquete tem um significado bem reconhecido. Por exemplo, eu...
No trabalho, fui encarregado de deduzir algumas informações de tipo sobre uma linguagem dinâmica. Reescrevo seqüências de instruções em letexpressões aninhadas , da seguinte maneira: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z =>...
Existe alguma ferramenta para prototipar uma semântica da linguagem de programação e um sistema de tipos que também permita algum tipo de verificação de modelo de propriedades padrão, como a solidez do tipo? Estou perguntando isso, porque estou lendo um livro sobre o Alloy e ele fornece a...
Na discussão em torno dessa questão , Gilles menciona corretamente que qualquer prova de correção de um algoritmo que utiliza matrizes deve provar que não há acesso a matrizes fora dos limites; dependendo do modelo de tempo de execução, isso causaria um erro de tempo de execução ou acesso a...
Estou procurando recursos para começar a analisar o programa . O único livro que encontrei sobre o assunto é o livro Nielson & Nielson . Fora isso, parece que existem apenas livros de "compiladores" em que "análise de programa" seria um capítulo ou algo nesse sentido. As pessoas conhecem...
Normalmente, vejo que na representação semântica operacional estrutural do loop while, o estado do programa não muda: (whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S)...
No capítulo 1 de Fundamentos práticos para linguagens de programação , o autor menciona que as árvores de sintaxe abstratas estão associadas a tipos . Intuitivamente, as classificações são como tipos, mas eu gostaria de saber se elas têm uma definição precisa. Ficaria feliz se algumas referências...
StackOverflow me apontou aqui, então a pergunta pode ser um pouco nos termos de um leigo. A Wikipedia define funções puras como Na programação de computadores, uma função pode ser descrita como uma função pura se ambas as instruções sobre a função se mantiverem: A função sempre avalia o...
Digamos que as listas sejam definidas como List a = Nil | Cons a (List a) Então, em Haskell, List xo maior ou o menos fixo? Estou perguntando porque o lfp deve excluir listas infinitas (mas você pode construí-las em Haskell), enquanto o gfp deve excluir as