Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo, Corte 3
Algoritmo, Corte 3
Autor:
JESUS OLIVERO
CI: 26239448
Profesor: Ing.
MARIO VALBUENA
CONCLUSION
REFERENCIAS BIBLIOGRAFICAS
INTRODUCCIÓN
Análisis Léxico
La primera fase de escáner funciona como un texto escáner. Esta fase busca en el
código fuente como una secuencia de caracteres y la convierte en un lexema
resultante-. Analizador Léxico representa estos lexema resultante- en forma de
fichas:
<token-name, attribute-value>
Sintaxis Análisis
La siguiente fase se denomina la sintaxis análisis o análisis. Toma el token de
análisis léxico como entrada y genera un árbol analizar (o árbol de sintaxis). En
esta fase, token arreglos se contrastan con el código fuente gramática, es decir, el
analizador comprueba si la expresión de los tokens es sintácticamente correcto.
Análisis semántico
Análisis semántico comprueba si el análisis árbol construido sigue las reglas del
idioma. Por ejemplo, la asignación de valores es entre tipos de datos compatibles,
y añadiendo cadena en un número entero. Además, el analizador semántico
realiza un seguimiento de los identificadores, sus tipos y expresiones; si los
identificadores se declaran antes de su uso, o no, etc. El analizador semántico
produce un árbol de sintaxis anotado como una salida.
Generación de código
En esta fase, el generador de código optimizado la representación del código
intermedio y la asigna a la máquina de destino. El generador de código se traduce
el código intermedio en una secuencia de (generalmente) reubicables código
máquina. Secuencia de instrucciones de código máquina realiza la tarea como el
código intermedio.
Tabla de símbolos
Es una estructura de datos mantendrá en todas las fases de un compilador. Todos
los nombres de identificador junto con sus tipos se almacenan aquí. La tabla de
símbolos hace que sea más fácil para que el compilador pueda buscar con rapidez
el registro de código y recuperarla. La tabla de símbolos se utiliza también para el
campo.
Análisis Semántico.
Por ejemplo:
int a = “value”;
No debe emitir un error léxico y la sintaxis en fase de análisis, ya que es léxico y
estructuralmente correcto, pero se debe generar un error semántico como del tipo
de asignación es diferente. Estas normas están definidas por la gramática de la
lengua y evaluado en análisis semántico. Las siguientes tareas deben realizarse
en análisis semántico:
Resolución de Ámbito
Comprobación de tipos
Matriz de control
Errores semánticos
Hemos mencionado algunos de los errores que la semántica analizadora
semántico se espera para reconocer:
Generador de código
Un generador de código se espera que tenga una comprensión de la
máquina de destino entorno de ejecución y su conjunto de instrucciones. El
generador de código debe tomar las siguientes cosas en cuenta para generar el
código:
Optimización de código
Optimización es un programa transformación técnica, que trata de mejorar el
código por lo que consumen menos recursos (es decir CPU, memoria) y ofrecer
una alta velocidad.
En la optimización de alto nivel general de programación son sustituidos por
construcciones muy eficiente de bajo nivel los códigos de programación. Un
código proceso en fase de optimización debe seguir las tres normas que se
explican a continuación:
El código de salida no debe, de ninguna manera, cambiar el sentido del
programa.
Optimización debe aumentar la velocidad del programa y si es posible, el
programa debe exigir menos cantidad de recursos.
Optimización debe ser rápido y no debe retrasar el proceso de compilación
general.
El esfuerzo para un código optimizado puede ser utilizado en los distintos
niveles de elaboración del proceso.
do
{
item = 10;
value = value + item;
} while(value<100);
Item = 10;
do
{
value = value + item;
} while(value<100);
No sólo debe guardar los ciclos de la CPU, pero puede ser utilizada en cualquier
procesador.
Free Pascal
El Free Pascal es un compilador Pascal portable, libre y de código abierto,
que representa una alternativa a los productos comerciales Turbo Pascal y Delphi.
Free Pascal es un compilador tanto de 32 como de 64 bits para múltiples
arquitecturas de CPU y múltiples sistemas operativos. El compilador implementa
los dialectos de Pascal de Borland Turbo Pascal y Delphi, además de algunas
construcciones de MacPascal. Está disponible para la mayoría de los sistemas
operativos populares
El FPC adoptó los dialectos estándar de facto de los programadores Pascal,
los dialectos de Borland, específicamente Borland Pascal 7 y Delphi 2 para la
versión 1.0.x del FPC, y Delphi 6/7 para la versión 2.0.x del FPC.
Compilador C++
C++ es un lenguaje en el que se diferencian las minúsculas y las
mayúsculas (case sensitive). También es un lenguaje de formato libre, es decir,
que se admiten espacios, tabuladores, saltos de línea y comentarios en cualquier
parte del código.
Las palabras clave del lenguaje son reservadas, aunque cada grupo de alumnos
sólo ha de tener en cuenta las palabras asignadas al grupo.
Este resumen presenta las principales características de C++ que hay que
implementar para el Proyecto de la asignatura de Compiladores. Solo es necesario
considerar los elementos de C++ mencionados en este resumen. Entre corchetes
se dan indicaciones sobre la obligatoriedad u opcionalidad de incluir en este
Proyecto algunas partes del lenguaje. Con el fin de facilitar la implementación del
compilador, las características mostradas en esta página pueden no coincidir al
100% con el estándar del lenguaje, por lo que, en caso de duda, se deberá
implementar el comportamiento aquí descrito.
Java
Es un lenguaje de programación y una plataforma informática que fue
comercializada por primera vez en 1995 por Sun Microsystems. Hay muchas
aplicaciones y sitios web que no funcionarán, probablemente, a menos que tengan
Java instalado y cada día se crean más. Java es rápido, seguro y fiable. Desde
portátiles hasta centros de datos, desde consolas para juegos hasta computadoras
avanzadas, desde teléfonos móviles hasta Internet, Java está en todas partes, si
es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.
Java es, a partir de 2012, uno de los lenguajes de programación más populares en
uso, particularmente para aplicaciones de cliente-servidor de web, con unos diez
millones de usuarios reportados.
El lenguaje de programación Java fue desarrollado originalmente por James
Gosling, de Sun Microsystems (constituida en 1983 y posteriormente adquirida el
27 de enero de 2010 por la compañía Oracle),4 y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis
deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que
cualquiera de ellos. Las aplicaciones de Java son compiladas a bytecode (clase
Java), que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar
la arquitectura de la computadora subyacente.