un sistema di tipi è un insieme di regole che assegnano una proprietà chiamata tipo ai vari costrutti - come variabili, espressioni, funzioni o moduli - di cui è composto un programma per computer.
Ho letto alcuni articoli su Internet sulla scelta del linguaggio di programmazione nell'impresa. Recentemente sono stati diffusi molti linguaggi tipizzati dinamici, ad esempio Ruby, Python, PHP ed Erlang. Ma molte aziende continuano a utilizzare linguaggi tipizzati statici come C, C ++, C # e Java. E sì, uno dei vantaggi …
Ho questi due piccoli programmi: C #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Giava class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } che riporta il messaggio di errore: …
Sto studiando Haskell allo scopo di comprendere la programmazione funzionale, con l'aspettativa che applicherò le intuizioni che ottengo in altre lingue (principalmente Groovy, Python, JavaScript). Ho scelto Haskell perché avevo l'impressione che fosse puramente funzionale e che non mi permettesse di fare affidamento sullo stato. Non ho scelto di imparare …
Ho letto una domanda correlata Esistono schemi di progettazione non necessari in linguaggi dinamici come Python? e ricordato questa citazione su Wikiquote.org La cosa meravigliosa della digitazione dinamica è che ti consente di esprimere tutto ciò che è calcolabile. E i sistemi di tipo no: i sistemi di tipo sono …
L'introduzione della nuova notazione lambda (vedi ad esempio questo articolo ) in Java 8 richiederà qualche tipo di deduzione di tipo? In tal caso, in che modo il nuovo sistema di tipi avrà un impatto sul linguaggio Java nel suo insieme?
So che questa è una domanda molto ampia, ambigua e forse filosofica. In una certa misura, la parola chiave più importante nella domanda - sistema di tipo "forte" - stessa, è mal definita . Quindi, lasciami provare a spiegare cosa intendo. Contesto generale della domanda Abbiamo creato un'app Web su …
È comunemente accettato che i generici Java non sono riusciti in alcuni modi importanti. La combinazione di caratteri jolly e limiti ha portato ad alcuni codici seriamente illeggibili. Tuttavia, quando guardo altre lingue, non riesco davvero a trovare un sistema di tipo generico di cui i programmatori siano contenti. Se …
Sembra che tutti i nuovi linguaggi di programmazione o almeno quelli che sono diventati popolari usino l'inferenza del tipo. Anche Javascript ha ottenuto tipi e inferenze di tipo attraverso varie implementazioni (Acscript, dattiloscritto ecc.). Mi sembra fantastico, ma mi chiedo se ci siano dei compromessi o perché diciamo che Java …
Chiuso . Questa domanda è basata sull'opinione . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che possa essere risolta con fatti e citazioni modificando questo post . Chiuso 4 anni fa . Nell'articolo di Eric Lippert Che succede con la notazione ungherese? , …
Nella progettazione e implenting un linguaggio di programmazione orientato agli oggetti, ad un certo punto si deve fare una scelta circa l'attuazione di tipi fondamentali (come int, float, doubleo equivalenti) come classi o qualcos'altro. Chiaramente, i linguaggi della famiglia C hanno la tendenza a non definirli come classi (Java ha …
Sono un po 'confuso sulla differenza tra i sistemi di tipo nominale e strutturale. Qualcuno può spiegare in che modo differiscono? Da quello che ho capito: Nominale: la compatibilità dei tipi si basa sul nome del tipo. Strutturale: la compatibilità dei tipi si basa sulla struttura dei tipi, ad esempio …
Nota: quando ho usato "complesso" nel titolo, intendo che l'espressione ha molti operatori e operandi. Non che l'espressione stessa sia complessa. Di recente ho lavorato su un semplice compilatore per l'assemblaggio x86-64. Ho terminato il front-end principale del compilatore - il lexer e il parser - e ora sono in …
Ho letto che Hindley-Milner non funziona con i sistemi di tipo che hanno sottoclassi e ci sono anche altre caratteristiche di sistema di tipo che non funzionano bene con esso. Go attualmente ha solo un'inferenza di tipo molto limitata nell'operatore :=. Ma Go non ha sottoclassi in senso tradizionale, solo …
Ci sono alcune ragioni teoriche per questo (come il fatto che la verifica del tipo o l'inferenza del tipo diventerebbero indecidibili) o ragioni pratiche (troppo difficili da implementare correttamente)? Attualmente, possiamo avvolgere le cose newtypecome newtype Pair a = Pair (a, a) e poi avere Pair :: * -> * …
Quando si spiega il combinatore Y nel contesto di Haskell, di solito si nota che l'implementazione diretta non controllerà il tipo in Haskell a causa del suo tipo ricorsivo. Ad esempio, da Rosettacode : The obvious definition of the Y combinator in Haskell canot be used because it contains an …
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.