Anda di halaman 1dari 14

Sintaxis y semntica de un lenguaje de alto nivel

Fundamentos de Programacin Primavera 2009 Mtro. Luis Eduardo Prez Bernal

Departamento de Electrnica, Sistemas e Informtica

Sintaxis y semntica de un Lenguaje de alto nivel Introduccin Anlisis lxico Anlisis sintctico Anlisis semntico Programa

Departamento de Electrnica, Sistemas e Informtica

Introduccin
Lenguaje de alto nivel
Es un lenguaje que permite, con una sola orden, expresar cosas complejas; esto es un lenguaje dotado de una estructura capaz de sostener dicha posibilidad. Por tanto, el significado de traduccin de lenguajes de alto nivel expresivo, intenta comunicarse con la mquina a travs de un lenguaje de este tipo en donde los mensajes (hombre-mquina) son llevados a travs de un traductor y que los convierte a lenguaje de mquina. El nombre de dicho traductor es compilador.

Departamento de Electrnica, Sistemas e Informtica

Anlisis lxico
Consiste en reconocer todos y cada uno de los smbolos aislados constituyentes de la frase; lo cual, a su vez implica reconocer las letras (y signos de puntuacin) y reconocer las palabras.
Observacin; reconocer no significa entender.

Esta primera etapa se conoce como anlisis lexicogrfico.


Su tarea central consiste en separar los componentes lxicos (o tokens) de entre un conjunto de smbolos fuente. Estos es, en un rengln normal coexisten smbolos de diversas clases (letras, dgitos, smbolos de puntuacin, espacios en blanco y caracteres especiales).

Departamento de Electrnica, Sistemas e Informtica

Anlisis lxico
Es necesario aislar los componentes sintcticos de este conglomerado de caracteres. Para nosotros es obvio que la frase uno, dos, tres consta de tres palabras, pero en realidad contiene catorce smbolos diferentes que es necesario agrupar de alguna manera. Intuitivamente todos aprendimos a hacer anlisis lxico con el espaol cuando aprendimos a leer. Sin embargo, dentro de un compilador se requiere definir esta tarea con toda precisin en forma de un programa ejecutable, que emplea un modelo matemtico llamado autmata finito.

Departamento de Electrnica, Sistemas e Informtica

Anlisis lxico
Un autmata con estas caractersticas es una funcin matemtica con capacidad de reconocer los grupos de caracteres que constituyen un componente lxico, o bien de marcar un error si no son bien construidos.

Departamento de Electrnica, Sistemas e Informtica

Anlisis sintctico
La finalidad es encontrar la estructura gramatical de la frase formada por los elementos aislados ya reconocidos. De nuevo, intuitivamente podemos realizar este tipo de anlisis, an cuando no sepamos gramtica. Dentro del compilador se requieren mtodos matemticos para especificar cmo lograrlo. La idea general consiste en disear un programa que trate de acomodar estructuras gramaticales predefinidas para las frases objeto del anlisis, guindose a travs de las palabras que la componen.

Departamento de Electrnica, Sistemas e Informtica

Anlisis sintctico
El anlisis sintctico utilizado por un compilador (llamado parsers) se dividen en dos familias ascendentes y descendentes. Ejemplo: La frase la casa es azul es una frase correcta.
la es un ARTCULO casa es un SUSTANTIVO es es un VERBO azul es un ADJETIVO

Departamento de Electrnica, Sistemas e Informtica

Anlisis sintctico
y adems Un ARTCULO seguido de un SUSTANTIVO es una FRASE NOMINAL Un VERBO seguido de un ADJETIVO es una FRASE VERBAL Una FRASE NOMINAL seguida de un FRASE VERBAL es una ORACIN

Departamento de Electrnica, Sistemas e Informtica

<ORACIN>

<FRASE NOMINAL>

<FRASE VERBAL>

<ARTCULO>

<SUSTANTIVO>

<VERBO>

<ADJETIVO>

la

casa

es

azul

Anlisis sintctico descendente

Departamento de Electrnica, Sistemas e Informtica

Anlisis semntico
Despus de pasar exitosamente por la fase sintctica es posible entender el significado de la frase a travs del anlisis semntico. De nuevo, intuitivamente realizamos el anlisis semntico y entonces darle sentido a las frases. Lo importante es determinar la coherencia entre lo dicho por medio del lenguaje y los elementos del mundo a los que se est haciendo referencia. Para un compilador dicho mundo es la computadora, sus registros, sus celdas de memoria, etc.

Departamento de Electrnica, Sistemas e Informtica

Anlisis semntico
El anlisis semntico realizado por un compilador es averiguar, por ejemplo, si una expresin dentro de un programa significa algo vlido. Una frase analizada a fondo, al terminar su validez lexicogrfica, sintctica y semntica, llega el momento de ser traducida.
En algunos compiladores suelen incluirse las funciones de generacin de cdigo (lenguaje mquina o al menos lenguaje ensamblador).

Departamento de Electrnica, Sistemas e Informtica

Programa
Es un conjunto de instrucciones que va siguiendo la computadora a fin de lograr un resultado especfico. El programa se escribe con un lenguaje de programacin - C - a partir de un diagrama de flujo o de una especificacin de un lenguaje algortmico (pseudocdigo).

Departamento de Electrnica, Sistemas e Informtica

Fases en el proceso de compilacin de un programa

Escritura del programa fuente Compilar el programa fuente Obtener el programa objeto (cdigo objeto) Obtener el programa ejecutable (lenguaje mquina)