Please enable JavaScript.
Coggle requires JavaScript to display documents.
Leguajes de programación - 1er cuatrimestre - Coggle Diagram
Leguajes de programación - 1er cuatrimestre
Evolución de los LPs
Lenguaje de programación
Clasificación
El nivel
Alto
Bajo
Jerarquía
1ra generación
2da generación
3ra generación
4ta generación
5ta generación
La programación
Imperativos
Declarativos
Las instrucciones
Imperativos
Orientados a objetos
Funcionales
Concurrentes, paralelos y distribuidos
Lógicos
Proceso de desarrollo de SW
Modelo en cascada
Especificación y análisis de requerimientos
Diseño de SW
Implementación
Integración y verificación
Mantenimiento
Entorno de desarrollo de SW
Entorno ideal
Desarrollo del sistema
Integración del sistema
Pruebas y verificación del sistema
Pre-producción
Producción
Dominios de aplicación
Aplicaciones científicas
Aplicaciones de negocios
Inteligencia artificial
Desarrollo de sistemas
Aplicaciones web
Abstracción
Abstracción de datos
Abstracción de control
Básicas
Estructuradas
Unitarias
Paradigmas de programación
LP admite un paradigma
LP soporta un paradigma
Paradigma imperativo
Variables
Instrucciones/sentencias
Procedimientos
Abstracción de datos
Paradigma orientado a objetos
Jerarquía
Encapsulamiento
Modularidad
Abstracción
Clases/subclases
Herencia
Objetos
Polimorfismo por inclusión
Paradigma lógico
Cláusula de Horn
Aserciones
Relaciones
Lenguajes multiparadigmas
Lenguajes ampliados
Lenguajes híbridos
Lenguajes de propósito general
Paradigma funcional
Funciones
Expresiones
Evaluación perezosa
Abstracción de datos
Polimorfismo paramétrico
Funciones primitivas
Formas funcionales
Funciones de primer orden
Funciones de orden superior
Semántica de valores
Currying
Transparencia referencia
Evaluación perezosa
Diseño de LPs
Principios de LPs
Simplicidad
Expresividad
Seguridad
Regularidad
Generalidad
Uniformidad
Ortogonalidad
Robustez
Flexibilidad
Eficiencia
Reusabilidad
Extensibilidad
Portabilidad
Estandarización
Oportunidad
Estandarización temprana
Estandarización tardía
Conformidad
LP conforme
Compilador conformable
Obsolescencia
Implementación de LP
Intérprete
Ciclo fetch
Compilador
Programas
Ensambladores
Enlazadores
Cargadores
Etapas/fases
Etapa del análisis del programa fuente/Fase de reconocimiento del programa fuente
Análisis léxico
Análisis sintáctico
Análisis semántico
Mantenimiento de la tabla de símbolos
Inserción de información implícita
Detección de errores
Expansión de macros
Ejecución de enunciados en tiempo de compilación
Código intermedio no optimizado
Árbol de análisis sintáctico
Componentes léxicos
Etapa de optimización/Fase de generación del código objeto
Optimización
Generación de código
Híbrido
Análisis léxico
Análisis sintáctico
Generador de código intermedio
Intérprete
Administración de memoria en ejecución
Lenguajes estáticos
Lenguajes basados en pila
Lenguajes semi-dinámicos
Lenguajes dinámicos
Tipos de datos
Abstracción de datos
Abstracción
Abstracción de datos
Abstracciones básicas
Abstracciones estructuradas
Abstracciones unitarias
Tipos de datos
Niveles de especificación
Sintaxis
Especificación
Implementación
Clasificación
Por su complejidad
Tipos primitivos, básicos o elementales
Numéricos
Enteros
Reales
Decimales
Racionales
Complejos
Caracteres
Booleanos
Tipos estructurados o compuestos
Arreglos
Registros
Unión
String
Conjuntos
Tipos derivados
Subtipo
Subrango
Tipos recursivos
Listas
Árboles
Pilas
Colas
Grafos
Clases
Punteros
Archivos
Secuenciales
Acceso directo
Indexados
Por su origen
Predefinidos por el LP
Definidos por el usuario
Representación de tipos en memoria
Representación de datos simples
Reales
Decimales
Números complejos
Números racionales
Enteros
Caracteres
Booleanos
Enumerados
Subrango o subintervalo
Representación de datos estructurados
Modelos
Representación secuencial
Representación vinculada
Operaciones
Selección secuencial
Selección directa
Implementación de las operaciones
Dirección base más desplazamiento
Cadena de punteros
Arreglos
Registros
Unión
Representación de estructuras estáticas y dinámicas
String
Longitud fija
Longitud variables con limite
Longitud ilimitada con asignaciones fijas
Longitud ilimitada con asignaciones variables
Listas
Punteros
Conjuntos
Archivos
Archivo
Nombre lógico o interno
Nombre físico o externo
Registro
Lógico
Físico
Bloque
Factor de bloqueo
Evolución del concepto de tipo de datos
Tipo de dato
Encapsulamiento y modularización
Ocultamiento de información
Encapsulamiento
Modularización
Tipos de datos abstractos (TDA)
Diseños
Mecanismos
Clases
Paquetes
Genericidad y tipos parametrizados
Sistemas de tipos
Lenguajes con sistemas de tipos estrictos
Lenguajes con sistemas de tipos permisivos
Chequeo de tipos
Ante incompatibilidades
Error
Coerción
Tipado estático
Tipado dinámico
Lenguajes fuertemente tipado
Conversión de tipos
Coerción
Coerciones aut´maticas
Coerciones explícitas
Error
Compatibilidad de tipos
Criterios
Por nombre
Por estructura
Inferencias
Polimorfismo
Lenguajes monomórficos
Lenguajes polimórficos
Polimorfismo universal
Paramétrico
Por inclusión
Polimorfismo Ad-Hoc
Coerción
Sobrecarga
Sintaxis y semántica de los LPs
Sintaxis
Reglas léxicas
Reglas sintácticas
Conceptos
Sentencia
Lexema
Token
Criterios generales
Legibilidad
Facilidad de escritura
Carencia de ambigüedad
Facilidad de verificación
Facilidad de traducción
Elementos
Sintaxis abstracta
Sintaxis concreta
Métodos formales
Gramáticas libres de contexto
BNF
EBNF
Diagramas sintácticos
Árboles de análisis sintáctico
Ambigüedad
Semántica
Elementos
Variables
Valores y referencias
L-value
R-value
Expresiones
Semántica formal
Semántica dinámica
Semántica operacional
Semántica axiomática
Aserciones
Precondición
Postcondición
Precondición menos restrictiva
Reglas de inferencia
Axiomas
Semántica denotacional
Semántica estática
Gramáticas de atributos
Gramática libre de contexto
Atributos
Sintetizados
Heredados
Intrínsecos
Reglas semánticas
Condiciones
Variables y constantes
Entidades
Tiempo de ligadura
Ligadura estática
Ligaduras en tiempo de definición del lenguaje
Ligaduras en tiempo de compilación
Ligaduras en tiempo de implementación
Ligaduras en tiempo de carga
Ligadura dinámica
Declaraciones
Tipos
Declaraciones implícitas
Declaraciones explícitas
Definiciones
Declaraciones secuenciales
Declaraciones recursivas
Propósitos
Selección de representación de almacenamiento
Gestión de almacenamiento
Operaciones polimórficas
Verificación de tipo
Alcance
Estático
Dinámico
Visibilidad
Entidad no local
Ambiente de referenciamiento
Lenguajes con alcance estático
Lenguajes con alcance dinámico
Estructura general de un programa
Monolítico
Bloques chatos
Anidada
Variables y constantes
Variable
Categorías
Estáticas
Dinámicas en pila
Dinámicas en heap implícitas
Dinámicas en heap explícitas
Constante
Literales o simbólicas
Nominadas
Atributos
Nombre
Alcance
Definirse estáticamente
Definirse dinámicamente
Tiempo de vida
Alocación
Desalocación
Tipo de dato
Ligadura estática
Ligadura dinámica
Locación
Valor
Ligadura con constante nominada
Estática
Dinámica
Alias
Representación en memoria
Lenguajes estáticos
Lenguajes basados en pila
Lenguajes semi-dinámicos
Lenguajes dinámicos
Reglas de alcance
Alcance
Visibilidad
Ambiente de referenciamiento
Alcance estático
Padre estático
Antepasados estáticos
Alcance dinámico
Implementación de referencias no locales
Lenguajes con alcance estático
Cadena estática
Profundidad estática
Desplazamiento de cadena o nivel de anidamiento
(desplazamiento de cadena, desplazamiento local)
Enlaces estáticos
Display
(desplazamiento en el display, desplazamiento local)
Lenguajes con alcance dinámico
Acceso profundo
Enlaces dinámicos
Acceso superficial
Una tabla central con una entrada para cada nombre de variable