Professional Documents
Culture Documents
Agenda
1.1 Qu es y que 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).
Tipos de sistemas
Sistemas fsicos: equipo, maquinaria, objetos reales, Hardware Sistemas abstractos: ideas, conceptos, planes, Software hiptesis,
Caractersticas de un sistema
Estn bien delimitados, por lo tanto se conocen sus fronteras. Un sistema puede interactuar con su medio ambiente a travs de una interfaz de entradas y salidas que recibe el nombre de parmetros del sistema. Un sistema puede ser componente de otro sistema
Software de sistemas
Editores de texto inteligentes (IDEs con autocompletar, revisores ortogrficos, etc) Impresoras estticas (impresin de gran calidad sin un editor visual, Latex, etc.) Intrpretes (Shells de sistemas operativos o de alguna aplicacin como un SMBD) Bsqueda de informacin que no es tan comn en base a patrones, etc.
1.3 Lenguajes
Conjunto de palabras y reglas que permiten comunicar informacin entre dos entidades. Lenguaje son las cadenas que pueden generarse a travs de una gramtica El lenguaje que entienden las mquinas (lenguaje formal) es muy diferente del lenguaje que entendemos los humanos
Lenguajes mquina
El lenguaje mquina es dependiente de cada tipo de arquitectura de computadoras por lo que el cdigo no es fcilmente portable a otras arquitecturas. Los lenguajes de alto nivel son ms portables en lo que respecta al cdigo fuente pudiendo llevarse a otras arquitecturas de computadoras sin mayor problema.
Clasificacin de Chomsky
Lenguajes sin restricciones (gramtica 0) Lenguajes dependientes del contexto (tipo 1) Lenguajes independientes del contexto (tipo 2) Lenguajes regulares (tipo 0 no presentan ambigedades, lo ideal para representarlas en una computadora)
Traductor
La traduccin puede ser sencilla (literal) o compleja (revisar el contexto) dependiendo del tipo de lenguaje de entrada y salida. Traduccin espaol a ingls si se hace de manera literal es una mala traduccin, se necesita de al menos otra revisin (pasada) para hacer una buena traduccin.
Traductor
Lenguaje del emisor Cdigo fuente Traductor Lenguaje del receptor Cdigo objeto
1.4.1 Ensambladores
Ensamblador es el traductor que se encarga de convertir instrucciones de bajo nivel a instrucciones de una mquina en general //Encabezados
00 MOV AX, 58d 03 CMP 0 05 JMP etiqueta 4F0188 3A00 9918
Etiqueta:
18 MUL AX, FF 4401FF
1.4.2 Compiladores
Es el traductor que se encarga de convertir un lenguaje de alto nivel a cdigo mquina. La caracterstica de este traductor radica en el hecho de que necesita revisar todo el cdigo fuente para poder realizar la traduccin. Ejemplo: la traduccin de un libro, discurso, o artculo tcnico o de investigacin
Compiladores
Ejemplos de compiladores: C, C++, Pascal, etc. Entre ms pasadas se de a un cdigo fuente mayor es la optimizacin que se puede hacer. El problema radica en el tiempo y en los recursos para hacerlo Antes de compilar un programa fuente se sigue una etapa de preprocesamiento.
Preprocesadores:
Macros (expansin de funciones) Inclusin de archivos (bibliotecas) Procesadores racionales Extensiones al leguaje ensamblador en C) (inclusin de
Etapas de un compilador
Anlisis Lxico Anlisis Sintctico Anlisis Semntico Generacin de Cdigo intermedio Optimizacin
Manejador de Errores
Cdigo fuente
Cdigo objeto
1.4.3 Intrpretes
Se ejecutan lnea por lnea, instruccin por instruccin. Lenguajes interpretados: PHP, PERL, BASIC En algunas ocasiones se necesita de una traduccin rpida de algunas instrucciones, como en el Shell, instrucciones SQL, etc.
Desarrollar FORTRAN tard alrededor de 14 aos. Desarrollar nuestro compilador tardar menos de 6 meses Son herramientas que auxilian algn aspecto del proceso de traduccin
Preguntas?