Conceptos fundamentales de lenguaje de programación

Plan your projects and define important tasks and actions

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Conceptos fundamentales de lenguaje de programación por Mind Map: Conceptos fundamentales de lenguaje de programación

1. Semántica

1.1. Significado de los elementos que forman parte de la sintaxis dentro de un lenguaje de programación específico

2. Sintaxis

2.1. Métodos formales de descripción

2.1.1. BNF

2.1.1.1. Bakus Naus Form

2.1.1.1.1. Símbolos terminales

2.1.1.1.2. Símbolos no terminales

2.1.1.1.3. Símbolos de partida

3. Variables

3.1. Dirección de una variable

3.1.1. Dirección de la memoria a la que está asociada

3.1.2. Alias

3.1.2.1. Cuando se usa más de un nombre de variable para referenciar la misma dirección

3.2. Valor

3.2.1. Contenido de la celda de memoria asociada a las variables

3.3. Tipo

3.3.1. Determina el rango de valores que puede tomar una variable y el conjunto de operaciones definidas para éste.

3.4. Contexto de variables - Nombre

3.4.1. Palabras especiales

3.4.1.1. Indican acciones a realizar o se emplean para separar entidades sintácticas de los programas

3.4.1.2. Palabras clave

3.4.1.2.1. Son solo palabras especiales en determinados contextos: Fortran: REAL ALTURA (REAL es la palabra clave)

3.4.1.3. Palabras reservadas

3.4.1.3.1. Palabras especiales de un lenguaje de programación no puede emplearse como identificador

3.4.2. Nombre predifinidos

3.4.2.1. Nombres que tienen un significado predefinido que no puede ser cambiado por el usuario

3.4.2.1.1. Ejemplo: ADA (integer, float)

4. Ligadura

4.1. Asociación entre un atributo y una entidad

4.2. Ligadura estática

4.2.1. Ocurre antes del tiempo de ejecución y permanece inalterable durante la ejecución del programa.

4.3. Ligadura dinámica:

4.3.1. Ocurre durante le ejecución y puede cambiar durante el transcurso de la ejecución del programa

4.4. Ligadura de tipos

4.4.1. Ligadura estática de tipos:

4.4.1.1. Explícita:

4.4.1.1.1. Utiliza una sentencia que declara una lista de identificadores como de un tipo determinado

4.4.1.2. Implícita

4.4.1.2.1. forma de asociar variables a través de convenciones sintácticas

4.4.2. Ligadura dinámica de tipos:

4.4.2.1. Ventajas

4.4.2.1.1. Proporciona mucha flexibilidad de programación

4.4.2.2. Desventajas

4.4.2.2.1. No se detectan incorrecciones de tipos en las asignaturas. El tipo de la parte izquierda simplemente se cambia al de la derecha

4.5. Ligadura de espacio y tiempo de vida

4.5.1. Proceso de asignación, desasignación, tiempo de vida

4.5.2. Variables estáticas

4.5.2.1. Se ligan antes de que comience la ejecución, las variables globales son variables estáticas

4.5.2.2. Ventajas

4.5.2.2.1. Eficiencia, todas tienen direccionamiento directo

4.5.2.2.2. No hay sobrecarga en tiempo de ejecución

4.5.2.3. Desventajas

4.5.2.3.1. Reduce flexibilidad

4.5.3. Variables dinámicas de pila

4.5.3.1. El espacio se asigna a la pila en el momento de ejecución

4.5.3.2. Ventajas

4.5.3.2.1. Todas las variables comparten el mismo espacio de memoria

4.5.3.3. Desventajas

4.5.4. Variables dinámicas de heap

4.5.4.1. Implícitas

4.5.4.1.1. Se les liga espacio del montón sólo cuando se les asigna valores

4.5.4.2. Explícitas

4.5.4.2.1. Variables sin nombre cuyo almacenamiento se asigna y desasigna en tiempo de ejecución.

5. Tipos

5.1. Comprobación de tipos

5.1.1. Actividad que nos asegura que los operandos de un operador son de tipo compatibles

5.2. Tipos compatibles

5.2.1. un tipo legal para el operador atendiendo determinadas reglas del lenguaje puede ser convertido implícitamente mediante código generado por el compilador

5.3. Error de tipos

5.3.1. Aplicación de un operador a un operando de un tipo inapropiado

5.4. Disciplina de tipos

5.4.1. Un lenguaje tiene ésto si los errores se detectan siempre, para ésto es necesario determinar los tipos de todos los operandos.

5.5. Compatibilidad de tipos

5.5.1. Tipos nominal

5.5.1.1. dos variables tienen tipos compatibles si están ligadas al mismo nombre de tipo

5.5.2. Tipos estructural

5.5.2.1. dos variables tienen tipos compatibles si sus tipos tienen la misma estructura

5.5.3. Equivalencia de declaración

5.5.3.1. dos variables tiene tipos compatibles si están definido con el nombre del otro

5.5.4. Tipo anónimo

5.5.4.1. tipo asociado directamente con una variable mediante una declaración sin proporcionales el nombre

5.5.5. Compatibilidad de tipos nominal

5.5.5.1. Fácil de implementar pero muy restrictiva

5.5.6. Compatibilidad de tipos estructural

5.5.6.1. no aceptan diferencias entre tipos con la misma estructura

6. Ámbito

6.1. Concepto

6.1.1. Es el rango de sentencias en el que una variable es visible o referenciada.

6.2. Tipos

6.2.1. Estático

6.2.1.1. Método de ligadura a nombres de variables no locales que ocurre en tiempo de compilación

6.2.1.2. El padre estático de un subprograma y los padres estáticos de éste hasta el programa principal se denominan antepasados estáticos

6.2.1.3. La declaración de una variable oculta cualquier declaración con otra variable con el mismo nombre en un ámbito que englobe al que incluye dicha declaración

6.2.2. Dinámico

6.2.2.1. Basado en las secuencias de llamadas a subprogramas y no en la relación sintáctica entre ellos.

7. Constantes:

7.1. Objeto al que se liga un valor sólo en el momento en el que se liga el espacio, no se puede cambiar por asignación o sentencia de entrada

7.2. Ventajas

7.2.1. Aumenta fiabilidad

8. Inicialización de variables

8.1. Ligadura de un valor a una variable en el momento en el que también se liga al almacenamiento

8.2. Variables estáticas

8.2.1. Sucede una sola vez antes de la ejecución

8.3. Variables dinámicas

8.3.1. La inicialización también es dinámica

8.4. Variables no inicializadas

8.4.1. Se les puede crear el espacio de memoria pero su contenido es arbitrario y no puede ser interpretado como un valor del tipo objeto declarado