Qual è la differenza fondamentale tra la semantica operativa di piccole e grandi dimensioni? Sto facendo fatica a capire di cosa si tratta e la motivazione per avere i due.
Sto cercando un semplice calcolo che supporti il ragionamento sulla riflessione , ovvero l'introspezione e la manipolazione dei programmi in esecuzione. Esiste un'estensione -calculus non tipizzata che consente di convertire -terms in una forma che può essere sintatticamente manipolata e successivamente valutata?λλ\lambdaλλ\lambda Immagino che il calcolo abbia due principali termini …
Dato un sistema di transizione etichettato , dove S è un insieme di stati, Λ è un insieme di etichette e → ⊆ S × Λ × S è una relazione ternaria. Come al solito, scrivi p α → q per ( p , α , q ) ∈ → …
Nel documento "Un tipo di dati JSON replicato senza conflitti" , ho riscontrato questa notazione per la definizione formale di "regole": Come si chiama questa notazione? Come lo leggo? Per esempio: la DOCregola non ha nulla nel suo "numeratore" - perché no? le regole EXECe GETsembrano avere due termini separati …
Nei linguaggi di programmazione, le chiusure sono una caratteristica popolare e spesso desiderata. Wikipedia dice (enfasi sulla mia): In informatica, una chiusura (...) è una funzione insieme a un ambiente di riferimento per le variabili non locali di quella funzione. Una chiusura consente a una funzione di accedere a variabili …
Sto davvero lottando con questa proprietà: Let sia spazi coerenti e è una funzione monotona. è continuo se e solo se , per tutti tale che D sia un insieme diretto.X,YX,YX,Yf f ( ⋃ x ∈ D x ) = ⋃ x ∈ D f ( x ) D ⊆ …
Con riferimento a funzionalità in linguaggi come ruby (e javascript), che consentono a un programmatore di estendere / sovrascrivere le classi in qualsiasi momento dopo averlo definito (comprese le classi come String), è teoricamente fattibile progettare un linguaggio che consenta ai programmi di estenderli in seguito la sua semantica. es: …
Conosco la semantica operativa (sia piccoli che grandi) per definire i linguaggi di programmazione. Sono interessato anche all'apprendimento della semantica denotazionale, ma non sono sicuro che ne varrà la pena. Imparerò solo lo stesso materiale da un diverso punto di vista o ci sono intuizioni che posso ottenere solo dalla …
Supponiamo di avere un linguaggio semplice costituito dai termini: truetrue\mathtt{true} falsefalse\mathtt{false} se sono termini, allora lo è anchei ft1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 Ora supponi le seguenti regole di valutazione logica: iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t′1ift1thent2elset3→ift′1thent2elset3[E-If]iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t1′ift1thent2elset3→ift1′thent2elset3[E-If] \begin{gather*} \dfrac{} {\mathtt{if}\: \mathtt{true} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_2} \text{[E-IfTrue]} \quad \dfrac{} {\mathtt{if}\: \mathtt{false} \:\mathtt{then}\: t_2 …
Penso di essere piuttosto confuso su ciò che viene chiamato un calcolo e ciò che viene chiamato un linguaggio di programmazione. Tendo a pensare, e potrebbe essere stato detto, che un calcolo è un sistema formale per ragionare sull'equivalenza dei programmi. I programmi hanno una semantica operativa specificata da una …
Ci sono molte lingue popolari. Ma gli informatici ci dicono che per capire il comportamento dei programmi in quelle lingue discutono in modo definitivo e inequivocabile del comportamento dei programmi (ad esempio, dimostrando la loro identità), dobbiamo tradurli in un altro linguaggio ben compreso. Chiamano tale linguaggio "una semantica". Gli …
Esiste uno strumento per la prototipazione di una semantica del linguaggio di programmazione e di un sistema di tipi che consenta anche una sorta di controllo del modello delle proprietà standard, come la solidità del tipo? Lo sto chiedendo, perché sto leggendo un libro su Alloy e fornisce l'esatta funzionalità …
Nella discussione intorno a questa domanda , Gilles menziona correttamente che qualsiasi prova di correttezza di un algoritmo che utilizza array deve dimostrare che non vi sono accessi fuori campo fuori campo; a seconda del modello di runtime, ciò provocherebbe un errore di runtime o l'accesso a elementi non array. …
Al lavoro mi è stato assegnato il compito di dedurre alcune informazioni sul tipo di un linguaggio dinamico. Riscrivo sequenze di affermazioni in letespressioni nidificate , in questo modo: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let …
Sto cercando risorse per iniziare con l' analisi del programma . L'unico libro che ho trovato sull'argomento è il libro Nielson & Nielson . Oltre a ciò, sembra che ci siano solo libri "compilatori" in cui "analisi del programma" sarebbe un capitolo o qualcosa del genere. Le persone conoscono altre …
A volte sentiamo "Swift non fa il classico (tracciamento) GC, usa ARC." Ma non sono sicuro che ci sia qualcosa nella semantica di Swift che richieda il conteggio dei riferimenti. Sembra che si possa costruire il proprio compilatore e runtime Swift per usare GC di traccia. Quindi, cos'è esattamente "contato …
Nel capitolo 1 di Basi pratiche per i linguaggi di programmazione , l'autore menziona che gli alberi di sintassi astratti sono associati a specie . Intuitivamente, i tipi sono come i tipi, ma mi piacerebbe sapere se hanno una definizione precisa. Sarei felice se anche alcuni riferimenti fossero forniti.
Diciamo che gli elenchi sono definiti come List a = Nil | Cons a (List a) Quindi, in Haskell è List xil punto di correzione più grande o meno? Sto chiedendo perché lfp dovrebbe escludere elenchi infiniti (ma è possibile costruirli in Haskell), mentre gfp dovrebbe escludere quelli finiti.
StackOverflow mi ha indicato qui, quindi la domanda potrebbe essere un po 'nei termini di un laico. Wikipedia definisce funzioni pure come Nella programmazione al computer, una funzione può essere descritta come una funzione pura se entrambe queste affermazioni sulla funzione contengono: La funzione valuta sempre lo stesso valore di …
Di recente ho discusso con un amico di un sito Web che proponeva sfide regex, principalmente abbinando un gruppo di parole a una proprietà speciale. Stava cercando una regex che corrispondesse a stringhe come ||||||||dove il numero di |è primo. Gli dissi immediatamente che non avrebbe mai funzionato perché se …
Nel calcolo lambda puro, abbiamo l'insieme di termini definito induttivamente (la grammatica): e::=x∣λx.e∣e1e2e::=x∣λx.e∣e1e2e::= x \mid \lambda x . e \mid e_1 e_2 Sotto la strategia di valutazione call-by-value, abbiamo le regole di inferenza per la riduzione beta e le regole su come valutare le applicazioni (regole di congruenza). Sto cercando …
Sto per implementare un linguaggio specifico di dominio per la rappresentazione delle convenzioni di apprendimento sociale. Parte dell'implementazione è una descrizione formale di un linguaggio: il suo "calcolo", i simboli e le espressioni logiche. Il mio approccio sarebbe quello di descrivere il linguaggio descrivendone la grammatica ma ci sono anche …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.