Quando si leggono informazioni sui tipi di dati, la “definizione del tipo” viene spesso utilizzata senza alcuna spiegazione preliminare sul significato.
Ad esempio, in https://en.wikipedia.org/wiki/Type_system , abbiamo la frase “… poiché C ++ ha regole più severe relative a definizioni dei tipi …”
Qualsiasi aiuto per chiarire qual è la differenza tra, ad esempio, type e la definizione del tipo è molto apprezzata!
Commenti
- Sai cosè un tipo ? Quindi, una definizione di tipo è, come suggerisce il termine, la definizione di un tipo. ' non sono sicuro di quale sia la tua vera domanda qui.
Risposta
“Definire” un tipo è latto di costruire un nuovo tipo composto da uno o più tipi di dati preesistenti. Ad esempio, il tipo “Numero complesso” viene spesso dichiarato come una coppia ordinata di “Numeri reali”:
Type Complex Real a Real b End
a e b sono le parti reale e immaginaria .
Questo esempio di pseudo-codice è una “Definizione di tipo”.
Commenti
- Non ' Penso che questo sia ciò che ' viene chiesto … La definizione di un tipo di dati astratto è ovviamente una definizione di tipo, ma non ha nulla a che fare con o digitazione debole (parte della domanda)
Risposta
Da “The C ++ Programming Language” di Bjarne Stroustrup il creatore di C ++.
Un tipo definisce un insieme di possibili valori e un insieme di operazioni (per un oggetto).
Anche le seguenti definizioni sono correlate al tipo preso dallo stesso libro
Una dichiarazione è unistruzione che introduce un nome nel programma. Specifica un file tipo per lentità denominata
Un oggetto è una memoria che contiene un valore di un certo tipo.
Un valore è un insieme di bit interpretati secondo un tipo.
Una variabile è un oggetto con nome
Commenti
- Questo non ' per menzionare definizione del tipo .
Risposta
Le variabili possono contenere diversi tipi di valori, ad esempio numeri interi, reali, caratteri … Questo è chiamato il TIPO della variabile. Alcune lingue sono digitate dinamicamente. Ciò significa che linterprete o il compilatore decide il tipo di variabile per te. Nei linguaggi di tipo statico, è necessario definire il tipo da soli quando si dichiara la variabile. Questa è la TYPE DEFINITION.
In un linguaggio statico fortemente tipizzato le regole proibiscono di mescolare tipi diversi. se si desidera aggiungere, ad esempio, un numero reale e un intero, è necessario eseguire il cast esplicito dellintero in reale.
in un linguaggio di tipizzazione debole è possibile mescolare i tipi. ma poiché i bitpattern di basso livello differiscono tra i tipi, è possibile ottenere risultati indesiderati.
La maggior parte delle lingue è una via di mezzo. Sarà chiaro che gli effetti indesiderati non sono accettabili, mentre la necessità di un cast esplicito rende il codice pesante. Quindi la maggior parte dei compilatori eseguirà un cast implicito per alcune operazioni standard. Laggiunta di un numero reale e di un numero intero in quel caso provocherà implicitamente un cast a reale.
Commenti
- Che cosè " pe " ? Inoltre, ' non vedo come ciò che ' hai scritto dopo il primo paragrafo sia correlato alla domanda.
- @ David: pe = examples gratia = Per motivi di esempio = per esempio … La frase " … poiché il C ++ ha regole più severe per quanto riguarda le definizioni dei tipi … " mostra a mio parere che la domanda viene posta nel contesto di una digitazione debole e forte.
- Aha – that ' s " ad es. ", in inglese – modificato.
- in effetti lo è. errore mio.
- Questa risposta dimostra una serie di gravi incomprensioni di tipi e sistemi di tipi. Praticamente ogni frase di questa risposta è errata, confusa o fuorviante. Per cominciare, i sistemi di tipi non riguardano solo le variabili:
3+'a'
non ' coinvolge alcuna variabile, ma verrà controllato per tipo. Dinamicamente " digitato " implementazioni linguistiche don ' t " decidi " il tipo di qualsiasi cosa. Le conversioni implicite don ' per rendere una lingua più " dinamicamente " o " digitato ".In genere, " digitando " statico e dinamico non sono estremi opposti di uno spettro, ma parlano semplicemente di cose completamente diverse.