Este documento discute diferentes tipos de lenguajes. Explica que el lenguaje natural es el lenguaje cotidiano de un grupo social, mientras que los lenguajes artificiales se crean para un propósito específico y están definidos formalmente. También describe los lenguajes formales, de programación y la gramática formal, y los procesos de análisis léxico, sintáctico y semántico involucrados en la traducción de lenguajes mediante compiladores e intérpretes.
1. LENGUAJES Y
TRADUCTORES
Lenguaje Natural
O Es el lenguaje que utilizamos, de manera hablada
o escrita, de manera cotidiana, en nuestro grupo
social.
o Es una herramienta, resultado de la vida
cotidiana de un grupo social y de su cultura.
Ejemplo: "John hit the ball"
Los lenguajes naturales tienen reglas de gramática:
S: Sentence : Oración.
NP : Noun Phrase: Frase del sujeto
VP : Verb Phrase: Frase del verbo
V: Verb: Verbo
Det : Determinant: Artículo
N: Noun : Nombre
S - > NP VP
NP -> N
NP -> Det N
VP -> V NP
N -> John | ball
Det -> the
V -> hit
Lenguaje Artificial
o Lenguaje creado para cierto propósito.
2. o Es más pequeño que el lenguaje natural.
o Es definido con un lenguaje formal.
Lenguaje Formal
o Definición de un lenguaje artificial de manera
formal a través de un alfabeto y una gramatica
formal.
o Las reglas de la gramática formal determinan con
exactitud y sin ambigüedades si la sintáxis de una
frase es la correcta.
o Es utilizado para la definición formal de un
lenguaje de programación.
Lenguaje de programación
o Lenguaje artificial elaborado para elaborar
programas que controlan el comportamiento de la
computadora.
o Expresa algoritmos y estructuras de datos.
o Esta definido por reglas de gramática (sintáxis) y
reglas semánticas (interpretación).
o Se les conoce como lenguajes de alto nivel.
Gramática formal
o Descripción precisa de un lenguaje formal.
o Describe el conjunto de las posibles secuencias de
tokens (símbolos) que se consideran
construcciones válidas.
o No describe la semántica.
Análisis léxico
3. o Proceso correspondiente a determinar si los
tokens de una frase son válidos.
o Se analiza la "ortografía".
Análisis sintáctico
o Proceso conocido como Parsing.
o Análisis de una secuencia de tokens para
determinar si cumple con las reglas de una
gramática formal.
o Se genera un árbol de parser.
Análisis semántico
o Incluye información semántica al árbol de parser,
correspondiente a la asignación de variables y
funciones (atributos y métodos).
o Se incluye información de qué se va a hacer y con
qué.
"En este puente vi al Popocatépetl cuando
volaba hacia Veracruz"
¿Cuál es la interpretación, la semántica?
a) Estos días de vacaciones tomé un avión hacia
Veracruz y ví al volcán desde la ventanilla del avión"
b) Sobre este puente se encontraba el Popocatépetl,
y eso lo ví mientras iba volando, gracias a mis
poderes, hacia Veracruz.
c) Estaba parado sobre este puente cuando ví como
volaba el volcán Popocatépetl, dirigiéndose hacia
Veracruz.
4. Las reglas de la gramática no aseguran la
semántica.
Generación de código
o Se genera el código de máquina (para el
procesador correspondiente).
o Se obtiene un programa en lenguaje de máquina,
listo para ser procesado por el CPU.
Compilador
o Programa que lleva a cabo el análisis léxico,
sintáctico y semántico, y la generación de código.
o Genera como resultado un archivo en código de
máquina, ejecutable por el procesador.
Intérprete
o Programa que lleva a cabo el análisis léxico,
sintáctico y semántico, y la generación de código
instrucción por instrucción.
o Va elaborando código ejecutable por el
procesador.
Traductor
5. Resumen del tema
o Compilador o intérprete que traduce un programa
fuente, en lenguaje de alto nivel, a un programa
objetivo, en lenguaje de máquina.
Ejemplo
Gramática formal
S - > NP VP
NP -> N
NP -> Det N
VP -> V NP
N -> John | Mary | he | she | cake| rice
Det -> the | a
V -> eats | cooks | serves
Tokens: John, Mary, he, she, cake, rice, the,
a, eats, cooks, serves
Lenguaje natural: diario
Lenguaje artificial: propósito
Lenguaje formal: es utilizado para la definicion formal del lenguaje de
programación.
Lenguaje de programación: lenguaje artificial para elaborar programas que
controlan el comp. de la computadora. (algoritmos, estructuras de datos)
Gramatica formal: descripcion del lenguaje formal.
Analisis lexico: tokens, ortografía.
Analisis sintáctico: analisis de una secuencia de tokens para ver si cumple
con la gramatica formal (Parsing)
Analisis semantico: asignacion de variables y fuciones.
Generacion de código: compilador, interprete, traductor.