Nombres, ligado Y Ámbito Flashcards
Que es un nombre o identificador?
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
Que es una variable?
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.
Qué es el ligado? Qué tipos de ligado existen?
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.
Qué es el ligado de tipo?
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.
El ligado estático, usa declaración explícita o implícita?
Generalmente usa la declaración explícita, pero también puede ser implícita y se hace el tiempo de compilación.
Cómo se realiza el ligado dinámico?
É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.
Qué es el ligado de dirección?
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.
Qué es la sobrecarga?
La sobrecarga (Overloading) Es cuando un mismo nombre se refiere a diferentes objetos.
Nombre los tres tipos de memoria y para qué tipo de ligado se usa.
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
En base al ligado de memoria se clasifican las variables según su tiempo de vida del ligado. Cuáles son estas clasificaciones?
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.
Que es una variable estática?
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.
Qué es una variable dinámica de Stack?
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.
Que es una variable dinámica de heap y cuáles son sus tipos?
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.
¿Qué es una constante con nombre ?
Se ligan a un valor sólo una vez y luego permanecen inmutables.
Qué es el ámbito?
Es un rango de sentencias en el cual un nombre es visible. En una sentencia, una variable es visible si puede ser referenciada.