2010-12-30 19 views

Respuesta

15

Un lenguaje de tipo estático es un lenguaje donde cada variable tiene un tipo asignado en tiempo de compilación. En C++, esto significa que debe decirle al compilador el tipo de cada variable, es decir, si es un int, o un doble, o una cadena, etc. Esto contrasta con los lenguajes de tipo dinámico como JavaScript o PHP, donde cada variable puede contener cualquier tipo, y ese tipo puede cambiar en tiempo de ejecución.

Un lenguaje de forma libre es aquel en el que no hay requisitos sobre dónde deben pasar varios símbolos entre sí. Puede agregar tantos espacios en blanco como desee (o dejar de lado cualquier espacio en blanco que no le guste). No es necesario que inicie las instrucciones en una nueva línea, y puede poner llaves en los bloques de códigos en cualquier lugar que desee. Esto ha llevado a algunas guerras santas sobre la forma correcta de escribir C++, pero en realidad me gusta la libertad que te da.

Espero que esto ayude!

+0

"esto significa que debe decirle al compilador el tipo de cada variable" -> Ya no, no es así. C++ 0x reutiliza la palabra clave 'auto' para * type inference *, por lo que no tiene que anotar cada variable * explícitamente * con su tipo estático. C++ 0x sigue siendo un lenguaje estático, aunque :) – fredoverflow

+0

Eso es una buena explicación. para agregar a otros lenguajes, como Java, ofrece capacidades como "Reflexión" que ayudaría a una clase a preguntar sobre sus propios miembros: ofreciendo potencialidad tipada dinámica. –

8

"Statically typed" significa que los tipos se verifican en tiempo de compilación, no en tiempo de ejecución. Por ejemplo, si escribe una clase que no tiene un método foo(), obtendrá un error en tiempo de compilación si intenta llamar al foo() en un objeto de esa clase. En los lenguajes de tipo dinámico (por ejemplo, Ruby), aún así obtendría un error, pero solo en tiempo de ejecución.

"Free-form" significa que puede usar espacios en blanco como quiera (es decir, escribir todo el programa en una línea, usar sangrías desiguales, poner muchas líneas en blanco, etc.). Esto está en contraste con idiomas como Python, donde el espacio en blanco es semánticamente significativo.

4

Estáticamente tipado: el compilador sabe cuáles son los tipos de todas las variables. En contraste con lenguajes como Python y Common Lisp, donde los tipos de variables pueden cambiar en tiempo de ejecución.

Forma libre: sin requisitos específicos de espacio en blanco. Esto está en contraste con el estilo antiguo de FORTRAN y COBOL, así que no estoy seguro de cuán útil es esta designación.