Introduccion
Upcoming SlideShare
Loading in...5
×
 

Introduccion

on

  • 2,522 views

 

Statistics

Views

Total Views
2,522
Views on SlideShare
2,522
Embed Views
0

Actions

Likes
0
Downloads
78
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introduccion Introduccion Presentation Transcript

  • INTERPRETE
    • Un interprete es un programa que
    • lee un programa en un lenguaje y
    • lo traduce a un programa equivalente en otro lenguaje,
    • y además informa al usuario sobre
    • la presencia de errores en el programa de entrada
    • programa programa
    • fuente objeto
    • mensajes
    • de error
    • Aparente complejidad - Tareas básicas
    interprete
  • TEORIA DE SOFTWARE DE SISTEMAS
    • Un computador digital es una máquina que puede resolver problemas ejecutando ciertas instrucciones.
    • Un programa es una secuencia de instrucciones.
    • Los circuitos electrónicos de cada computadora reconocen un conjunto limitado de instrucciones muy simples.
    • Lenguaje máquina es el conjunto de instrucciones básicas de una computadora
  • TRADUCTORES
    • Utilizar lenguaje máquina es difícil y tedioso.
    • Solución:
        • sea L1 el lenguaje máquina
        • y L2 un lenguaje más fácil de utilizar
    programa en L2 programa en L1 compilación (compilador) interpretación (intérprete)
  • MÁQUINAS MULTINIVEL ACTUALES
    • La mayoría de las máquinas actuales constan de 6 niveles.
    • Los microprogramas son directamente ejecutados por el hardware.
    Lenguajes de alto nivel Lenguaje ensamblador Sistema operativo Máquina convencional Microprogramación Lógica digital nivel 5 nivel 4 nivel 3 nivel 2 nivel 1 nivel 0 Traducción (compilador) Traducción(ensamblador) Interpretación (sistema operativo) Interpretación (microprograma) Ejecutados directamente
  • Nivel 0: nivel de lógica digital
    • Es el hardware de la máquina.
    • El nivel inferior sería el nivel de dispositivo.
    • En este nivel:
        • Puertas lógicas
        • Circuitos integrados
        • Circuitos combinacionales
        • Circuitos aritméticos
        • Relojes
        • Memorias
        • Microprocesadores
        • Buses
  • Nivel 1: nivel de microprogramación
    • Existe un programa llamado microprograma.
    • La función del microprograma es interpretar las instrucciones del nivel 2.
    • En algunas máquinas no existe el nivel de microprogramación.
  • Nivel 2: nivel de máquina convencional
    • Cada fabricante publica el “Manual de referencia del lenguaje máquina” para cada uno de los computadores.
    • Las instrucciones del nivel de máquina las interpreta el microprograma.
    • En las máquinas en las que no existe el nivel de microprogramación, las instrucciones del nivel de máquina son realizadas directamente por los circuitos electrónicos.
  • Nivel 3: nivel del sistema operativo
    • La mayoría de las instrucciones de este nivel están también en el nivel 2 pero además tiene un nuevo conjunto de instrucciones, una organización diferente de la memoria, posibilidad de ejecutar 2 o más programas ...
    • Las nuevas instrucciones las interpreta el sistema operativo .
    • Las que son idénticas a las del nivel 2 las lleva a cabo el microprograma.
  • Nivel 4: nivel del lenguaje ensamblador
    • Los niveles 4 y superiores son utilizados por los programadores de aplicaciones .
    • Los niveles inferiores están diseñados para ejecutar los intérpretes y traductores de los niveles superiores y son escritos por los programadores de sistemas .
    • El ensamblador es el programa que lleva a cabo la traducción de un programa del nivel 4.
  • Nivel 5: nivel de lenguajes de alto nivel
    • Los lenguajes de alto nivel son más fáciles de utilizar que los lenguajes de niveles inferiores.
    • Son utilizados por los programadores de aplicaciones.
    • Los traductores de programas en lenguaje de alto nivel pueden ser compiladores o intérpretes.
  • Conceptos relacionados
    • Con algunas técnicas básicas de escritura de compiladores se pueden construir traductores para una gran variedad de lenguajes y máquinas
    Arquitectura de Computadoras Lenguajes de Programación Teoría de Lenguajes Teoría de Algoritmos Ingeniería de Software Compiladores
    • CLASIFICACION GENERAL DE COMPILADORES
    • De una pasada o de múltiples pasadas
    • De carga y de ejecución
    • De depuración o de optimización
    • HISTORIA
    • Experimentación relacionada a traducción de
    • fórmulas
    • 1950: difícil escritura
    • Primer FORTRAN: 18 años
    • Hoy: técnicas sistemáticas, lenguajes de implementación , entornos de programación y
    • herramientas de software
    • Computadoras Hombre
    HISTORIA Código Máquina Lenguaje Ensamblador Código Máquina Ensamblador Código Máquina Lenguaje Ensamblador Lenguaje de Alto Nivel Compilador Ensamblador
    • El Diseño de un compilador surge como resultado de:
      • Desarrollo de un nuevo lenguaje de programación
      • Adición de extensiones a los ya existentes
      • Explotación de las características del hardware
    • A futuro:
      • Extensión para el cómputo paralelo y distribuido
      • Explotación de características multimedia (MMX)
    HOY…. Y A FUTURO
    • ENSAMBLADOR
      • Traducen prog ramas escritos en leng uaje ensamblador a código máquina
      • Traducen prog ramas escritos en leng uaje de alto nivel a código intermedio o a código máquina
    • INTERPRETE
      • No genera código objeto, analiza y ejecuta directamente cada proposición del Programa Fuente (PF)
    • PREPROCESADOR
      • Sustituyen macros, incluyen archivos o extensión del lenguaje.
    COMPILADOR TIPOS DE SISTEMAS DE COMPILACIÓN
  • SISTEMA PARA PROCESAMIENTO DE UN LENGUAJE
    • estructura del programa fuente
    • programa fuente
    • programa objeto en lenguaje ensamblador
    • código de máquina relocalizable
    • biblioteca
    • archivos obj.relocal.
    • código de máquina absoluto
    preprocesador ensamblador compilador editor de carga y enlace
    • ANÁLISIS (Etapa Inicial) :
    • Divide al PF en sus elementos componentes y crea una representación intermedia.
    • Se determinan las operaciones y se registran en una estructura de árbol (ej. árbol sintáctico)
    • SÍNTESIS (Etapa Final) :
    • Construye el PO deseado a partir de la rep resentación Intermedia (requiere técnicas más especializadas)
    PARTES DE LA COMPILACIÓN
  • UN AMBIENTE GENERAL DE COMPILACIÓN Fuente Análisis léxico Análisis sintáctico Análisis semántico Intermedio Generador de código Código relocalizable Enlazador Objeto Más: Sistemas de edición y depuración
  • ANÁLISIS DEL PROGRAMA FUENTE
    • ANALISIS LINEAL (Léxico- Exploración- Scanner)
    • Se lee el programa como una cadena de izquierda a derecha, se agrupan y se generan componentes léxicos o tokens (secuencia de caracteres con significado colectivo)
    • ANALISIS JERARQUICO (Sintáctico- Parser)
    • Los componentes léxicos se agrupan en colecciones anidadas con un significado colectivo ( frases gramaticales que por lo general se representan mediante
    • árboles sintácticos )
    • ANALISIS SEMANTICO
    • Se realizan revisiones para asegurar que los componentes de un programa se ajustan de un modo significativo
  • EJEMPLO DE ANÁLISIS: posicion := inicial + velocidad * 60
        • a ) Componentes léxicos:
          • 1. El identificador posicion
          • 2. El símbolo de asignación :=
          • 3. El identificador inicial
          • 4. El signo de suma: +
          • 5. El identificador velocidad
          • 6. El signo de multiplicación: *
          • 7. El número 60
    • Los identificadores o nombres reconocidos se organizan en una
    • tabla de símbolos que se usará en los pasos siguientes
  • FASES DE UN COMPILADOR
    • PROGRAMA FUENTE
    • analizador léxico
    • analizador sintáctico
    • administrador analizador semántico manejador
    • de la tabla generador de código intermedio de errores
    • de símbolos optimizador de código
    • generador de código
    • PROGRAMA OBJETO
    • Cada fase transforma al PF de una representación a otra
  • ESQUEMA DE BLOQUES DE UN COMPILADOR
    • FUENTE Compilador
    • ANALISIS
    • Scanner
    • Tabla
    • Parser de
    • símbolos
    • SINTESIS
    • Prep. para la Gen.
    • del código
    • OBJETO Gener. del código
  • ESTRUCTURA FUNCIONAL DE UN COMPILADOR (de una pasada)
    • SENTENCIA
    • Fuente Explorador Recono- Generador Objeto
    • cedor de código
    • Tabla de
    • símbolos
    • Cada fase puede encontrar errores y debe tratarlo para continuar con la Compilación, permitiendo detectar más errores
    • Las fases de Analisis Sintáctico y Semántico manejan la mayoría de los errores
    • En el Anáilsis Semántico se detectan errores donde la estructura sintáctica es correcta pero no tiene significado la operación
    • ( Por. ej. sumar dos ID , donde uno es el nombre de una matriz y el otro un nombre de procedimiento)
    DETECCIÓN E INFORMACIÓN DE ERRORES
    • MODELO LENGUAJE CARACTERISTICAS
    • Compilado Fortran, COBOL, Sintaxis rigurosa,
    • C/C++, Pascal velocidad y tamaño
    • Interpretado Lisp,AWK, BASIC, Desempeño lento.
    • SQL Actividades no planea-
    • das. Sintaxis relajadas
    • Pseudocompilado Java Transportabilidad
    • absoluta, desempeño
    • intermedio. Sintaxis
    • rigurosa
    EL LENGUAJE Y LA HERRAMIENTA