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.
Recentemente ho avuto un problema con la leggibilità del mio codice. Avevo una funzione che eseguiva un'operazione e restituiva una stringa che rappresenta l'ID di questa operazione per riferimento futuro (un po 'come OpenFile in Windows che restituisce un handle). L'utente utilizzerà questo ID in un secondo momento per avviare …
Esistono studi condotti sull'efficacia di linguaggi tipizzati staticamente o dinamicamente? In particolare: Misurazioni della produttività del programmatore Tasso di difetto Includendo anche gli effetti dell'utilizzo o meno di unit test. Ho visto molte discussioni sui meriti di entrambe le parti, ma mi chiedo se qualcuno abbia fatto uno studio al …
Mi rendo conto che alcune cose sono più facili / difficili in una lingua rispetto all'altra, ma mi interessano solo le funzionalità relative al tipo che sono possibili in una e impossibili / irrilevanti nell'altra. Per renderlo più specifico, ignoriamo le estensioni di tipo Haskell poiché ce ne sono così …
Considera questa una domanda "accademica". Mi sono chiesto di evitare di tanto in tanto i NULL e questo è un esempio in cui non riesco a trovare una soluzione soddisfacente. Supponiamo di memorizzare le misurazioni in cui in alcune occasioni è noto che la misurazione è impossibile (o mancante). Vorrei …
Perché è OK e principalmente previsto: abstract type Shape { abstract number Area(); } concrete type Triangle : Shape { concrete number Area() { //... } } ... mentre questo non è OK e nessuno si lamenta: concrete type Name : string { } concrete type Index : int { …
Supponendo una lingua con un tipo di sicurezza intrinseca (ad esempio, non JavaScript): Dato un metodo che accetta un SuperType, sappiamo che nella maggior parte dei casi in cui potremmo essere tentati di eseguire prove di tipo per scegliere un'azione: public void DoSomethingTo(SuperType o) { if (o isa SubTypeA) { …
Eric Lippert ha fatto un punto molto interessante nella sua discussione sul perché C # usa un tipo nullpiuttosto che un Maybe<T>tipo : La coerenza del sistema di tipi è importante; possiamo sempre sapere che un riferimento non annullabile non è mai stato ritenuto non valido in nessuna circostanza? Che …
sfondo Sto progettando una lingua, come un progetto collaterale. Ho un assemblatore funzionante, un analizzatore statico e una macchina virtuale per questo. Dato che posso già compilare ed eseguire programmi non banali usando l'infrastruttura che ho costruito, ho pensato di fare una presentazione alla mia università. Durante il mio discorso …
Un tipo di fondo è un costrutto che appare principalmente nella teoria dei tipi matematica. Si chiama anche il tipo vuoto. È un tipo che non ha valori, ma è un sottotipo di tutti i tipi. Se il tipo restituito di una funzione è il tipo inferiore, significa che non …
In JavaScript: The Good Parts di Douglas Crockford, menziona il suo capitolo sull'eredità, L'altro vantaggio dell'eredità classica è che include la specifica di un sistema di tipi. Questo in gran parte libera il programmatore dal dover scrivere operazioni di casting esplicite, il che è un'ottima cosa perché durante il casting, …
PHP, come molti di noi sanno, ha una digitazione debole . Per coloro che non lo fanno, PHP.net dice: PHP non richiede (o supporta) la definizione esplicita del tipo nella dichiarazione delle variabili; il tipo di una variabile è determinato dal contesto in cui viene utilizzata la variabile. Lo adori …
Mi sono sempre chiesto perché Java non fa l'inferenza del tipo dato che il linguaggio è quello che è e la sua VM è molto matura. Google's Go è un esempio di una lingua con un'eccellente deduzione dei caratteri e riduce la quantità di digitazione che uno deve fare. C'è …
Quali sono alcune tecniche che potrei usare per refactificare costantemente il codice rimuovendo la dipendenza da tipi esistenziali? In genere questi vengono utilizzati per squalificare costruzioni indesiderate del tuo tipo e per consentire il consumo con una minima conoscenza del tipo dato (o almeno così è la mia comprensione). Qualcuno …
Ciò è emerso in una discussione con un amico, e mi sono trovato in difficoltà a pensare a qualsiasi buon argomento. Quali vantaggi conferiscono una digitazione debole?
Leggo il codice molto più spesso di quanto scrivo codice e presumo che la maggior parte dei programmatori che lavorano su software industriale lo faccia. Il vantaggio dell'inferenza di tipo presumo sia meno verbosità e meno codice scritto. D'altra parte, se leggi il codice più spesso, probabilmente vorrai un codice …
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.