TEORIA DE LENGUAJES Y COMPILADORES
Enviado por karla2691 • 6 de Mayo de 2013 • 1.351 Palabras (6 Páginas) • 549 Visitas
Sistemas formales y teoría de conjuntos
Un sistema formal es un tipo de sistema lógico construido por un lenguaje formal, una gramática formal que restringe cuales son las expresiones correctamente formadas de dicho lenguaje y las reglas de inferencia y un conjunto de axiomas que permite encontrar las proposiciones derivables de dichos axiomas.
La teoría de conjuntos es una rama de las matemáticas que estudia las propiedades de los conjuntos: colecciones abstractas de objetos, consideradas como objetos en sí mismas.
La relación que tienen los sistemas formales con la teoría de conjuntos es que los sistemas formales son a base de las matemáticas y a teoría de conjuntos se puede aplicar a estos sistemas formales.
Conceptos y elementos para el diseño de lenguajes
Los lenguajes se dividen en 2 lenguajes naturales y lenguajes artificiales.
Lenguajes naturales: son los que son usados por los humanos como lo son los dialectos y lenguajes que hablamos que son miles algunos ejemplos pueden ser el ingles, español, francés, alemán, etc.
Lenguajes artificiales: estos son creados por personas para poder comunicarse con las maquinas. En base a su origen se pueden dividir por generaciones.
Generaciones de los lenguajes desde la 0:
• 0 "Leguaje Maquina"
• 1 "Lenguaje Ensamblador"
• 2 "Lenguaje de Programación"
Existe otra manera de clasificarlos igual por generaciones solo que este listado empieza desde la generación 1 de lenguajes de programación :
• 1° Generación: Son los lenguajes formales (AO,B,COBOL,FURTAN,ALGOL,ETC..)
• 2° Generación: Se crearon los lenguajes amigables para el programador (BASIC, PASCAL, C,ETC..)
• 3° Generación: Son los lenguajes que son Orientados a Objetos
• 4° Generación: En esta generación se encuentran los generadores de Código Automático.
• 5° Generación: En esta generación se encuentran aplicaciones para la inteligencia artificial y PLN.
Clasificación por tipo de los lejuajes:
• Por aplicación
• Súper-Lenguaje
• Meta-Lenguaje : Un autómata es la representación grafica de estos.
Los niveles de leguajes con respecto al Hardware son:
• Bajo nivel: Son los lenguajes de máquina que están basados en codigo binario y el algebra de boole, su control se lleva a cabo vía cable o micro programado .
• Nivel medio: Aqui nace C y aqui tambien se encuentran los ensambladores, ejemplos de estos pueden ser los emuladores o macro ensambladores que se consideran maquinas virtuales.
• Alto nivel o lenguajes de programación como lo es JAVA.
Dividido por niveles de traducción :
• Ensambladores
• Interpretes
• Compiladores
Cada uno de los lenguajes se encuentra en un paradigma como lo pueden ser los siguientes:
• Orientado a Objetos
• Imperativa
• Definicional
• Funcional etc..
El diseño detallado tiene que ver con la especificación de detalles algorítmicos, representaciones concretas de datos, interconexiones entre funciones y estructuras de datos.
El punto de inicio para el diseño detallado es una estructura arquitectónica a la que se le van a proporcionar los detalles algorítmicos y las representaciones concretas de datos.
El lenguaje de programación debe ser universal. Es decir, cualquier problema debe tener una solución que puede ser programada en el lenguaje y dicha solución ser implementada en cualquier computador. Este requisito es uno de los más fuertes y pocos lenguajes lo poseen. Se dice que cualquier lenguaje en el cual pueden definirse funciones recursivas se considera universal. De otro lado, un lenguaje sin recursión ni iteración no puede ser universal. Existen ciertos lenguajes de aplicación que no son universales, pero sí podrían ser razonablemente descritos así mismos, como lenguajes de programación.
El lenguaje de programación debe ser implementable en una computadora, es decir; debe ser posible ejecutar un programa en términos del lenguaje en cualquier máquina. La notación matemática generalmente no es implementable porque en su notación es posible formular problemas que no pueden ser resueltos por cualquier computador. Los lenguajes naturales tampoco son implementables por razones totalmente diferentes: ellos son tan imprecisos y tienden a ser muy ambiguos.
Sistemas de traducción y compilación
Un traductor es un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino produciendo,
...