Syllabus

SCC-0425 Programación de Sistemas

DR. JOSE LUIS LIRA TURRIZA

jlira@itescam.edu.mx

Semestre Horas Teoría Horas Práctica Créditos Clasificación
5 4 2 10

Prerrequisitos
TEORIA DE LA COMPUTACION. 1)Conocimiento de Autómatas basados en Gramáticas Libres de Contexto. 2) Conocimientos del diseño, clasificación y validación de Lenguajes.
PROGRAMACION ORIENTADA A OBJETOS. 1) Creación de Programas en Lenguaje Java con características de Manejo de Cadenas y Archivos

Competencias Atributos de Ingeniería

Normatividad
1. Cumplir con todas las entregas en tiempo y forma
2. Los documentos de entrega deberán ser en formato Digital (PDF)
3. La entrega es personal
4. El programa Final de entrega debe ser 100 funcional y hacer mínimo lo acordado en clase.

Materiales
No se requieren materiales adicionales a los especificados en la programación de clases.

Bibliografía disponible en el Itescam
Título
Autor
Editorial
Edición/Año
Ejemplares

Parámetros de Examen
PARCIAL 1 De la actividad 1.1.1 a la actividad 3.2.4
PARCIAL 2 De la actividad 4.1.1 a la actividad 5.2.3

Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje)
1. Introducción a la Programación de Sistemas
          1.1. Introducción
                   1.1.1. Definición
                           Introducción a la Materia
                           Lenguajes de Programación (10482 bytes)
                           Introducción a la Materia (75264 bytes)
                           http://sistemas.itlp.edu.mx/tutoriales/progsis1/tema21.htm
                          
                   1.1.2. Aplicación
                           Programación de Sistemas (76800 bytes)
                           http://sistemas.itlp.edu.mx/tutoriales/progsis1/tema12.htm
                          
          1.2. Lenguajes
                   1.2.1. Naturales
                           Lenguajes Naturales y Formales (29696 bytes)
                           Lenguaje Natural (39424 bytes)
                          
                   1.2.2. Artificiales
                           Lenguaje Artificial (122528 bytes)
                           http://sistemas.itlp.edu.mx/tutoriales/progsis1/tema11.htm
                          
                   1.2.3. Comunicación
                           Comunicación (39424 bytes)
                           http://www.cs.famaf.unc.edu.ar/~pln/
                          
          1.3. Traductor
                   1.3.1. Ensambladores
                           Ensamblador (31232 bytes)
                           http://sistemas.itlp.edu.mx/tutoriales/progsis1/tema221.htm
                          
                   1.3.2. Compiladores
                           Definición de Compilador (103936 bytes)
                           Diseño de Compiladores. Principios y Técnicas; Addison Wesley. Aho, Sethi, Ullman; Segunda Edición, 2002. Pags 1 y 2
                           Traductores (89600 bytes)
                           http://www.monografias.com/trabajos11/compil/compil.shtml#intro
                          
                   1.3.3. Intérpretes
                           Definición de Intérpretes (29696 bytes)
                           Descripción de un Intérprete (208096 bytes)
                           http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html
                           http://www.ii.uam.es/~alfonsec/docs/compila1.htm
                          
2. Diseño de Lenguajes de Programación
          2.1. Introducción
                   2.1.1. Visión del Problema
                           Visión del Problema (34304 bytes)
                           Diseño de Compiladores. Principios y Técnicas; Addison Wesley. Aho, Sethi, Ullman; Segunda Edición, 2002. Pags 4-15
                          
                   2.1.2. Consideraciones Preliminares
                           Consideraciones Preliminares (33792 bytes)
                           Diseño de Compiladores. Principios y Técnicas; Addison Wesley. Aho, Sethi, Ullman; Segunda Edición, 2002. Pags 15-23
                          
          2.2. Diseño
                   2.2.1. Objetivos y Filosofías
                           Diseño de Lenguajes de programación (208096 bytes)
                          
                   2.2.2. Diseño Detallado
                           Lenguajes de Programación (208096 bytes)
                          
                   2.2.3. Caso de Estudio
                           Diseño de Compiladores. Principios y Técnicas; Addison Wesley. Aho, Sethi, Ullman; Segunda Edición, 2002. Pag 24
                          
3. Análisis Léxico
          3.1. Definiciones Preliminares
                   3.1.1. Autómatas Finitos
                           Conceptos Básicos (118784 bytes)
                           Autómatas Finitos Determinísticos (155136 bytes)
                           Kaern A. Lemone;Fundamentos de Compiladores; Continental. 1996. pags 31-
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 115-118
                          
                   3.1.2. Expresiones Regulares
                           Expresiones Regulares (79360 bytes)
                           Expresiones Regulares - Definiciones (64000 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 96-99,123-128
                           Karen A. Lemone;Fundamentos de Compiladores; Continental. 1996. pags 36-39
                          
                   3.1.3. Analizador Léxico
                           Compiladores. Estructura y Funcionamiento (34816 bytes)
                           Análisis Léxico (57856 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 85-88
                           http://www.gedlc.ulpgc.es/docencia/seminarios/rit/Analisis_lexico/sld001.htm
                          
          3.2. Diseño
                   3.2.1. Manejo de Memoria Temporal
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 90-93
                           Análisis Léxico (692609 bytes)
                           Analizador Léxico (32256 bytes)
                          
                   3.2.2. Tabla de Símbolos
                           Tabla de Símbolos (81408 bytes)
                           http://sistemas.itlp.edu.mx/tutoriales/progsis1/tema34.htm
                          
                   3.2.3. Administración de Errores
                           Tipos y Análisis (52736 bytes)
                           Karen A. Lemone;Fundamentos de Compiladores; Continental. 1996. pags 40
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 90
                           Administración de la TS (895393 bytes)
                          
                   3.2.4. Herramientas
                           Jtlex (53942 bytes)
                           http://dinosaur.compilertools.net/
                           http://www-lt.ls.fi.upm.es/compiladores/Herramientas.html
                          
4. Análisis Sintáctico
          4.1. Definiciones Preliminares
                   4.1.1. Gramáticas Libres de Contexto
                           Gramática Libre de Contexto (69120 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 169-174
                          
                   4.1.2. Diagramas de Sintaxis
                           Diagramas de Sintaxis (34816 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 188
                          
                   4.1.3. Analizador Sintáctico
                           Análisis Sintáctico (25600 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 163-165
                          
          4.2. Diseño
                   4.2.1. Analizador Descendente
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 186-200
                           Análisis Sintáctico Descendente (129675 bytes)
                          
                   4.2.2. Analizador Ascendente
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 200-250
                           Análisis Ascendente (214097 bytes)
                          
                   4.2.3. Administración de la Tabla de Símbolos
                           Tabla de Símbolos (78848 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 452-453
                          
                   4.2.4. Administración de Errores
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 165-169
                           Manejo de Errores (401292 bytes)
                          
                   4.2.5. Generadores de Código
                           Tutorial de Yacc (25961 bytes)
                           http://dinosaur.compilertools.net/#yacc
                          
5. Análisis Semántico
          5.1. Definiciones Preliminares
                   5.1.1. Analizador Semántico
                           Análisis Semántico (25088 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 288-302
                           Análisis Semántico (198345 bytes)
                           http://www.ii.uam.es/~alfonsec/docs/compila5.htm
                          
                   5.1.2. Tipos de Datos
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 355-360
                           Tipos de Datos (102797 bytes)
                          
          5.2. Diseño
                   5.2.1. Conversión de Tipos
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 360-376
                           Atributos Sintetizados (118831 bytes)
                          
                   5.2.2. Administración de la Tabla de Símbolos
                           Análisis Semántico. Administración (124223 bytes)
                           http://www.monografias.com/trabajos11/compil/compil.shtml#par
                          
                   5.2.3. Administración de Errores
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 360
                           Analisis Semántico (164328 bytes)
                          
6. Generación de Código Intermedio
          6.1. Lenguajes Intermedios
                   6.1.1. Arbol Semántico
                           Generación de Representaciones Semánticas (104960 bytes)
                           Generador de Código (31744 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 478-480
                          
                   6.1.2. Código de Tres Direcciones
                           Representaciones Gráficas (74752 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 480-487
                           Representaciones Intermedias (108386 bytes)
                           Código Intermedio (162356 bytes)
                          
                   6.1.3. Notación postfija, polaca inversa o RPN
                           Notación Polaca Inversa (58880 bytes)
                          
          6.2. Notaciones
                   6.2.1. Infija
                           Notación Infija (27136 bytes)
                           Traducción de una Expresión (210944 bytes)
                          
                   6.2.2. Postfija
                           Algoritmo de Postfija (24576 bytes)
                          
                   6.2.3. Prefija
                           Control Implícito y Explícito (33004 bytes)
                          
          6.3. Esquemas de Generación
                   6.3.1. Expresiones
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 502-510
                           Esquemas de Generación (348190 bytes)
                          
                   6.3.2. Declaración de Variables y Constantes
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 487-491
                           Esquemas de Generación en C (104418 bytes)
                          
                   6.3.3. Estatutos de Asignación, Condicional y Ciclos
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 492,511-523
                           Esquemas de Ciclos, Asignación y Condicional (276242 bytes)
                          
                   6.3.4. Arreglos y Funciones
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 521-523
                          
7. Optimización
          7.1. Tipos de Optimización
                   7.1.1. Locales
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 610-612
                           Optimización de código (90377 bytes)
                          
                   7.1.2. Bucles
                           Optimización (76288 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 678
                          
                   7.1.3. Globales
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 626-632
                           Optimización Global (68888 bytes)
                          
          7.2. Costos
                   7.2.1. Costos de Ejecución
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 401-413
                           Maquinas Virtuales (179389 bytes)
                          
                   7.2.2. Criterios de Mejoramiento
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 651-660
                           Costos de Optimización (86806 bytes)
                          
                   7.2.3. Herramientas para el análisis del flujo de Datos
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 698-700
                           Compilador Optimizador (67363 bytes)
                          
8. Generación de Código Objeto
          8.1. Lenguaje Máquina
                   8.1.1. Características
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 530-535
                           Características del Lenguaje Máquina (317026 bytes)
                          
                   8.1.2. Direccionamiento
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 538-540
                          
          8.2. Lenguaje Ensamblador
                   8.2.1. Características
                           Ensamblador (98304 bytes)
                           http://homepage.mac.com/eravila/asmix86.html
                          
                   8.2.2. Almacenamiento
                           Conceptos Básicos de Ensamblador (45056 bytes)
                          
          8.3. Registros
                   8.3.1. Distribución
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 558
                          
                   8.3.2. Asignación
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 560
                          
          8.4. Memoria
                   8.4.1. Administración
                           Administración de Memoria (1979904 bytes)
                          
                   8.4.2. Optimización
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 570
                          

Prácticas de Laboratorio (20232024P)
Fecha
Hora
Grupo
Aula
Práctica
Descripción

Cronogramas (20232024P)
Grupo Actividad Fecha Carrera

Temas para Segunda Reevaluación