5.7.4.5 Abstracción y Representación de Programas (2 horas) [Habilidades AG-C02,AG-C08,AG-C12]

Referencias Bibliográficas: [Brookshear and Brylow, 2019b]

Temas

  1. Programas que toman (otros) programas como entrada, como intérpretes, compiladores, verificadores de tipos, generadores de documentación
  2. Componentes de un lenguaje:
    1. Definiciones de alfabetos, delimitadores, oraciones, sintaxis y semántica
    2. Sintaxis vs semántica
  3. Programa como un conjunto de oraciones significativas no ambiguas
  4. Abstracciones básicas de programación: constantes, variables, declaraciones (incluyendo declaraciones anidadas), comando, expresión, asignación, selección, iteración definida e indefinida, iteradores, función, procedimiento, módulos, manejo de excepciones
  5. Tipos de variables: estáticas, locales, no locales (nonlocal), globales; necesidad y problemas con variables no locales y globales.
  6. Reglas de ámbito (scope): estático vs dinámico; visibilidad de variables; efectos secundarios (side-effects).

  7. Entorno (environment) vs almacén (store) y sus propiedades
  8. Abstracción de datos y de control
  9. Mecanismos para intercambio de información entre unidades de programa como procedimientos, funciones y módulos: variables no locales, variables globales, paso de parámetros, importación-exportación entre módulos
  10. Representación de instrucciones de bajo nivel como instrucciones de máquina virtual, lenguaje ensamblador y representación binaria

Aprendizaje esperado (Learning Outcomes)

  1. Ilustrar el ámbito de variables y visibilidad usando programas simples [Aplicar]
  2. Ilustrar diferentes tipos de paso de parámetros usando un lenguaje de programación pseudo simple [Aplicar]
  3. Explicar el efecto secundario usando variables globales y no locales y cómo corregir tales programas [Explicar]
  4. Explicar cómo los programas que procesan otros programas tratan a los otros programas como sus datos de entrada [Explicar]
  5. Describir una gramática y un árbol de sintaxis abstracta para un lenguaje pequeño [Describir]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM