Vectores y operaciones con vectores, producto interno y vectorial de vectores...
Procesadores de Lenguaje
1. COMPILADORES
Nombre: Luis Molina
Fecha: 25/04/2019.
Ejercicios para la sección 1.1
Ejercicio 1 .1 .1: ¿Cuál es la diferencia entre un compilador y un intérprete?
Un compilador es un programa que puede leer un programa en un lenguaje, y traducirlo
a otro programa con otro lenguaje.
Ejercicio 1 .1 .2: ¿Cuáles son las ventajas de (a) un compilador sobre un intérprete,
y (b) las de un intérprete sobre un compilador?
a)
Mientras se ejecuta el proceso de traducción el compilador este genera mensajes
sobre cualquier error.
Si el programa destino es un programa ejecutable en lenguaje máquina, entonces el
usuario puede ejecutarlo para procesar las entradas y producir salidas.
b)
El intérprete nos da la apariencia de ejecutar directamente las operaciones en el
programa inicial de origen.
El intérprete tiene la capacidad de mostrar mensajes con mayor detalle y eficiencia
que un compilador.
Ejercicio 1 .1 .3: ¿Qué ventajas hay para un sistema de procesamiento de
lenguajes en el cual el compilador produce lenguaje ensamblador en vez de
lenguaje máquina?
El computador no entiende el lenguaje ensamblador directamente, pero si el usuario que
va a desarrollar, por ello nos facilita el trabajo este tipo de sistemas. El intérprete
generalmente es más lento que el ensamblador.
Ejercicio 1 .1 .4: A un compilador que traduce un lenguaje de alto nivel a otro
lenguaje de alto nivel se le llama traductor de source-to-source. ¿Qué ventajas
hay en cuanto al uso de C como lenguaje destino para un compilador?
Ya que estos traductores generan código de un lenguaje a otro, el usar C como destino
es muy útil ya que C es un lenguaje global y básico que cuenta con toda clase de
bibliotecas.
Ejercicio 1 .1 .5: Describa algunas de las tareas que necesita realizar un
ensamblador.
Principalmente traducir un programa en lenguaje ensamblador a lenguaje de máquina
Crear instrucciones en lenguaje de máquina entendible.
Convertir operaciones simbólicas en operandos.
2. Similar al ejemplo 1.1 de la página 2, donde se explica cómo es el proceso de
los procesadores de lenguaje java, investigue un proceso similar del lenguaje
javascrip y .net.
Javascript:
En la imagen se explica el proceso que emplea javascript usando el motor V8 y las
acciones que realiza para aplicarlas en otras herramientas.
.NET
El espacio de nombres System.Diagnostics del .NET Framework proporciona clases que
nos permiten interactuar con los procesos del sistema, registros de eventos, contadores
de rendimiento y depurar la aplicación y hacer seguimiento de la ejecución del código.
La clase Trace nos proporciona un conjunto de métodos y propiedades que nos facilitan
el seguimiento del código.
Es tarea común en determinados procesos tener que mostrar por línea de comandos
información acerca de la ejecución para mantener informado al usuario y, a su vez,
almacenar esa información en un archivo de log para su tratamiento posterior. Veamos
como la clase Trace nos facilita el desarrollo en escenarios como el planteado, en el que
necesitamos escribir en varios agentes de escucha de seguimiento:
Explique cómo funciona un sistema de procesamiento de lenguaje, que
hacen cada uno de sus elementos que lo conforman.
Análisis morfológico o léxico. Consiste en el análisis interno de las palabras que
forman oraciones para extraer lemas, rasgos flexivos, unidades léxica compuestas. Es
esencial para la información básica: categoría sintáctica y significado léxico.
Análisis sintáctico. Consiste en el análisis de la estructura de las oraciones de acuerdo
con el modelo gramatical empleado (lógico o estadístico).
Análisis semántico. Proporciona la interpretación de las oraciones, una vez eliminadas
las ambigüedades morfosintácticas.
3. Análisis pragmático. Incorpora el análisis del contexto de uso a la interpretación final.
Aquí se incluye el tratamiento del lenguaje figurado (metáfora e ironía) como el
conocimiento del mundo específico necesario para entender un texto especializado.