Está en la página 1de 8

1.

1 ALFABETO Alfabeto: Leyendo sobre varios autores para comprender la definicin de alfabeto puedo decir claramente que Den Kelly en su libro Teora de autmatas y lenguajes formales nos dice que un alfabeto Es un conjunto no vaco y finito de smbolos por otro lado Jonh E. Hpocroft, Rajeev Motwani y Jeffrey D. Ullman en su libro Introduccin a la teora de autmatas, Lenguajes y Computacin nos definen que un alfabeto es un conjunto finito no vacio de smbolos, sin embargo Otros autores como Pedro Garca, Toms Prez, Jos Ruz, Encarna Segarra, Jos M. Sempere y M. Vzquez de Parga nos dicen en su libro Teora de autmatas y lenguajes formales que un alfabeto es cualquier conjunto finito y no vaco de elementos que denominan smbolos y los denotaran con el smbolo . Con otro autor como John Martin en su libro Lenguajes formales y teora de la computacin Por tanto puedo concluir que un alfabeto es un conjunto no vaco y finito de smbolos denotado por el smbolo .

1.2 CADENAS Cadena: La definicin de cadena se puede encontrar con varias definiciones como Den Kelly en su libro Teora de autmatas y lenguaj es formales nos dice que en su libro definir cadena como palabra y dice que una secuencia finita de smbolos de un determinado alfabeto es conocido como palabra cadena. Por otro lado John Martin en su libro Lenguajes formales y teora de la computacin define como cadena en un alfabeto se obtiene al ordenar elementos de (o posiblemente ninguno) este autor no define la palabra cadena en s pero si la utiliza mucho en sus definiciones para lenguajes y alfabeto. Otra definicin de Jonh E. Hpocroft, Rajeev Motwani y Jeffrey D. Ullman en su libro Introduccin a la teora de autmatas, Lenguajes y Computacin nos dicen que una cadena (tambin llamada palabra) es una secuencia finita de smbolos pertenecientes a un alfabeto. 1.3 LENGUAJES Lenguajes: La definicin de lenguajes la encontr de diferentes autores y cada uno usa sus trminos como Jonh E. Hpocroft, Rajeev Motwani y Jeffrey D. Ullman en su libro Introduccin a la teora de autmatas, Lenguajes y Computacin nos dice que un lenguaje es un conjunto de cadenas, todas ellas elegidas de algn *donde es un alfabeto, algo que me llamo la atencin de este libro es que los autores comenta n que la definicin de Lenguajes puede parecer extraa ms sin embargo los lenguajes habituales se pueden considerar como conjuntos de cadenas. Otro autor como John Martin en su libro Lenguajes formales y teora de la computacin define lenguajes como que es simplemente un conjunto de cadenas que incluyen smbolos de un alfabeto. Por tanto puedo concluir que un alfabeto es un conjunto no vaco y finito de smbolos denotado por el smbolo . Sin embargo Den Kelly nos dice que un lenguaje es un conjunto de palabras o de cadenas y se puede tener el lenguaje compuesto por ninguna cadena.

1.4 TIPOS DE LENGUAJES Podemos encontrar varios tipos de lenguajes: * Lenguajes declarativos * Lenguajes de alto nivel * Lenguajes ensambladores * Lenguajes mquina

Los lenguajes declarativos son los ms parecidos al castellano o ingls en su potencia expresiva y funcionalidad y estn en el nivel ms alto respecto a los otros. Son fundamentalmente lenguajes de rdenes, dominados por sentencias que expresan lo que hay que hacer en vez de cmo hacerlo.

Los lenguajes de alto nivel son los ms utilizados como lenguajes de programacin. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fcilmente legible y comprensible por otros programadores. Adems, los lenguajes de alto nivel suelen tener la caracterstica de transportabilidad. Ejemplos de estos lenguajes de alto nivel son PASCAL, APL y FORTRAN (lenguajes de programacin utilizados para aplicaciones cientficas), COBOL (para aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia artificial), C y ADA (para aplicaciones de programacin de sistemas) y PL/I (para aplicaciones de propsi to general).

Los lenguajes ensambladores y los lenguajes mquina son dependientes de la mquina. Cada tipo de mquina tiene su propio lenguaje mquina distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representacin simblica del lenguaje mquina asociado, lo cual permite una programacin menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecnica subyacente para realizar una programacin efectiva en cualquiera de estos niveles de lenguajes.

1.5 HERRAMIENTAS COMPUTACIONALES LIGADAS CON LENGUAJES

* Editores de estructuras: Un editor de estructuras toma como ent rada una secuencia de rdenes para construir un programa fuente. El editor de estructuras no slo realiza las funciones de creacin y modificacin

de textos de un editor de textos ordinario, sino que tambin analiza el texto del programa, imponiendo al programa fuente una estructura jerrquica apropiada. De esa manera, el editor de estructuras puede realizar tareas adicionales tiles para la preparacin de programas Concepto encontrado en el libro de Compiladores de Addison Wesley, a mi punto de vista estos editores de estructura son los que se encarga de llevar el orden de las palabras, valla el acomodo y comprobar si la entrada est formada correctamente. * Impresoras estticas: Una impresora esttica analiza un programa y lo imprime de forma que la es tructura del programa resulte claramente visible Concepto encontrado en el lib ro de Compiladores de Addison Wesley. * Verificadores estticos: este verificador lee un programa, lo analiza e intenta descubrir errores potenciales sin correr el programa, algo muy parecido a la correccin de los editores de texto como Word. Un verificador esttico puede detectar si hay partes de un programa que nunca se podrn ejecutar o si cierta variable se usa antes de ser definida nos dice Addison Wesley. * Intrpretes: En lugar de producir un programa objeto como resultado de una traduccin, un intrprete realiza las operaciones que implica el programa fuente. Muchas veces los interpretes se usan para ejecutar lenguajes de rdenes, pues cada operador que se ejecuta en un lenguaje de ordenes suele ser una invocacin de una rutina compleja, como un editor o un compilador es el encargado de

COMPILADOR CONVENCIONAL

* Formadores de textos: Un formador de textos toma como entrada una cadena de caracteres, la mayor parte de la cual es texto para componer, pero alguna incluye rdenes para indicar prrafos, figuras o estructuras matemticas como subndices o superndices esto con comento el autor del libro de Compiladores Addison Wesley. * Intrpretes de consultas: Un intrprete de consultas traduce un predicado que contiene operadores relacionales y booleanos a rdenes para buscar en una base de datos registros que satisfagan ese predicado

1.6 ESTRUCTURA DE UN TRADUCTOR Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje (lenguaje fuente) y como salida produce un texto escrito en un lenguaje (lenguaje objeto) que preserva el significado de origen. Ejemplos de traductores son los ensambladores y los compiladores.

En el proceso de traduccin se identifican dos fases principales:

* Fase de anlisis

* Fase de Sntesis

ENSAMBLADORES.

El programa ensamblador es el programa que realiza la traduccin de un programa escrito en ensamblador a lenguaje mquina. Esta traduccin es directa e inmediata, ya que las instrucciones en ensamblador no son ms que nemotcnicos de las instrucciones mquina que ejecuta directamente la CPU.

Tipos de ensambladores

Podemos distinguir entre tres tipos de ensambladores:

* Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres simblicos a las distintas instrucciones. * Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores bsicos. Hacen todo lo que puede hacer un ensamblador, y adems proporcionan una serie de directivas para definir e invocar macroinstrucciones. * Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, realizan la misma tarea que los anteriores, permitiendo tambin el uso de macros, permiten utilizar estructuras de programacin ms complejas propias de los lenguajes de alto nivel.

COMPILADORES. Un compilador es un programa informtico que traduce un programa escrito en un lenguaj e de programacin a otro lenguaje de programacin, es decir programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (lenguaje mquina). Generando un programa equivalente a capaz de interpretar. Estructura de un Compilador.

Cualquier compilador debe realizar dos tareas principales: anlisis del programa a compilar y sntesis de un programa en lenguaje mquina. Para el estudio de un compilador, es necesario dividir su trabajo en fases. Cada fase representa una transformacin al cdigo fuente para obtener el cdigo objeto. En cada una de las fases se utiliza un administrador de la tabla de smbolos y un manejador de errores.

Componentes en que se divide un compilador:

Anlisis Lxico. En esta fase se lee los caracteres del programa fuente y se agrupan en cadenas que representan los componentes lxicos. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o con su nombre en ingls token).

Anlisis Sintctico. Los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida. Anlisis Semntico. Intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no tengan significado para la operacin implicada. Generacin de cdigo Intermedio. Se puede considerar esta operacin intermedia como un subprograma para una mquina abstracta, a esta representacin debe tener dos propiedades importantes: debe ser fcil de producir y fcil de traducir al programa objeto. Optimizacin de Cdigo. Se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar. Generacin de Cdigo. Esta constituye la fase final de un compilador. Administrador de la tabla de smbolos. Se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa. Manejador de errores. Es posible encontrar errores. De esta forma podrn controlarse ms eficientemente los errores encontrados en cada una de las fases de la compilacin de un programa.

INTERPRETES.

Los intrpretes realizan normalmente dos operaciones: * Traducen el cdigo fuente a un formato interno. * Ejecutan o interpretan el programa traducido al formato interno. La primera parte del intrprete se llama a veces "el compilador", aunque el cdigo interno que genera no es el lenguaje de la mquina, ni siquiera lenguaje simblico, ni tampoco un lenguaje de alto nivel.

Estructura

Particularidades de la interpretacin: * Ahorra memoria. * Produce un resultado que no se puede almacenar, lo cual hace la ejecucin lenta. * No demasiado eficiente, cada vez que se entre en un bucle se analizaran sus sentencias. * Facilita el proceso de depuracin. * No produce resultados transportables.

La interpretacin es til en: * Sistemas interactivos. * Programas de pequea envergadura. * Programas de prototipo y de enseanza.

1.7 FASES DE UN COMPILADOR Fases de un compilador: El autor Addison Wesley nos dice que un compilador opera en fases, cada una de las cuales transforma al programa fuente de una representacin en otra y nos propone la siguiente estructura

Analizador lxico: esta fase lee los caracteres en el programa fuente y agrupa en una cadena de componentes lxicos en los que cada componente representa una secuencia lgicamente coherente de caracteres, como un identificador, una palabra clave (if, while, etc.) Analizador sintctico y semntico: por lo general manejan una gran porcin de los errores detectables por el compilador. Durante el anlisis semntico el compilador intenta detectar construcciones que tengan la estructura sintctica correcta.

Generacin de cdigo intermedio: Despus de los anlisis sintctico y semntico, algunos compiladores generan una representacin intermedia explcita del programa fuente.

Optimizacin de cdigo: esta fase trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar.

Generacin de cdigo: Esta es la fase final de un compilador es la generacin de cdigo objeto, que por lo general consiste en cdigo de mquina re localizable o cdigo ensamblador. Las posiciones de memoria se seleccionan para cada una de las variables usadas por el programa.

ANEXOS 1. Cul es el trabajo de las tareas que consideras ms difcil y porque? La tarea que ms se me complico fue la de investigar las herramientas ligadas con lenguajes no po rque estuvo difcil si no que por la falta de informacin, necesite ir a la biblioteca Magna ubicada en la UAN, para poder encontrar la informacin, ya que los libros que haba en la biblioteca del TEC ya los haban prestado. 2. Cul de las tareas realizadas consideras ms significativa o que te aporto ms para comprender ms la unidad? Sin dudar puedo decir que hacer los ejercicios de lenguajes porque as considero que aprendo ms haciendo ejercicios que escuchando pura teora y por eso la creacin de lenguajes, junto con la descripcin es lo que ms me ayudo a comprender la unidad 3. Cul de las tareas realizadas consideras ms sencilla y porque? La tarea de buscar 3 lenguajes, se me hizo ms sencilla porque encontr demasiada informacin y no le batalle.

BIBLIOGRAFIAS

Autor: Addison Wesley Longman Fecha de publicacin: 1990 Ttulo: Compiladores Principios, tcnicas y herramientas Lugar de publicacin: Mexico Editorial: Bell Telephone Laboratories, Inc

PDF:http://blearning.itmina.edu.mx/dep/sada/carreras/Ingenieria%20en%20Sistemas%20Computacionales/6to %20Semestre/Interfaces/interfaces/T203.HistoriayTiposdeLenguajesdeProgramacion.pdf

Lenguajes de programacin Allon B. Tucker, Editorial McGraw Hill

LIBROS CONSULTADOS

* Den Kelly Teora de autmatas y lenguajes formales * Jonh E. Hpocroft, Rajeev Motwani y Jeffrey D. Ullman Introduccin a la teora de autmatas, Lenguajes y Computacin * John Martin Lenguajes formales y teora de la computacin

También podría gustarte