Domande relative alla progettazione, all'implementazione e all'analisi dei linguaggi di programmazione. NON per domande su come programmare, che sono fuori tema su questo sito.
Sono nuovo alla teoria del linguaggio di programmazione. Stavo guardando alcune lezioni online in cui l'istruttore sosteneva che una funzione con tipo polimorfico forall t: Type, t->tfosse l'identità, ma non spiegava perché. Qualcuno può spiegarmi perché? Forse una prova dell'affermazione dei primi principi.
Conosco una dozzina di linguaggi di programmazione che hanno delle eccezioni in qualche modo, eppure sono venuto a testimoniare due tendenze "patologiche". Non sembra esserci un modello comune o una gerarchia di eccezioni. Ogni lingua fondamentalmente lancia la propria versione e, se le eccezioni lo rendono standard, i tipi di …
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 …
Ho studiato il libro "C ++ Demystified" . Ora ho iniziato a leggere "Programmazione orientata agli oggetti nella prima edizione Turbo C ++ (1a edizione)" di Robert Lafore. Non ho alcuna conoscenza della programmazione che vada oltre questi libri. Questo libro potrebbe essere obsoleto perché ha 20 anni. Ho l'ultima …
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 ⊆ …
Secondo questo articolo la seguente riga di codice Lisp stampa "Hello world" sull'output standard. (format t "hello, world") Lisp, che è un linguaggio omoiconico , può trattare il codice come dati in questo modo: Ora immagina di aver scritto la seguente macro: (defmacro backwards (expr) (reverse expr)) all'indietro è il …
Vuoi migliorare questo post? Fornisci risposte dettagliate a questa domanda, comprese le citazioni e una spiegazione del perché la tua risposta è corretta. Le risposte senza dettagli sufficienti possono essere modificate o eliminate. Spesso ci sono linguaggi di programmazione specializzati per compiti specifici. Alcuni linguaggi di programmazione sono eccellenti nell'aritmetica …
So che si può provare che PROLOG è Turing completo costruendo un programma che simula una macchina di Turing come questa: turing(Tape0, Tape) :- perform(q0, [], Ls, Tape0, Rs), reverse(Ls, Ls1), append(Ls1, Rs, Tape). perform(qf, Ls, Ls, Rs, Rs) :- !. perform(Q0, Ls0, Ls, Rs0, Rs) :- symbol(Rs0, Sym, RsRest), …
Sto lavorando a un compilatore per un linguaggio concatenativo e vorrei aggiungere il supporto per l'inferenza del tipo. Capisco Hindley-Milner, ma sto imparando la teoria dei tipi mentre vado, quindi non sono sicuro di come adattarlo. Il seguente sistema è sano e decisamente inferibile? Un termine è un letterale, una …
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: …
Qui ho letto che: Haskell sicuramente non ha il sistema di tipi più avanzato (nemmeno vicino se si contano le lingue di ricerca) ma tra tutte le lingue che sono effettivamente utilizzate nella produzione, Haskell è probabilmente al top. Quindi sto chiedendo due cose: quali linguaggi di ricerca hanno sistemi …
Qualcuno può riferirmi ad articoli peer-reviewed che studiano i vantaggi o gli svantaggi della scrittura di codice in uno stile funzionale? Esistono articoli che discutono delle applicazioni del calcolo Lambda in campi come l'apprendimento automatico, il design delle lingue, ecc.?
Mi sono imbattuta in una strana esperienza nella programmazione C. Considera questo codice: int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } Quando compilo ed eseguo questo, non ricevo alcun errore o avviso. Come …
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 …
Continuo a sentire come si deve imparare la teoria delle categorie per comprendere veramente la teoria del linguaggio di programmazione. Finora ho appreso molti PL senza mai entrare nel regno delle categorie. Tuttavia, ho pensato che fosse tempo di fare il salto per vedere cosa mi mancava. Sfortunatamente, nessuna delle …
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.