Cuando se lee sobre tipos de datos, la «definición de tipo» se usa a menudo sin ninguna explicación previa de lo que significa.
Por ejemplo, en https://en.wikipedia.org/wiki/Type_system , tenemos la oración «… ya que C ++ tiene reglas más estrictas con respecto a definiciones de tipo …»
Cualquier ayuda para aclarar cuál es la diferencia entre, por ejemplo, tipo y la definición de tipo es muy apreciada.
Comentarios
- ¿Sabes qué es un tipo ? Entonces, una definición de tipo es, como sugiere el término, la definición de un tipo. ' no estoy seguro de cuál es tu pregunta real aquí.
Responder
«Definir» un tipo es el acto de construir un nuevo tipo compuesto por uno o más tipos de datos preexistentes. Por ejemplo, el tipo «Número complejo» a menudo se declara como un par ordenado de «Números reales»:
Type Complex Real a Real b End
ayb son las partes real e imaginaria .
Esta muestra de pseudocódigo es una «Definición de tipo».
Comentarios
- Yo no ' No creo que esto es lo que ' se pregunta … Definir un tipo de datos abstracto es, por supuesto, una definición de tipo, pero no tiene nada que ver con o tipeo débil (parte de la pregunta)
Responder
De «El lenguaje de programación C ++» -por Bjarne Stroustrup es el creador de C ++.
Un tipo define un conjunto de valores posibles y un conjunto de operaciones (para un objeto).
Además, las siguientes definiciones están interrelacionadas con el tipo tomado del mismo libro
Una declaración es una declaración que introduce un nombre en el programa. tipo para la entidad nombrada
Un objeto es una memoria que contiene un valor de algún tipo.
Un valor es un conjunto de bits interpretados según un tipo.
Una variable es un objeto con nombre
Comentarios
- Esto no ' No mencione definición de tipo .
Respuesta
Las variables pueden contener diferentes tipos de valores, por ejemplo, números enteros, reales, caracteres … Esto se denomina TIPO de la variable. Algunos idiomas se escriben de forma dinámica. Eso significa que el intérprete o el compilador decide el tipo de variable por usted. En los lenguajes de escritura estática, debe definir el tipo usted mismo al declarar la variable. Esta es la DEFINICIÓN DE TIPO.
En lenguajes estáticos de tipado fuerte, las reglas prohíben mezclar diferentes tipos. si desea agregar, por ejemplo, un número real y un número entero, debe convertir explícitamente el número entero en real.
En un lenguaje de tipo débil, puede mezclar tipos. pero como los patrones de bits de bajo nivel difieren entre los tipos, puede tener resultados no deseados.
La mayoría de los idiomas se encuentran en algún punto intermedio. Quedará claro que los efectos no deseados no son aceptables, mientras que la necesidad de una conversión explícita hace que el código sea pesado. Por lo tanto, la mayoría de los compiladores realizarán una conversión implícita para algunas operaciones estándar. En ese caso, agregar un real y un entero provocará implícitamente una conversión a real.
Comentarios
- ¿Qué es " pe " ? Además, ' no veo cómo lo que ' has escrito después del primer párrafo se relaciona con la pregunta.
- @ David: pe = exempli gratia = Por ejemplo = por ejemplo … La oración " … ya que C ++ tiene reglas más estrictas con respecto a las definiciones de tipos … " muestra, en mi opinión, que la pregunta se hace en el contexto de una escritura débil y fuerte.
- Ajá – que ' s " por ejemplo, ", en inglés – editado.
- de hecho lo es. mi error.
- Esta respuesta demuestra una variedad de malentendidos graves de tipos y sistemas de tipos. Prácticamente todas las frases de esta respuesta son incorrectas, confusas o engañosas. Para empezar, los sistemas de tipos no se tratan sólo de variables:
3+'a'
no ' no implica ninguna variable, sino que se comprobará el tipo. Las implementaciones de lenguaje " escritas " dinámicamente don ' t " decide " el tipo de cualquier cosa. Las conversiones implícitas no ' hacen que un idioma sea más " dinámicamente " o " débilmente " escrito.En general, " escribiendo " estático y dinámico no son extremos opuestos de un espectro, sino que simplemente hablan de cosas completamente diferentes.