Quest-ce quune définition de type?

Lors de la lecture sur les types de données, la « définition de type » est souvent utilisée sans aucune explication préalable de ce que cela signifie.

Par exemple, dans https://en.wikipedia.org/wiki/Type_system , nous avons la phrase « … puisque C ++ a des règles plus strictes concernant définitions de type … »

Toute aide pour clarifier la différence, par exemple, type et la définition de type est très appréciée!

Commentaires

  • Savez-vous ce quest un type ? Ensuite, une définition de type est, comme le terme lindique, la définition dun type. Je ' ne sais pas quelle est votre vraie question ici.

Réponse

« Définir » un type est lacte de construire un nouveau type composé dun ou plusieurs types de données préexistants. Par exemple, le type « Complex Number » est souvent déclaré comme une paire ordonnée de « Real Numbers »:

Type Complex Real a Real b End 

a et b étant les parties réelle et imaginaire .

Cet exemple de pseudo-code est une « définition de type ».

Commentaires

  • I don ' Je pense que cest ce que lon demande ' … La définition dun type de données abstrait est bien sûr une définition de type, mais na rien à voir avec strong ou typage faible (partie de la question)

Réponse

De « Le langage de programmation C ++ » -par Bjarne Stroustrup le créateur du C ++.

Un type définit un ensemble de valeurs possibles et un ensemble dopérations (pour un objet).

Les définitions suivantes sont également liées avec le type tiré du même livre

Une déclaration est une déclaration qui introduit un nom dans le programme.Il spécifie un type pour lentité nommée

Un objet est une mémoire qui contient une valeur dun certain type.

Une valeur est un ensemble de bits interprétés selon un type.

Une variable est un objet nommé

Commentaires

  • Cela ne ' t mentionner la définition de type .

Réponse

Les variables peuvent contenir différentes sortes de valeurs, par exemple, des entiers, des réels, des caractères … Cest ce quon appelle le TYPE de la variable. Certaines langues sont typées dynamiquement. Cela signifie que linterpréteur ou le compilateur décide du type de variable pour vous. Dans les langages à typage statique, vous devez définir vous-même le type lors de la déclaration de la variable. Cest la DEFINITION DE TYPE.

Dans un langage statique fortement typé, les règles interdisent de mélanger différents types. si vous voulez ajouter, par exemple, un réel et un entier, vous devez convertir explicitement lentier en réel.

dans un langage typé faible, vous pouvez mélanger les types. mais comme les bitpatterns de bas niveau diffèrent dun type à lautre, vous pouvez avoir des résultats indésirables.

La plupart des langues se situent quelque part entre les deux. Il sera clair que les effets indésirables ne sont pas acceptables, tandis que la nécessité dun cast explicite alourdit le code. Ainsi, la plupart des compilateurs feront un cast implicite pour certaines opérations standard. Lajout dun réel et dun entier provoquera dans ce cas implicitement une conversion en réel.

Commentaires

  • Quest-ce que " pe " ? De plus, je ne ' voir comment ce que vous ' avez écrit après le premier paragraphe se rapporte à la question.
  • @ David: pe = exempli gratia = Par souci dexemple = par exemple … La phrase " … puisque C ++ a des règles plus strictes concernant les définitions de type … " montre à mon avis que la question est posée dans le contexte dun typage faible et fort.
  • Aha – que ' s " par exemple ", en anglais – édité.
  • en effet. mon erreur.
  • Cette réponse démontre une variété de malentendus graves de types et de systèmes de types. Pratiquement toutes les phrases de cette réponse sont incorrectes, déroutantes ou trompeuses. Pour commencer, les systèmes de types ne sont pas seulement des variables: 3+'a' ne ' t impliquent aucune variable mais seront vérifiés de type. " typé dynamiquement " implémentations de langage don ' t " décide " du type de quoi que ce soit. Les conversions implicites ne ' rendent une langue plus " dynamiquement " ou " faiblement " tapé.En général, les " typages " dynamiques et statiques ne sont pas des extrémités opposées dun spectre, mais parlent simplement de choses entièrement différentes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *