Caption: : JOSE ELIAS CORREA MORENO, JONATHAN LIMON NIETO Y NELLY MARIEL MENDEZ GARCIA
Slide 2
1.3 PROCESO DE COMUNICACIÓN
Las computadoras operan sobre bits (ceros y unos) y registros y los hombres se entienden por medio de idiomas (lenguaje natural).
El Compilador es uno de los pilares de la programación y de cómo entender la comunicación entre un lenguaje de alto nivel y una máquina.
Para entablar una comunicación se necesita que tanto el Emisor como el Receptor conozcan el mismo lenguaje o en su defecto tenga un traductor.
En este sentido, los humanos escribimos Algoritmos en un lenguaje formal que una computadora pueda transformar a un lenguaje entendible por ella.
ANALIZADOR LÉXICO: Se encarga de leer el código fuente y es separado en bloques para ser leído por el analizador sintáctico.
ANALIZADOR SINTÁCTICO: Evalúa los bloques de código con el fin de que cumpla con los requerimientos por el compilador. Crea un Árbol Sintáctico(comprueba restricciones).
ANALIZADOR SEMÁNTICO: Prepara el programa para ser compilado y busca establecer que el código fuente cumpla con la semántica.
OPTIMIZACIÓN: Trata de mejorar el código intermedio para que resulte un código de maquina más rápido de ejecutar.
Int a;
a=5;
a=5.2;
a="Hola";
--------------------------------------------------------------
Todo esta correcto, ya que todas las palabras están escritas correctamente y forman parte de la librería del compilador.
Int: Tipo de Dato
a: Variable
=: Asignaciones
5: Número
5.2: Decimal
"Hola": Cadena
; Fin de linea
Slide 6
ANÁLISIS SINTÁCTICO
Sintácticamente están bien escritas porque la primera es una declaración y las 3 últimas son Asignaciones.
a = 5; Asignaciones(Variable | asignaciones | numero | fin)
a = "Hola"; Asignación (variable | asignaciones | cadena | fin)
Slide 7
ANÁLISIS SEMÁNTICO
Aquí daría un error en la 3ra línea ya que el error sería en la que la variable fue declarada como entero, se le esta asignando un decimal y en la siguiente línea también por que se le esta asignando una cadena a la variable de tipo entero, o bien podría ser que no se haya declarado la variable y el error es que no se declaró la variable.