2012-06-23 14 views
10

He notado que en ninguna parte que puedo encontrar puedo dar una respuesta definitiva a la pregunta anterior. Primero me pregunté sobre esto cuando me di cuenta de que nunca se tenía que indicar el tipo de variable en QBasic al declararlas, aunque se podía agregar un sufijo al nombre de una variable para asegurarse de que era de un tipo particular.¿Qué sistema de escritura usa BASIC?

Además, como se interpretan algunos dialectos de BASIC y otros se compilan, ¿afecta esto al sistema de tipado?

Respuesta

6

Hay tantos sabores de BASIC, algunos solo históricos y algunos todavía en uso, que es imposible dar una respuesta verdadera.

Algunos de los BASIC anteriores (la línea numerada BASIC) tenían dos tipos de datos: String o Integer. El BASIC original que se envió con las computadoras Apple-II era un "BASIC entero". Más tarde, BASIC introdujo Floating Point, que solía ser FP de precisión única. El BASIC que se envió con la TI-99/4a fue un ejemplo de BASIC de punto flotante de principios de los 80. "Hacia atrás cuando", haría una cadena literal con comillas, y una variable de cadena con un sigilo $ siguiendo el nombre del identificador. Las variables que no tienen el sigilo $ suelen tener como valor predeterminado el tipo de variable numérica que el sabor dado de básico admite (Entero o Punto flotante). GWBasic, por ejemplo, se predeterminaría a punto flotante a menos que haya especificado el sigil %, que significa "Entero". TI Extended Basic no tenía un tipo entero, pero el tipo numérico de coma flotante tenía algo así como 15 dígitos significativos, si no recuerdo (los errores matemáticos de coma flotante no resisten).

Estos primeros conceptos básicos estaban esencialmente escritos de forma estática, aunque la distinción era mucho menos útil que en lenguajes más potentes. Las opciones para los tipos de datos fueron pocas: Cadena, Número (a veces Int, a veces FP), y algunas veces con la capacidad de especificar si un número es Int o FP. Entre bastidores algunos incluso se convierten libremente entre puntos y punto flotante según sea necesario. A menudo, las conversiones entre bastidores no estaban bien documentadas.

Pero esa era la situación en los años 80, cuando todos los que tenían una computadora hogareña eran más aficionados y los estándares eran más flexibles. Cada fabricante de hardware parecía tener su propia opinión sobre cómo debería funcionar BASIC.

Los BASIC más modernos son más potentes, y permiten un control más estricto sobre los tipos de variables (cuando sea necesario).

+1

Gracias por la respuesta detallada. –

2

Los dialectos anteriores de BASIC siempre se escribían estáticamente. Las variables numéricas, las variables de cadena y las matrices requieren una sintaxis diferente. También la longitud de los nombres a menudo se limitaba a un solo símbolo. La sintaxis utilizada con mayor frecuencia fue solo V para numérico, V$ para cadenas y las matrices se declararon por separado con DIM.

Desde que no programé en BASIC durante 15 años, no puedo decir con certeza qué está pasando en los dialectos modernos.

1

La versión mejorada de BASIC utilizada en los sistemas de base de datos MultiValue utiliza el tipado dinámico. Esto significa que el compilador decide cómo tratar su variable en función de la lógica y el contexto de las declaraciones.

Cualquier cosa entre comillas dobles es una cadena y cualquier valor numérico que no esté entre comillas dobles es un número. Para escribir datos numéricos en forma de dobles o flotantes hay varias expresiones de formato que puede usar para lograr esto, que aplica a sus variables.

En última instancia, todo se guarda en el nivel de la base de datos como una cadena ASCII. Por lo tanto, el desarrollador impone el tipo en el nivel de lógica de negocios, a diferencia de la base de datos que lo impone.

Cuestiones relacionadas