Banda De Guerra
Enviado por platino181 • 7 de Mayo de 2014 • 6.995 Palabras (28 Páginas) • 334 Visitas
INDICE
UNIDAD 1 5
Introducción a la programación de sistemas 5
1.1 ¿Qué es y qué estudia la programación de sistemas? 5
1.2 Herramientas desarrolladas con la teoría de programación de sistemas. 6
1.3 Lenguajes. 8
1.3.1 Lenguajes naturales. 8
1.3.2 Lenguajes artificiales. 9
1.3.3 Proceso de la comunicación. 9
1.4 Traductor y su estructura. 11
1.4.1 Ensambladores. 11
1.4.2 Compiladores. 12
1.4.3 Interpretes. 14
1.5 Generadores de código para compiladores (compilador de compilador). 14
UNIDAD 2 16
Introducción al diseño de los lenguajes de programación 16
2.1 Visión del problema. 16
2.2 Consideraciones Preliminares. 18
2.3 Objetivos y filosofías del diseño de los lenguajes de programación. 19
2.4 Diseño detallado. 20
2.5 Caso de estudio. 20
UNIDAD 3 21
Análisis Léxico 21
3.1 Introducción a los Autómatas finitos y expresiones regulares. 21
3.2 Analizador de léxico. 21
3.3 Manejo de localidades temporales de memoria (buffers). 22
3.4 Creación de tablas de símbolos. 23
3.5 Manejo de errores léxicos. 24
3.6 Generadores de código léxico: Lex y Flex. 24
UNIDAD 4 25
Análisis sintáctico 25
4.1 Introducción a las Gramáticas libres de contexto y árboles de derivación. 25
4.2 Diagramas de sintaxis. 26
4.3 Precedencia de operadores. 26
4.4 Analizador sintáctico. 26
4.4.1 Analizador descendente (LL). 26
4.4.2 Analizador ascendente (LR, LALR. 26
4.5 Administración de tablas de símbolos. 26
4.6 Manejo de errores sintácticos y su recuperación. 26
4.7 Generadores de código para analizadores sintácticos: Yacc, Bison 26
UNIDAD 5 26
Análisis semántico 26
5.1 Analizador semántico 26
5.2 Verificación de tipos en expresiones. 26
5.3 Conversión de tipos. 26
5.4 Acciones agregadas en un analizador sintáctico descendente (top-down). 26
5.5 Pila semántica en un analizador sintáctico ascendente (bottom-up). 26
5.6 Administración de la tabla de símbolos. 26
5.7 Manejo de errores semánticos. 26
UNIDAD 6 26
Generación de código intermedio 26
6.1 Lenguajes intermedios. 27
6.2 Notaciones. 27
6.2.1 Infija. 27
6.2.2 Postfija. 27
6.2.3 Prefija. 27
6.3 Representación de código intermedio. 27
6.3.1 Notación Polaca. 27
6.3.2 Codigo P. 27
6.3.3 Triplos. 27
6.3.4 Cuádruplos. 27
6.4 Esquemas de generación. 27
6.4.1 Expresiones. 27
6.4.2 Declaración de variables, constantes 27
6.4.3 Estatuto de asignación. 27
6.4.4 Estatuto condicional. 27
6.4.5 Estatuto de ciclos 27
6.4.6 Arreglos. 27
6.4.7 Funciones. 27
UNIDAD 7 27
Optimización. 27
7.1 Tipos de optimización. 27
7.1.1 Locales. 27
7.1.2 Bucles. 27
7.1.3 Globales. 27
7.1.4 De mirilla. 27
7.2 Costos. 27
7.2.1 Costo de ejecución. 27
7.2.2 Criterios para mejorar el código. 27
7.2.3 Herramientas para el análisis del flujo de datos. 27
UNIDAD 8 28
Generación de código objeto. 28
8.1 Lenguaje máquina. 28
8.1.1 Características. 28
8.1.2 Direccionamiento. 28
8.2 Lenguaje ensamblador. 28
8.2.1 Características. 28
8.2.2 Almacenamiento. 28
8.3 Registros. 28
8.3.1 Distribución. 28
8.3.2 Asignación. 28
8.4 Administración de memoria. 28
UNIDAD 1
Introducción a la programación de sistemas
1.1 ¿Qué es y qué estudia la programación de sistemas?
¿QUÉ ES?
Un sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo común. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado formado por palabras y símbolos que tienen significado para el que habla y para quienes lo escuchan, lo mismo es para las computadoras las cuales tienen sistemas y se comunican por medio de computadoras.
La programación es el proceso de convertir las especificaciones a grandes rasgos de los sistemas en instrucciones de maquina que produzcan los resultados deseados.
¿QUÉ ESTUDIA?
El trabajo de un programador de sistemas es seleccionar, modificar y mantener el complejo software del sistema operativo. Por lo tanto, los programadores de sistemas desempeñan una función de apoyo al mantener el ambiente del software del sistema operativo en el que trabajan los programadores de aplicaciones y los operadores de las computadoras. También participan en las decisiones relativas a reducciones o ampliaciones de hardware y/o software. Programación de Sistemas Conceptos y Aplicaciones Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
En esta área se estudia la teoría de máquinas y su aplicación en el diseño de sistemas digitales y de arquitectura de computadoras. Áreas específicas: Sistemas digitales para arquitecturas paralelas y control de procesos y sistemas reconfigurables.
Inteligencia artificial aplicada a trabajo cooperativo En las aplicaciones cooperativas realizadas en el entorno Web, es viable hacer uso de las herramientas de inteligencia artificial. Se están diseñando y construyendo herramientas para elaborar un sistema sin costura que opere en Web con la finalidad de proporcionar a un grupo de coautores el soporte necesario para producir conjunta y simultáneamente un mismo documento.
1.2 Herramientas desarrolladas con la teoría de programación de sistemas.
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.
Hoy en día existen múltiples herramientas de programación en el mercado, tanto para analistas expertos como para analistas inexpertos.
Las herramientas de programación más comunes del mercado, cuentan hoy día con programas de depuración o debugger, que son utilitarios que nos permiten
...