Come ingegnere del software, scrivo molto codice per i prodotti industriali. Elementi relativamente complicati con classi, thread, alcuni sforzi di progettazione, ma anche alcuni compromessi per le prestazioni. Faccio molti test e sono stanco dei test, quindi mi sono interessato a strumenti di dimostrazione formale, come Coq, Isabelle ... Potrei …
Questa domanda è stata migrata dallo Scambio teorico di stack di computer science perché è possibile rispondere a Scambio stack di computer science. Migrato 7 anni fa . "Alan Turing ha dimostrato nel 1936 che un algoritmo generale per risolvere il problema di arresto per tutte le possibili coppie di …
Come si fa a verificare se due algoritmi (diciamo Merge sort e Naïve sort) restituiscono lo stesso risultato per qualsiasi input, quando l'insieme di tutti gli input è infinito? Aggiornamento: Grazie Ben per aver descritto come sia impossibile fare algoritmicamente nel caso generale. La risposta di Dave è un ottimo …
Da Wikipedia: Nell'informatica teorica si afferma la correttezza di un algoritmo quando si dice che l'algoritmo è corretto rispetto a una specifica. Ma il problema è che ottenere la specifica "appropriata" non è un compito banale e non esiste un metodo corretto al 100% (per quanto ne so) per ottenere …
Adoro tutto ciò che è tempo di compilazione e mi piace l'idea che una volta compilato un programma vengano fatte molte garanzie sulla sua esecuzione. In generale, un sistema di tipo statico (Haskell, C ++, ...) sembra offrire maggiori garanzie in fase di compilazione rispetto a qualsiasi sistema di tipo …
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. …
Voglio fornire prove per parti di un programma Haskell che sto scrivendo come parte della mia tesi. Finora, tuttavia, non sono riuscito a trovare un buon lavoro di riferimento. Il libro introduttivo di Graham Hutton Programmazione in Haskell ( Google Libri ), che ho letto durante l'apprendimento di Haskell, tocca …
Sulla questione dell'insetto Heartbleed, Bruce Schneier scrisse nel suo Crypto-Gram del 15 aprile: "Catastrofico" è la parola giusta. Sulla scala da 1 a 10, questo è un 11. ' Ho letto diversi anni fa che un kernel di un determinato sistema operativo è stato rigorosamente verificato con un moderno sistema …
Sto cercando di insegnarmi diversi approcci alla verifica del software. Ho letto alcuni articoli. Per quanto ho appreso, la logica proposizionale con temporale generalmente usa il controllo del modello con solutori SAT (nei sistemi in corso - reattivi), ma che dire della logica del primo ordine con temporale? Usa i …
L'analisi del flusso di dati funziona su un grafico del flusso di controllo. Quando una lingua in esame supporta le eccezioni, il grafico del flusso di controllo può esplodere. Quali sono le tecniche standard per affrontare questa esplosione? Possiamo ignorare profondamente i bordi indotti dall'eccezione? Le analisi del flusso di …
So che il Symbolic Model Checking è un attraversamento dello spazio degli stati basato su rappresentazioni di insiemi di stati e relazioni di transizione come formule come in CTL usando modelli come Kripke Model. Conosco la teoria. Ma trovo difficile capire l'applicazione reale. Dove si usa esattamente? Cosa fa esattamente …
Permettere x=(x1,…,xn)X=(X1,...,Xn)x=(x_1,\dots,x_n) e y=(y1,…,yn)y=(y1,...,yn)y=(y_1,\dots,y_n) essere nnn-vettori di variabili booleane. Ho un predicato booleanoQ(x,y)Q(X,y)Q(x,y) su x,yX,yx,y. Do al mio amico PriscillaQ(x,y)Q(X,y)Q(x,y). In risposta, mi dàP(x)P(X)P(x), un predicato booleano su xXxe lei lo afferma P(x)≡∃y.Q(x,y),P(X)≡∃y.Q(X,y),P(x) \equiv \exists y . Q(x,y), o in altre parole, quello ∀x.[P(x)⇔∃y.Q(x,y)].∀X.[P(X)⇔∃y.Q(X,y)].\forall x . [P(x) \Leftrightarrow \exists y …
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.