Nombres, ligado Y Ámbito Flashcards

1
Q

Que es un nombre o identificador?

A

Es una abstracción básica para referenciar entidades. Según el diseño se considera el largo, los tipos de caracteres aceptados, sensibilidad y palabras

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que es una variable?

A

Es una abstracción de objeto de memoria, tiene social nombre, dirección de memoria, y valor, a estos dos se les llama l-value y r-value respectivamente. Además de un tipo y ámbito.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qué es el ligado? Qué tipos de ligado existen?

A

El ligado (Binding) es un proceso de asociación a una entidad del lenguaje de un atributo. Existe el ligado de tipo, y el ligado de memoria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qué es el ligado de tipo?

A

Es la asociación de tipo de datos a un objeto, estos deben ser ligados antes de usar los objetos. Puede ser por declaración explícita o implícita. Además existe el ligado estático y el ligado dinámico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

El ligado estático, usa declaración explícita o implícita?

A

Generalmente usa la declaración explícita, pero también puede ser implícita y se hace el tiempo de compilación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cómo se realiza el ligado dinámico?

A

Éste es mediante declaración implícita, y el ligado se hace al momento de asignación. Es usado principalmente en lenguajes de scripting como Python. Ayuda a programar de forma genérica pero disminuye la capacidad de detección de errores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qué es el ligado de dirección?

A

Como según el ámbito, el mismo nombre puede ser usado para referirse a objetos múltiples, o bien un alias. Por ejemplo, dos punteros que apuntan a una misma variable, o referencias múltiples, debe existir un ligado a un objeto de memoria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qué es la sobrecarga?

A

La sobrecarga (Overloading) Es cuando un mismo nombre se refiere a diferentes objetos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nombre los tres tipos de memoria y para qué tipo de ligado se usa.

A

Los tres tipos de memoria son memoria estática, memoria de stack y memoria de Heap.

La memoria estática se usa para el hígado estático de una variable a la memoria: como variables globales y variables estáticas.

La memoria de Stack Se usa para la asignación dinámica de memoria, se liberan automáticamente y se activan al usar un ambiente de ejecución. Ejemplo: procedimiento, función, bloque while/for/if

La memoria de Heap permite Crear y destruir objetos. Son referencias por una variable como un puntero. Ejemplo: malloc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

En base al ligado de memoria se clasifican las variables según su tiempo de vida del ligado. Cuáles son estas clasificaciones?

A

Tenemos las variables estáticas, las variables dinámicas de Stack, las variables dinámicas de Heap y dentro de estas existen dos tipos: las dinámicas de Heap explícitas y las dinámicas de Heap implícitas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Que es una variable estática?

A

Esta tiene ligado estático, se usa memoria estática, y pueden ser de acceso global o se pueden restringir a un ámbito local. La desventaja es su falta de flexibilidad, no soportan recursión.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qué es una variable dinámica de Stack?

A

Es una variable de memoria asignada dinámicamente desde el Runtime System, Desde el registro de activación. Soporta muy bien la recursión y el ligado de tipo, es normalmente estática en un ambiente de ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que es una variable dinámica de heap y cuáles son sus tipos?

A

Esta se asignan a la memoria de Heap. Primero están las explícitas donde la memoria se asigna y libera en forma explícita desde el Heap por el programador, usando un operador del lenguaje y su acceso ocurre sólo mediante punteros o referencia.

Luego están las implícitas, donde se liga automáticamente a la memoria de Heap cada vez que ocurre una asignación: Python y JavaScript, son muy flexibles pero tiene un alto costo en ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es una constante con nombre ?

A

Se ligan a un valor sólo una vez y luego permanecen inmutables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qué es el ámbito?

A

Es un rango de sentencias en el cual un nombre es visible. En una sentencia, una variable es visible si puede ser referenciada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cuáles son los dos tiempos de determinación del ámbito del nombre?

A

El ámbito se puede terminar en tiempo de compilación: estático. Y en tiempo de ejecución: dinámico.

17
Q

En qué consiste el ligado de ámbito estático?

A

Un lenguaje de programación posee ámbito estático si el ámbito puede ser determinado antes de la ejecución, en una compilación, o en el análisis del código fuente.

18
Q

En qué consisten los ámbitos anidados?

A

En ámbitos anidados la correspondencia entre una referencia a un nombre y tu declaración, se busca desde el ámbito más cercano al más lejano (externo).

19
Q

En qué consiste el ocultamiento de nombres?

A

A veces se pueden generar espacios de nombre, para llamar explícitamente a una variable. Y además, existen los bloques, en un lenguaje con bloques se permite la declaración de nombres dentro de un bloque de sentencias, creando ámbitos estáticos, dentro de un programa.

20
Q

En qué consiste el ligado del ámbito dinámico?

A

En base a la ejecución del programa, no tiene que ver con la estructura del código fuente, sino por llamadas a sus programas, amiento. En fin, se da en tiempo de ejecución. Esto ocasiona programas más lentos y difíciles de leer.

21
Q

Qué es la modularización?

A

Es la división del trabajo para facilitar el desarrollo agrupando los distintos objetos de programa tales como: su programas, variables, tipos, etc.

22
Q

Que es un sistema de tipos de un lenguaje de programación?

A

Un sistema de tipos define la manera en la que un lenguaje de programación clasifica en tipos los valores y expresiones, como interactúan estos tipos y además permite la definición de nuevos tipos. Permite verificar el uso correcto y detectar errores de tipo. Pero su sistema puede ser muy estricto y se pueden introducir lagunas o conversiones explícitas no verificadas.

23
Q

Cuáles son los dos grupos de tipos de datos?

A

Existen los datos de tipo ordinal, que siguen un orden. Y los datos de tipo estructurados. Además existen los punteros, los archivos y entrada/salida

24
Q

Cuáles son los tipos de datos ordinales?

A

Éstos son los datos primitivo, y los tipos definidos por usuario; los enteros, punto flotante, Char, booleanos y los ennumerados y subrango.

25
Q

Cuáles son los tipos de datos estructurados?

A

Éstos son las estructuras de datos, como los arreglos, registros y estructuras, y los tipos de datos abstractos: como las listas y los árboles.

26
Q

Qué es la verificación de tipo?

A

Esto asegura que los operandos de un operador sean compatibles o legales

27
Q

Que tipos de conversión de tipos existen?

A

Existe la coerción: que es una conversión automática, e implícita, y el casting que la realiza el programador y es explícita.

28
Q

Cuando dos tipos son equivalentes?

A

Dos tipos son equivalentes, si un operando de un tipo en una expresión puede ser sustituido por otro sin necesidad de coerción.

29
Q

Cuando dos tipos son compatibles?

A

Dos tipos son compatibles, cuando en tiempo de compilación o ejecución los tipos de los operandos pueden ser implícitamente convertidos por coersión. La compatibilidad entre escalares es más simple, en contraste con la compatibilidad entre estructuras, que es más compleja.

30
Q

Cuáles son los tipos de equivalencia que existen?

A

Existe la equivalencia de tipo nominal, es decir, por nombre. Y existe la equivalencia de tipo estructural: tipos con estructura idéntica pero pueden tener distinto nombre. La primera es más fácil de implementar que la segunda.

31
Q

En qué consiste la taxonomía de los tipos de datos?

A

Para diseñar el sistema de tipos, hay que tomar decisiones sobre la tipificación de los datos, que impactan en eficiencia de ejecución, rapidez, confiabilidad y seguridad. Esta taxonomía se clasifica en, estática o dinámica, implícita o explícita, y fuerte o débil.

32
Q

En qué consiste la taxonomía de tipo estática versus dinámica?

A

El sistema de tipo se clasifica según el tiempo en el que se hace el chequeo de tipo. Si es estática, se determina antes de la ejecución y permanece fijo, puede ser explícito o inferido. Si es dinámica, se termina durante la ejecución y es inferido, sus tipos pueden variar en este.

33
Q

En qué consiste el sistema de tipos explícito versus implícito?

A

Consiste en el grado de exigencia para definir tipos asociados a objetos datos: si es explícita, todos los tipos deben ser necesariamente declarados. Y si es implícita, los tipos de datos no se declaran y se infieren a través de reglas.

34
Q

En qué consiste la tipificación fuerte versus la tipificación débil?

A

Esto se determina según el grado de exigencia impuesto al hacer chequeo de tipo. Si es fuerte, siempre detecta los errores de tipo y tiene restricciones fuertes. Y si es débil, se realizan implícitamente conversiones, pero esto puede dar paso a errores.

35
Q

Cuáles son las combinaciones de tipificación más comunes? Explique.

A

Lo común es implementar tipificación fuerte, estática y explícita, Porque es más eficiente en la ejecución y aumenta la legibilidad, evita ambigüedades.

36
Q

Cuáles son las desventajas de la tipificación fuerte?

A

Esta fuerza a una disciplina rígida de programación, reduce la facilidad de escribir código, aumenta el esfuerzo de programación y hace un lenguaje más difícil de aprender.

37
Q

Que hacen los lenguajes modernos con su sistema de tipo?

A

Los lenguajes modernos ofrece mayor flexibilidad en tipificación estática y combinan en la medida que sea seguro, tipificación estática y dinámica.

38
Q

Que es un descriptor?

A

Es un conjunto de atributos de una variable, esto se mantiene en memoria para verificaciones de tipo. Esta variable puede tener atributos estáticos y atributos dinámicos.