You are on page 1of 30

TRABAJO:

PROYECTO FINAL
MATERIA:
SOFTWARE DE SISTEMA
INTEGRANTES DEL EQUIPO :
VICTOR HUGO CARRILLO GARCIA
EZEQUIEL GONZALEZ VELAZQUEZ
SERGIO GOMEZ JIMENEZ
FRANCO ALEJANDRO MARTINEZ LOPEZ
RENE SANTAMARIA MUNGIA

CATEDRATICO: LIC. JULIA MARIA MUÑOZ LARA


Mapa Mental

Aplicación 1 Aplicación 2

Paso a paso de aplicaciones Paso a paso de aplicaciones

Graficas de información Graficas de información


Problemática y
Justificación
En la escuela Benito Juárez García
el profesor Sergio Martínez López
tenia la problemática del control de
sus alumnos.

Es así que decidió adquirir un


programa para llevar el registro de
sus alumnos, capturando cada
nombre e imprimiéndolos en
Programa (Código)

Programa fuente

Compilador
Analizador lexicografico

Analizador sintáctico

Analizador semántica

Programa objeto

Ligador

Cargador

Programa ejecutable
Programa (En
ejecución)

Cargador

Programa ejecutable
PROGRAMA FUENTE

Programa escrito en un lenguaje de alto nivel


(texto ordinario que contiene las sentencias del
programa en un lenguaje de programación).
Necesita ser traducido a código máquina para
poder ser ejecutado.

Por lo general este es un archivo que es creado


por el usuario como un texto ASCII con o sin un
formato especifico aunque también puede ser el
resultado de algún otro proceso Programas que
generan programas
PROCESAMIENTO

Un preprocesador es la estrategia
generalmente adoptada como solución a
lenguajes huéspedes, extensiones, lenguajes
4GL, o lenguajes de dominio especifico. El
preprocesador es un traductor encargado de
transformar dichas instrucciones a
instrucciones del lenguaje anfitrión
(generalmente un tradicional 3GL) sobre las
cuales finalmente trabajar el compilador.
Esta etapa es definitivamente opcional.
COMPILADOR

Programa encargado de traducir los


programas fuentes escritos en un lenguaje
de alto nivel a lenguaje máquina y de
comprobar que las llamadas a las funciones
de librería se realizan correctamente.
ANALIZADOR LEXICOGRAFICO
El analizador léxico lee los caracteres del
programa fuente, y verifica que correspondan a
una secuencia lógica.
En esta fase, la cadena de caracteres que
conforma al programa fuente es despojada de
comentarios, espacios en blanco y otros
elementos superfluos. El programa encargado de
hacer esto es conocido como un scanner , y de
aquí que al proceso se le refiera comúnmente
como scanning (exploración). Durante esta fase
se identifican los elementos gramaticales usados
en la creación del programa. Cada elemento
identificado es substituido por un digo numérico
conocido como token .
ANALIZADOR SINTÁCTICO
Dicho de otra manera, que los tokens
pertenezcan a frases gramaticales validas,
que el compilador utiliza para sintetizar la
salida.

La cadena de tokens resultante es


alimentada a un programa conocido como
parser . El parser es el encargado de
verificar que la secuencia y disposición de
los tokens corresponda con la sintaxis del
lenguaje. Este proceso de verificación
sintáctica es conocido como parsing y es
completamente guiado por la gramática del
EL ANALIZADOR SEMÁNTICO

El analizador semántico verificara en este


caso que cada operador tenga los
operandos permitidos.

En esta etapa se reúne la información


sobre los tipos para la fase posterior, en
esta etapa se utiliza la estructura
jerárquica de la etapa anterior y así poder
determinar los operadores, y operandos
de expresiones y preposiciones.
GENERACION DE CODIGO
INTERMEDIO

Una vez que la secuencia de tokens ha sido


validada, esta es utilizada para identificar el
sentido de la acción a realizar y generar el
correspondiente c digo en lenguaje m quina.
Algunos compiladores recurren a la creación de
código intermedio para posteriormente generar
la secuencia de instrucciones maquina
necesarias, mientras que algunos otros
proceden a la generación directa del código
maquina. ésta acción código máquina.
OPTIMIZACION DE CODIGO.
Esta es otra etapa opcional. La optimización de c
digo es una actividad que raya en un arte
dominado solamente por un experimentado
programador de ensamblador y conocedor de la
arquitectura del computador. Existen algunas
técnicas desarrolladas al respecto pero nada
supera a la experiencia de un hábil programador.
En esta etapa, ya sea posteriormente o trabajando
al unísono con el generador de c digo, secuencias
de instrucciones y estructuras de datos son
examinadas buscando su substitución con
secuencias, instrucciones o estructuras m s cortas,
r pidas o eficientes.
PROGRAMA OBJ

 Programa (o código) objeto:


Es el programa fuente traducido
(por el compilador) a código
máquina. Aún no es directamente
ejecutable.
LIGADOR
 Linker (montador o enlazador): Es
el programa encargado de insertar al
programa objeto el código máquina de
las funciones de las librerías (archivos
de biblioteca) usadas en el programa y
realizar el proceso de montaje, que
producirá un programa ejecutable
.exe. Las librerías son una colección
de código (funciones) ya programado y
traducido a código máquina, listo para
utilizar en un programa y que facilita
la labor del programador.
CARGADOR
 Un cargador es un programa que
realiza la función de carga, pero
muchos cargadores también
incluyen relocalización y ligado.
PROGRAMA
EJECUTABLE
Una vez que tenemos el programa en lenguaje máquina,
para poderlo ejecutar hay que introducirlo en la memoria.
1. Una utilidad del S.O. llamada cargador colocará el
programa, y sus datos de entrada, en memoria principal,
preparándolo para su ejecución.
2. El S.O. le pasa el control a la C.P.U. para que comience
la ejecución del programa, realizando la Unidad de Control
los siguientes pasos (fases):
Captación de la instrucción: Lee de la Memoria Principal
la instrucción a ejecutar.
Ejecución de la instrucción: Interpreta la instrucción
leída y envía señales de control a las unidades que deban
intervenir en su ejecución. Tras dicha ejecución se
establece cuál será la siguiente instrucción a ejecutar.
Compilador

CARGADOR
Grafica de información
Los compiladores emiten mensajes de error o de advertencia
durante las
fases de compilación, de enlace o de ejecución de un programa:
• Los errores en tiempo de compilación son los que se
producen antes de la
ejecución del programa, durante el proceso de compilación del
programa.
• Los errores en tiempo de ejecución son los que se
producen durante la
ejecución del programa. Son los más difíciles de encontrar, no
son
detectados por el compilador, ya que son errores de lógica, no
de sintaxis.
Aunque al compilar un programa no de errores, el programa
puede funcionar
incorrectamente y/o a dar errores durante su ejecución. Por
ejemplo:
• Un programa puede producir resultados erróneos, al
Los errores que se pueden producir en la fase de compilación
son:
− Errores fatales: Son raros. Indican errores internos del
compilador.
Cuando ocurren la compilación se detiene inmediatamente.
− Errores de sintaxis: Son los errores típicos de sintaxis. No
detienen la
compilación sino que al finalizar ésta se mostrará la lista con todos
los
errores encontrados. Algunos errores suelen ser consecuencia de
otros
cometidos con anterioridad. Con este tipo de errores no se puede
obtener
un programa objeto y por lo tanto tampoco el ejecutable.

− Advertencias o avisos (warnings): Indican que hay líneas de


código
sospechosas que a pesar de no infringir ninguna regla sintáctica,
el
compilador las encuentra susceptibles de provocar un error.
Cuando se
PROGRAMA 1 OBSERVACIONES
TIEMPO DE COMPILACION 4 segundos

TIEMPO DE EJECUCION 5 segundos en empezar el proceso

ERRORES DE TIEMPO DE EJECUCION No se encontró errores

ERRORES DE TIEMPO DE No se encontró errores


COMPILACION
ERRORES LOGICOS No se encontró errores

ERRORES DE SINTAXIS No se encontró errores

ERRORES FATALES No se encontró errores

ADVERTENCIAS O AVISOS No se encontró errores


PROBLEMÁTICA
MAS QUE NADA SERIA ENTENDER EL FUNCIONAMIENTO
DE LOS COMPILADORES, ASI COMO EL DE LA
IMPORTANCIA QUE TIENEN EN LAS TECNOLOGIAS DE
INFORMACION, Y SABER COMO ES QUE HAN IDO
EVOLUCIONANDO
JUSTIFICACION

NOSOTROS DECIDIMOS PONER ESTE PROGRAMA DE


EXPLICACION
YA QUE ES UN PROGRAMA NO MUY COMPLICADO, YA QUE
EXISTEN MAS COMPLEJOS, ADEMAS FACILITA EL USO Y LA
IMPORTANCIA QUE TIENEN LOS PROGRAMAS CARGADORES Y
COMPILADORES
Programa fuente

Compilador
Analizador lexicografico

Analizador sintáctico

Analizador semántica

Programa objeto

Ligador

Cargador

Programa ejecutable
Cargador
COMO ACTUA EL COMPILADOR

 EL ANALIZADOR SEMANTICO SE DA CUENTA QUE ESTA


USANDO LISTAS ENLAZADAS AL ENCONTRAR UNA CLASE
AUTOREFERENCIADA ES ESTE CASO NODE
 LE AVISA AL ANALIZADOR SINTACTICO DE QUE DEBE DE
CONECTAR LOS NODOS POR MEDIO DEL NEXT
 EN EL CUERPO PRINCIPAL MAIN INICIALIZA CON LA FUNCION
TOP QUE ES UNA VARIABLE DE REFERENCIA EL COMPILADOR
DIVIDE EL PROGRAMA FUENTE EN ANALISIS Y LA SINTESIS
 DURANTE EL ANALISIS SE DA CUENTA DE TODAS LAS
OPERACIONES QUE NECESITA EFECTUAR EN
EL PROGRAMA FUENTE
 EN ESTE CASO SE DA CUENTA EL ANALIZADOR
LEXICOGRAFICO QUE DEBE CREAR UNA ESTRUCTURA
JERARQUICA LLAMADA ARBOL
 LO CREA Y ORDENA AL ANALIZADOR SEMANTICO QUE
TODAS LAS INSTRUCCIONES SIGAN UN PROCESO LOGICO
ADEMAS DE NO TENER ERRORES DE SINTAXIS
 SI ES ASI DETIENE EL PROGRAMA FUENTE Y LE
MUESTRA AL PROGRAMADOR SUS ERRORES ASI COMO
TAMBIEN LE INDICA EL NUMERO DE RENGLON DONDE
ESTAN
 EL PROGRAMADOR LO MODIFICA Y LO VUELVE A
COMPILAR
 SI YA NO ES EXISTEN ERRORES EL ANALIZADOR
SEMANTICO
ENVIA UN MENSAJE DE PROCESO COMPLETO
ESO INDICA QUE YA PUEDE SER EJECUTADO SI ES ESI EL
PROGRAMA FUENTE SE CONVIERTE EN PROGRAMA
OBJETO
FINALMENTE EL CARGADOR ES EL QUE SE ENCARGA DE
LLEVARLO A LA MEMORIA EL PROGRAMA YA ES
EJECUTABLE .EXE
EL CARGADOR APARTA UN TAMAÑO EN LA MEMORIA
DONDE EJECUTARA ESE PROGRAMA.
PROGRAMA 2 OBSERVACIONES
TIEMPO DE COMPILACION 6 segundos: mayor proceso

TIEMPO DE EJECUCION 10 segundos en empezar el


proceso mayor ejecuciones tiene el
programa
ERRORES DE TIEMPO DE EJECUCION No se encontró errores

ERRORES DE TIEMPO DE No se encontró errores


COMPILACION
ERRORES LOGICOS No se encontró errores

ERRORES DE SINTAXIS No se encontró errores

ERRORES FATALES No se encontró errores

ADVERTENCIAS O AVISOS No se encontró errores

You might also like