Conceptos Fundamentales de Lenguajes de Programación

Mapa mental de las partes 2.1, 2.2 y 2.3 del capitulo 20

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

1. Sintaxis Y Semantica

1.1. Definiciones

1.1.1. Sintaxis: Forma de expresiones, sentencias y unidades de programa

1.1.1.1. Definición de Lenguajes

1.1.1.1.1. Reconocimiento

1.1.1.1.2. Generación

1.1.1.2. Metodos Formales descripción

1.1.1.2.1. Backus Naur Form(BNF)

1.1.1.2.2. Extend BNF(EBNF)

1.1.2. Semántica: Significado de expresiones, sentencias y unidades de programa

1.2. Elementos Sintaticos

1.2.1. - Conjunto de caracteres

1.2.2. Identificadores

1.2.3. Símbolos de operadores, etc.

1.3. Proceso de Compilación

1.3.1. Tabla de Símboos

1.3.1.1. Programa fuente

1.3.1.2. Análisis Léxico

1.3.1.2.1. Token léxicos

1.3.1.3. Análisis Sintáctico

1.3.1.3.1. Parse tree

1.3.1.4. Análisi Semántico

1.3.1.4.1. Código intermedio

1.3.1.5. Generación Código

1.3.1.6. Programa objeto

1.3.2. C

1.3.2.1. Archivos Cabeceras

1.3.2.2. Implementación cabeceras

1.3.2.3. Makefile

1.3.3. Java

1.3.3.1. No definiciones de cabeceras

1.3.3.2. Archivos clases

1.3.3.3. Archivo "ant" facilita compilación y ejecución

2. Nombres, Ligado, Ámbito

2.1. Nombres

2.1.1. Identificador que designa en el lenguaje un objeto

2.1.2. aspectos de diseño

2.1.2.1. Largo del nombre

2.1.2.2. Tipos caracteres

2.1.2.3. Sensibilidad mayúsculas y minúsculas

2.1.2.4. Palabras reservadas

2.2. Variables

2.2.1. Abstracción de un objeto

2.2.2. Atributos

2.2.2.1. Nombre

2.2.2.1.1. puede ser asociado con diferentes direcciones en partes y tiempo diferentes

2.2.2.2. Dirección

2.2.2.3. Valor

2.2.2.4. Tipo

2.2.2.5. Tiempo de Vida

2.2.2.6. Ámbito

2.3. Ligado

2.3.1. Proceso de asociación de un atributo a una entidad

2.3.2. Tiempo de Ligado: Instante en que ocurre asociación

2.3.2.1. Estática: diseño, compilación, enlace del programa

2.3.2.2. Dinámica: ejecución del programa

2.3.3. Ligado de tipos a variables

2.3.3.1. variables deben ser ligadas a un tipo antes de ser usadas

2.3.3.2. Ligado estático: declaración implícita o explicita

2.3.3.3. Ligado Dinámico: monto de asignación

2.3.3.3.1. Ventaja: Programa en forma genérica

2.3.3.3.2. Desventaja: menor detección de errores, mayor costo

2.3.4. Ligado a memoria y tiempo de vida de variables

2.3.4.1. Determinado por como se administra memoria.

2.3.4.2. Variables se asigna o libera memoria

2.3.4.3. Variables Escalares

2.3.4.3.1. Estáticas: Ligadas antes de ejecución

2.3.4.3.2. Dinámicas de Stack: Ligadas al momento ejecución alcanza código asociado

2.3.4.3.3. Dinámica Heap: memoria se asigna y se libera de manera explicita

2.4. Tipo datos

2.4.1. Asignación

2.4.1.1. Operador Binario con variable y expresión como operandos

2.4.2. Subprogramas

2.4.2.1. operador cuyos parámetros son sus operandos

2.4.3. Verificación de tipos

2.4.3.1. los operandos de un operador son compatibles

2.4.4. Tipo compatible

2.4.4.1. es legal o que mediante reglas se convierte en legal

2.4.5. coerción

2.4.5.1. conversión automática de tipos

2.4.6. tipificado fuerte

2.4.6.1. detecta errores

2.4.6.1.1. nombre ligado estática-mente a un tipo

2.4.6.1.2. ligado dinámico requiere verificación en tiempo de ejecución

2.4.7. Compatibilidad de tipos

2.4.7.1. nombre: variables en misma declaración o mismo nombre

2.4.7.2. estructura: tipos misma estructura

2.4.7.3. scope: rango de sentencias nombre visible

2.4.8. Ámbito

2.4.8.1. nombres referencia dos dentro de ámbito

2.4.8.2. nombres no locales visibles dentro de bloque declarado fuera de el

3. Tipos Datos

3.1. Datos simples

3.1.1. Asociados a un numero natural

3.1.1.1. Primitivos

3.1.1.1.1. Numérico

3.1.1.1.2. Booleano

3.1.1.1.3. Carácter

3.1.1.2. Definidos por Usuario

3.1.1.2.1. Enumerado

3.1.1.2.2. Subrango

3.1.2. Características

3.1.2.1. Conjunto finito

3.1.2.2. rango y precisión depende de largo de registro

3.2. Datos Estructurados

3.2.1. Arreglo

3.2.1.1. Conjunto ordenado de elementos se identifica posición por índice

3.2.1.1.1. Arreglos multidimensionales: c y C++

3.2.1.1.2. Inicialización de arreglos: ANSI C, C++ Java

3.2.1.1.3. Operadores con arreglos C++ Java

3.2.1.2. Implementación de arreglos

3.2.1.2.1. Unidimensional

3.2.1.2.2. Bidimensional

3.2.1.2.3. Asociativa

3.2.2. Registro

3.2.2.1. Composición heterogénea de elementos de datos

3.2.2.2. Elementos se identifica por nombre

3.2.3. String

3.2.3.1. Manipulación de texto

3.2.3.1.1. asiganción

3.2.3.1.2. Comporación

3.2.3.1.3. Concatenación

3.2.3.1.4. largo

3.2.3.1.5. Transformación

3.2.3.2. Diseño

3.2.3.2.1. Largo estático

3.2.3.2.2. lago dinámico limitado

3.2.3.2.3. largo dinámico

3.2.4. Unión

3.2.4.1. Almacenar diferentes tipos de datos en una misma variable

3.2.4.2. Reserva espacio de memoria

3.2.4.3. Su uso es poco seguro

3.3. Punteros

3.3.1. Valor corresponde a la dirección de memoria

3.3.2. Valor especial null

3.3.3. No tipo estructurado

3.3.4. Aplicaciones

3.3.4.1. Método gestión dinámica de memoria

3.3.4.2. Direccionamiento indirecto

3.3.5. Operaciones

3.3.5.1. Asignación: asigna a la variable como valor una dirección en memoria

3.3.5.2. Desreferenciación: entrega el valor del objeto apuntado

3.3.6. Problemas

3.3.6.1. Dejar colgado

3.3.6.2. perdida de variables dinámicas heap

3.3.7. Punteros a estructuras

3.3.8. Punteros a arreglos

3.3.8.1. Arreglo en realidad es una constate tipo puntero

3.3.9. Tipo referencia

3.3.9.1. variable tipo puntero constante que implica inicializacion en la definición

3.3.9.1.1. Métodos de Recolección de basura

3.3.9.1.2. Evaluación de método