Conceptos Fundamentales de Lenguajes de Programacion

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Rocket clouds
Conceptos Fundamentales de Lenguajes de Programacion por Mind Map: Conceptos Fundamentales de Lenguajes de Programacion

1. Sintaxis

1.1. definicion

1.1.1. Es la forma de expresiones, sentencias y unidades de programa

1.2. descripcion

1.2.1. Definición de Lenguajes

1.2.1.1. Reconocimiento

1.2.1.2. Generacion

1.2.2. Métodos formales de descripción

1.2.2.1. Backus Naur Form (BNF)

1.2.2.1.1. Símbolos no terminales: Abstraccion que representa una regla

1.2.2.1.2. Símbolos terminales: Tokens de las reglas

1.2.2.1.3. Símbolo de partida: Símbolo no terminal que permite generar un programa

1.2.2.2. Extended BNF (EBNF)

1.2.2.2.1. Elemento opcional se indica con [...] Se puede usar | en una regla. Repetición de elementos se indica con {...}

2. Semantica

2.1. definicion

2.1.1. Significado de las expresiones, sentencias y unidades del programa

3. Tipo de Datos

3.1. Asignación: Es un operador binario con una variable y una expresión como operandos

3.2. Subprograma: Es un operador cuyos parámetros son sus operandos

3.3. Verificación de Tipo: Asegurar que los operandos de un operador son de tipo compatible

3.4. Tipificado Fuerte

3.4.1. Se dice que un lenguaje es un tipificado fuerte si permite detectar los errores Cada nombre debe ser ligado estáticamente a un tipo y ligado dinámico a memoria requiere verificación en tiempo de ejecución

3.5. Compatibilidad de Tipos

3.5.1. Compatibilidad de nombre: Las variables están en la misma declaración o usan el mismo nombre de tipo

3.5.2. Compatibilidad de estructura: Si los tipos tienen la misma estructura

3.6. Ámbito

3.6.1. Rango de sentencias en el cual un nombre es visible. Nombres pueden ser sólo referenciadas dentro del ámbito. Nombres no locales son los que son visibles dentro de un bloque, pero han sido declarado fuera de él.

4. Nombres, Ligado y Ámbito

4.1. Nombres

4.1.1. Es un identificador que designa un lenguaje u objeto del programa

4.1.2. Aspectos: Largo del nombre, tipos de caracteres, sensibilidad a mayúsculas y minúsculas, y palabras reservadas

4.2. Variables

4.2.1. Abstracción de un objeto de memoria que tiene estos atributos: nombre, dirección, valor, tipo, tiempo de vida, ámbito (¿Donde se referencia?)

4.3. Dirección de una variable

4.3.1. Un nombre puede ser asociado con diferentes direcciones.

4.3.1.1. El mismo nombre puede ser usado para referirse a diferentes objetos

4.3.1.2. Diferentes nombres pueden referirse a un mismo objeto

4.4. Ligado

4.4.1. Proceso de asociacion de un atributo a una entidad del lenguaje

4.4.2. El tiempo de ligado se refiere al instante en que sucede la asociacion

4.4.2.1. Dinamica: Ejecucion de Programa

4.4.2.2. Estática: Diseño o implementacion del lenguaje

4.4.3. Ligados de tipos a variables

4.4.3.1. Variables deben ser ligadas a un tipo antes de usarlas

4.4.4. Ligado a Memoria y Tiempo de vida a variables

4.4.4.1. A las variables se les puede asignar y liberar memoria de un espacio común

4.4.4.2. Variables Estáticas

4.4.4.2.1. Ligadas antes de la ejecución

4.4.4.3. Variables Dinámicas de Stack

4.4.4.3.1. Ligadas en el momento en que la ejecución alcanza el código asociado a la declaración. Se liga elásticamente

4.4.4.4. Variables Dinámicas de Heap

4.4.4.4.1. La memoria se libera y se asigna y se libera de forma explicita por el programador, usando un operador del lenguaje o una llamada al sistema

5. Tipo Puntero

5.1. Su valor corresponde a una dirección de memoria, habiendo un valor especial nulo que no apunta a nada

5.2. Operaciones

5.2.1. Asignación: Asigna a la variable como valor una dirección a algún objeto de memoria

5.2.2. Desreferenciación: Entrega el valor del objeto apuntado

5.3. Tipo Referencia en C++

5.3.1. Es una variable tipo puntero constante que es implícitamente desreferenciada

5.4. Referencias en Java

5.4.1. Extiende la forma de las variables de referencia de C++, eliminando el uso de punteros

5.5. Metodos de Reclamo de Basura

5.5.1. Contadores de referencia: Se mantiene un contador por cada celda, se incrementa con una nueva referencia y se decrementa al perder una referencia; y la celda se libera tan pronto llegue a 0

5.5.2. Recolección de Basura: Se acumula basura hasta que se llene la memoria y si se llena se identifican las celdas de basura y se pasan a la lista de celdas libres

6. Tipos de Datos Estructurados

6.1. Tipo Arreglo

6.1.1. Consiste en un conjunto ordenado de elementos que se identifican por su posición relativa mediante un indice

6.1.1.1. Implementación: La memoria es un arreglo unidimensional de celdas

6.1.1.2. Arreglo Bidimensional: Se almacenan como filas de columnas o viceversa

6.2. Arreglo Asociativo

6.2.1. Arreglo no ordenado de elementos que son accedidos por una clave, cada elemento corresponde a un par ordenado

6.3. Tipo Registro

6.3.1. Permite composición heterogénea de elementos de datos, cada elemento se identifica por un nombre

6.4. Cadena de Caracteres

6.4.1. Sirve para la comunicación maquina usuario y para la manipulación de textos, ayuda a mejorar la escritura

6.4.2. Operaciones: Asignación, Comparación, Concatenación, Largo y Transformación

6.5. Tipo Union

6.5.1. Permite almacenar diferentes tipos de datos en diferentes tiempos, reserva espacio de memoria igual al mayor miembro definido y su uso es poco seguro

7. Tipos de Datos Simples

7.1. Tipos Ordinales

7.1.1. Es aque que puede ser asociado a un numero natural

7.2. Representación de Numeros

7.2.1. Caracteristicas: Numero finito y rango depende del largo del registro

7.2.2. Tipos: Números enteros, numero de punto fijo y numero de punto flotante

7.3. Tipo Enumerado

7.3.1. Se enumeran todos los posibles valores a través de constantes literales. Relacion de orden permite definir operadores relacionales y predecesor y sucesor

7.4. Tipo Subrango

7.4.1. Subsecuencia contigua de un ordinal, mejora la lectura y la fiabilidad