PROGRAMACIN DE SISTEMAS
UNIDAD I y II.
INTRODUCCIN A LA PROGRAMACIN DE
SISTEMAS.
INTRODUCCIN.
En la materia de Programacin de Sistemas, estudiaremos las tcnicas,
procesos y mtodos para ser capaces de crear sistemas de programacin,
como compiladores por ejemplo.
En la primera unidad estudiamos los conceptos bsicos de la Programacin de
Sistemas.
En la segunda unidad estudiamos el proceso a seguir para desarrollar un
Sistema de programas.
TEMARIO
1 Introduccin a la programacin de sistemas
1.1 Qu es y qu estudia la programacin de sistemas?
1.2 Herramientas desarrolladas con la teora de programacin de sistemas.
1.3 Lenguajes.
1.3.1 Lenguajes naturales.
1.3.2 Lenguajes artificiales.
1.3.3 Proceso de la comunicacin.
1.4 Traductor y su estructura.
1.4.1 Ensambladores.
1.4.2 Compiladores.
1.4.3 Interpretes.
1.5 Generadores de cdigo para compiladores (compilador de compilador).
2 Introduccin al diseo de los lenguajes de programacin
2.1 Visin del problema.
2.2 Consideraciones Premilinares.
2.3 Objetivos y filosofas del diseo de los lenguajes de programacin.
2.4 Diseo detallado.
2.5 Caso de estudio.
3 Anlisis Lxico.
3.1 Introduccin a los Autmatas finitos y expresiones regulares.
3.2 Analizador de lxico.
3.3 Manejo de localidades temporales de memoria (buffers).
3.4 Creacin de tablas de smbolos.
3.5 Manejo de errores lxicos.
3.6 Generadores de cdigo lxico: Lex y Flex.
4 Anlisis sintctico.
4.1 Introduccin a las Gramticas libres de contexto y rboles de derivacin.
4.2 Diagramas de sintaxis.
4.3 Precedencia de operadores.
4.4 Analizador sintctico.
4.4.1 Analizador descendente (LL).
4.4.2 Analizador ascendente (LR, LALR).
4.5 Administracin de tablas de smbolos.
4.6 Manejo de errores sintcticos y su
recuperacin.
4.7 Generadores de cdigo para analizadores sintcticos: Yacc, Bison
5 Anlisis semntico 5.1 Analizador semntico
5.2 Verificacin de tipos en expresiones.
5.3 Conversin de tipos.
5.4 Acciones agregadas en un analizador sintctico descendente (top-down).
5.5 Pila semntica en un analizador sintctico ascendente (bottom-up).
5.6 Administracin de la tabla de smbolos.
5.7 Manejo de errores semnticos.
6 Generacin de cdigo intermedio.
6.1 Lenguajes intermedios.
6.2 Notaciones.
6.2.1 Infija.
6.2.2 Postfija.
6.2.3 Prefija.
6.3 Representacin de cdigo intermedio.
6.3.1 Notacin Polaca.
6.3.2 Cdigo P.
6.3.3 Triplos.
6.3.4 Cudruplos.
6.4 Esquemas de generacin.
6.4.1 Expresiones.
6.4.2 Declaracin de variables, constantes
6.4.3 Estatuto de asignacin.
6.4.4 Estatuto condicional.
6.4.5 Estatuto de ciclos
6.4.6 Arreglos.
6.4.7 Funciones.
7 Optimizacin.
7.1 Tipos de optimizacin.
7.1.1 Locales.
7.1.2 Bucles.
7.1.3 Globales.
7.1.4 De mirilla.
7.2 Costos.
7.2.1 Costo de ejecucin.
7.2.2 Criterios para mejorar el cdigo.
7.2.3 Herramientas para el anlisis del flujo de datos.
8 Generacin de cdigo objeto.
8.1 Lenguaje mquina.
8.1.1 Caractersticas.
8.1.2 Direccionamiento.
8.2 Lenguaje ensamblador.
8.2.1 Caractersticas.
8.2.2 Almacenamiento.
8.3 Registros.
8.3.1 Distribucin.
8.3.2 Asignacin.
8.4 Administracin de memoria.
UNIDAD 1.
Introduccin a la programacin de sistemas
1.1 Qu es y qu estudia la programacin de sistemas?
1.2 Herramientas desarrolladas con la teora de programacin de sistemas.
1.3 Lenguajes.
1.3.1 Lenguajes naturales.
1.3.2 Lenguajes artificiales.
1.3.3 Proceso de la comunicacin.
1.4 Traductor y su estructura.
1.4.1 Ensambladores.
1.4.2 Compiladores.
1.4.3 Interpretes.
1.5 Generadores de cdigo para compiladores (compilador de compilador).
1.1 Qu es y qu estudia la Programacin de Sistemas?
La programacin de sistemas es un conjunto de herramientas que colaboran
para lograr un fin; desarrollar software base (programas que interactan con el
Sistema Operativo) stos pueden ser: Compiladores, ensambladores,
cargadores, etc.
Estudia la teora de maquinas y su aplicacin en el diseo de sistemas digitales
y de arquitectura de computadoras, sus reas especficas: sistemas digitales
para arquitecturas paralelas y control de procesos.
1.2 Herramientas desarrolladas con la programacin de sistemas.
1.3 Lenguajes.
El lenguaje es el conjunto de medios que permiten al hombre expresar sus
pensamientos, sentimientos y vivencias. Tambin se define como el conjunto
de sistemas de comunicacin constituido por diversas manifestaciones: dibujos,
gestos, sonidos, movimientos procesos culturales (mitos, leyenda, arte,
monumentos), etc. Algunos autores lo reducen a la funcin biolgica de la
relacin, y por eso hablan de lenguaje de los animales. El lenguaje tiene tres
separaciones: forma, contenido y relaciones.
Un lenguaje es un conjunto de palabras y reglas que permiten comunicar
informacin entre dos entidades. Lenguaje son las cadenas que pueden
generarse a travs de una gramtica.
Considerando el grado de artificialidad y convencionalidad que interviene en la
construccin de smbolos o signos del lenguaje, puede ser artificial o natural.
1.3.1 Lenguaje natural.
Este tipo de lenguaje es el que nos permite el designar las cosas actuales y
razonar a cerca de ellas, fue desarrollado y organizado a partir de la
experiencia humana y puede ser utilizado para analizar situaciones altamente
complejas y razonar muy sutilmente. La riqueza de sus componentes
semnticos da a los lenguajes naturales su gran poder expresivo y
su valor como una herramienta para razonamiento sutil. Por otro lado la sintaxis
de un Lenguaje Natural puede ser modelada fcilmente por un lenguaje formal,
similar a los utilizados en las matemticas y la lgica. Otra propiedad de los
lenguajes naturales es la polisemntica, es decir, la posibilidad de que una
palabra en una oracin tenga diversos significados.
Los lenguajes artificiales son aquellos que los humanos hemos creado para
comunicarnos
Funcionamiento
1.4.3Compiladores
Partes de un compilador
Esta divisin permite que el mismo Back End se utilice para generar el cdigo
mquina de varios lenguajes de programacin distintos y que el mismoFront
End que sirve para analizar el cdigo fuente de un lenguaje de
programacin concreto sirva para generar cdigo mquina en varias
plataformas distintas. Suele incluir la generacin y optimizacin del cdigo
dependiente de la mquina.
UNIDAD 2.