SlideShare una empresa de Scribd logo
Ejercicio 1 .1 .1: ¿Cuál es la diferencia entre un compilador y un intérprete?
• Un intérprete traduce instrucciones de alto nivel en una forma intermedia para ser ejecutado.
En contraste, un compilador, traduce instrucciones de alto nivel directamente en lenguaje de
máquina.
• El intérprete traduce un programa línea a línea mientras que el compilador traduce el
programa entero y luego lo ejecuta.
• El intérprete detecta si el programa tiene errores y permite su depuración durante el proceso
de ejecución, mientras que el compilador espera hasta terminar la compilación de todo el
programa para generar un informe de errores.
• Un programa compilado es más seguro que uno interpretado, porque no contiene el código
fuente, que puede ser modificado incorrectamente por el usuario.
• Ambos, intérpretes y compiladores están disponibles en la mayoría de los lenguajes de alto
nivel.
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)Ventajas de un compilador sobre un intérprete:
 Se compila una vez, se ejecuta n veces.
 En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se
traduce tantas veces una línea como veces se repite el bucle.
 El compilador tiene una visión global del programa, por lo que la información de mensajes
de error es más detallada. Ventajas del intérprete frente al compilador:
 Un intérprete necesita menos memoria que un compilador. En principio eran más
abundantes dado que los ordenadores tenían poca memoria.
 Permiten una mayor interactividad con el código en tiempo de desarrollo.
(b) Ventajas del intérprete frente al compilador:
• El programa se puede ejecutar de inmediato, sin esperar a ser compilado.
• Puede ser interrumpido con facilidad.
• Puede ser rápidamente modificado y ejecutado nuevamente.
• Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la
compilación no permite la ejecución paso a paso del programa y con ello impide la edición
seguimiento y depuración del programa.
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?
• Velocidad
El proceso de traducción que realizan los intérpretes, implica un proceso de cómputo adicional al
que el programador quiere realizar. Por ello, nos encontraremos con que un intérprete es siempre
más lento que realizar la misma acción en Lenguaje Ensamblador, simplemente porque tiene el costo
adicional de estar traduciendo el programa, cada vez que lo ejecutamos.
• Tamaño
Los compiladores e intérpretes generan más código máquina del necesario; por ello, el programa
ejecutable crece. Así, cuando es importante reducir el tamaño del ejecutable, mejorando el uso de la
memoria y teniendo también beneficios en velocidad, puede convenir usar el lenguaje Ensamblador.
Entre los programas que es crítico el uso mínimo de memoria, tenemos a los virus y manejadores de
dispositivos (drivers). Muchos de ellos, por supuesto, están escritos en lenguaje Ensamblador.
• Flexibilidad
Las razones anteriores son cuestión de grado: podemos hacer las cosas en otro lenguaje, pero
queremos hacerlas más eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en el
control; al hacer abstracciones, limitan su propia capacidad. Es decir, existen tareas que la máquina
puede hacer, pero que un lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic no es
posible cambiar la resolución del monitor a medio programa; es una limitante, impuesta por la
abstracción del GUI Windows. En cambio, en ensamblador es sumamente sencillo, pues tenemos el
acceso directo al hardware del monitor.
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?
Las ventajas de que C sea su lenguaje destino son las siguientes:
• Es un lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel
para realizar implementaciones óptimas.
• A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores
para casi todos los sistemas conocidos.
• Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas
existentes.
Ejercicio 1 .1 .5: Describa algunas de las tareas que necesita realizar un ensamblador.
• Convertir los códigos (“opcode” o mnemónicos: ej. LDA, STX) a su código equivalente en
lenguaje de máquina
• Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones
correspondientes de los operandos
• Construir las instrucciones en lenguaje de máquina en el formato apropiado
• Convertir las constantes definidas en el programa en su verdadera representación
• Escribir el “listing” en lenguaje de ensamblador con el código en lenguaje de máquina
correspondiente
• Procesar las directrices al ensamblador (las directrices son instrucciones o comandos
dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el programa en lenguaje
de ensamblador; estas directrices no se traducen a lenguaje de máquina, si no que el
ensamblador ejecuta alguna acción, como reservar memoria para variables, entre otras)
JavaScript
JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web
dinámicas.
Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece,
animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario.
Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es necesario
compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se
pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios.
A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de programación
Java. Legalmente, JavaScript es una marca registrada de la empresa Sun Microsystems.
Las acciones controladas por JavaScript pueden ser el despliegue de un menú, hacer aparecer,
desaparecer o cambiar texto e imágenes, realizar cálculos y mostrar resultados, mostrar mensajes de
aviso (por ejemplo, si faltan datos en un formulario) y “efectos animados” en general.
Arquitectura de la plataforma .NET Framework
Los programas de C# se ejecutan en .NET Framework, un componente integral de Windows que
incluye un sistema de ejecución virtual llamado Common Language Runtime (CLR) y un conjunto
unificado de bibliotecas de clases. El CLR es la implementación comercial de Microsoft de Common
Language Infrastructure (CLI), un estándar internacional que es la base para la creación de entornos
de ejecución y desarrollo en los que los lenguajes y las bibliotecas trabajan juntos sin problemas.
El código fuente escrito en C# se compila en un lenguaje intermedio (IL) que guarda conformidad con
la especificación de CLI. El código y los recursos IL, como mapas de bits y cadenas, se almacenan en
disco en un archivo ejecutable denominado ensamblado, normalmente con la extensión .exe o .dll. Un
ensamblado contiene un manifiesto que proporciona información sobre los tipos, la versión, la
referencia cultural y los requisitos de seguridad del ensamblado.
Cuando se ejecuta el programa de C#, el ensamblado se carga en el CLR, el cual podría realizar diversas
acciones en función de la información en el manifiesto. Luego, si se cumplen los requisitos de
seguridad, el CLR realiza la compilación Just in time (JIT) para convertir el código IL en instrucciones
máquina nativas. El CLR también proporciona otros servicios relacionados con la recolección de
elementos no utilizados, el control de excepciones y la administración de recursos. El código que se
ejecuta en el CLR se conoce a veces como "código administrado", a diferencia del "código no
administrado" que se compila en lenguaje de máquina nativo destinado a un sistema específico. En el
siguiente diagrama se ilustran las relaciones de tiempo de compilación y tiempo de ejecución de
archivos de código fuente de C#, las bibliotecas de clases de .NET Framework, los ensamblados y el
CLR.
¿Qué es el procesamiento de lenguaje natural?
El Procesamiento del Lenguaje Natural es el campo de conocimiento de la Inteligencia Artificial que
se ocupa de la investigar la manera de comunicar las máquinas con las personas mediante el uso de
lenguas naturales, como el español, el inglés o el chino.
Virtualmente, cualquier lengua humana puede ser tratada por los ordenadores. Lógicamente,
limitaciones de interés económico o práctico hace que solo las lenguas más habladas o utilizadas en
el mundo digital tengan aplicaciones en uso.
Las lenguas naturales pueden expresarse de forma oral (mediante la voz), escrita (un texto) o por
signos. Obviamente, la expresión escrita está mucho más documentada y es más fácil de conseguir y
tratar que la oral o el lenguaje de signos. Por lo tanto, el Procesamiento del Lenguaje Natural está
mucho más avanzado en el tratamiento de textos escritos.
En teoría, cualquier lengua humana puede ser interpretada y tratada por un ordenador, aunque esto
en la práctica no se hace, dadas las limitaciones económicas o las escasas aplicaciones que tendría
interpretar las más de 3.000 lenguas catalogadas existentes en el mundo.
Modelos para procesamiento del lenguaje natural
Tratar computacionalmente una lengua implica un proceso de modelización matemática. Los
ordenadores solo entienden de bytes y dígitos y los informáticos codifican los programas
empleando lenguajes de programación como C, Python o Java.
Los lingüistas computacionales se encargan de la tarea de “preparar” el modelo lingüístico para que
los ingenieros informáticos lo implementen en un código eficiente y funcional. Básicamente, existen
dos aproximaciones generales al problema de la modelización lingüística:
Modelos Lógicos: gramáticas
Los lingüistas escriben reglas de reconocimiento de patrones estructurales, empleando un
formalismo gramatical concreto. Estas reglas, en combinación con la información almacenada en
diccionarios computacionales, definen los patrones que hay que reconocer para resolver la tarea
(buscar información, traducir, etc.).
Estos modelos lógicos pretenden reflejar la estructura lógica del lenguaje y surgen a partir de las
teorías de N. Chomsky en los años 50.
Modelos probabilísticos del lenguaje natural: basados en datos
La aproximación es a la inversa: los lingüistas recogen colecciones de ejemplos y datos (corpus) y a
partir de ellos se calculan las frecuencias de diferentes unidades lingüísticas (letras, palabras,
oraciones) y su probabilidad de aparecer en un contexto determinado. Calculando esta
probabilidad, se puede predecir cuál será la siguiente unidad en un contexto dado, sin necesidad de
recurrir a reglas gramaticales explícitas.
Es el paradigma de “aprendizaje automático” que se ha impuesto en las últimas décadas en
Inteligencia Artificial: los algoritmos infieren las posibles respuestas a partir de los datos observados
anteriormente en el corpus.
Componentes del procesamiento del lenguaje natural
A continuación, vemos algunos de los componentes del procesamiento del lenguaje natural. No
todos los análisis que se describen se aplican en cualquier tarea de PLN, sino que depende del
objetivo de la aplicación.
1. 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éxicas compuestas. Es esencial para
la información básica: categoría sintáctica y significado léxico.
2. 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).
3. Análisis semántico. Proporciona la interpretación de las oraciones, una vez eliminadas las
ambigüedades morfosintácticas.
4. 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.
Un análisis morfológico, sintáctico, semántico o pragmático se aplicará dependiendo del objetivo de
la aplicación. Por ejemplo, un conversor de texto a voz no necesita el análisis semántico o
pragmático. Pero un sistema conversacional requiere información muy detallada del contexto y del
dominio temático.
Linkografia
https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/tareas-que-realiza-
un-lenguaje-ensamblador/
https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/que-ventajas-hay-
en-cuanto-al-uso-de-c-como-lenguaje-destino-para-un-compilador/
https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/que-ventajas-hay-
para-un-sistema-de-procesamiento-de-lenguajes-en-el-cual-el-compilador-produce-un-lenguaje-
ensamblador-en-vez-de-un-lenguaje-maquina/
http://equipo5241v.blogspot.com/2010/05/comparacion-interpretes-y-compiladores.html
http://www.cavsi.com/preguntasrespuestas/cual-es-la-diferencia-entre-interprete-y-compilador/
http://www.iic.uam.es/inteligencia/que-es-procesamiento-del-lenguaje-natural/
http://www.vicomtech.org/t4/e11/procesamiento-del-lenguaje-natural
https://medium.com/@pharesdiego/javascript-un-lenguaje-compilado-o-interpretado-962ee405e123
https://uniwebsidad.com/libros/javascript/capitulo-1
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=777:ique-es-
javascript-principales-usos-servidor-y-cliente-html-css-y-programacion-efectos-
cu01103e&catid=78&Itemid=206
https://docs.microsoft.com/es-es/dotnet/csharp/getting-started/introduction-to-the-csharp-language-
and-the-net-framework

Más contenido relacionado

La actualidad más candente

Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
Elba Sepúlveda
 
Ensayo
EnsayoEnsayo
Ensayo
Alva_Ruiz
 
Lenguajes de alto nivel
Lenguajes de alto nivelLenguajes de alto nivel
Lenguajes de alto nivel
Grace Laguna
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemasJESSIKADG86
 
Taller saberes previos
Taller saberes previosTaller saberes previos
Taller saberes previos
Yulieth Mendoza
 
Computación
ComputaciónComputación
Computación
kateshita
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
RAFAEL HONORES VERA
 
Software
SoftwareSoftware
Software
amauri lopez
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionnecrosteel
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
Michael Vreys
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
iagardea
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
michelledelgado97
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lectura
acdurcor
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programaciónJSPN
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
Adraian Felipe
 
Presentacion_Lenguajes_Programacion
Presentacion_Lenguajes_ProgramacionPresentacion_Lenguajes_Programacion
Presentacion_Lenguajes_Programacion
ymendal
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de ProgramacionLauracks
 

La actualidad más candente (19)

Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
 
Ensayo
EnsayoEnsayo
Ensayo
 
Lenguajes de alto nivel
Lenguajes de alto nivelLenguajes de alto nivel
Lenguajes de alto nivel
 
Herramientas
HerramientasHerramientas
Herramientas
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
 
Taller saberes previos
Taller saberes previosTaller saberes previos
Taller saberes previos
 
Computación
ComputaciónComputación
Computación
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Software
SoftwareSoftware
Software
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lectura
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Presentacion_Lenguajes_Programacion
Presentacion_Lenguajes_ProgramacionPresentacion_Lenguajes_Programacion
Presentacion_Lenguajes_Programacion
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de Programacion
 

Similar a Investigación Ensambladores y Decompiladores

Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
GLORIABELEN3
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
Facultad de Ciencias y Sistemas
 
lenguaje de programación
lenguaje de programación lenguaje de programación
lenguaje de programación
j3palacios
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
Roberto Cabrera Marin
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
Francisco Leal
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
ADOLFOISAIASGARCIASI
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
KareliaRivas
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
TaniaCalle
 
CURSO DE SELECCIÓN_SESIÓN 02.pptx
CURSO DE SELECCIÓN_SESIÓN 02.pptxCURSO DE SELECCIÓN_SESIÓN 02.pptx
CURSO DE SELECCIÓN_SESIÓN 02.pptx
ALE TUD
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programación
juanbryanc
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
En La Vereda de Mi Casaa!
 

Similar a Investigación Ensambladores y Decompiladores (20)

Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
lenguaje de programación
lenguaje de programación lenguaje de programación
lenguaje de programación
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Apuntes c
Apuntes cApuntes c
Apuntes c
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Informática
InformáticaInformática
Informática
 
Informática
InformáticaInformática
Informática
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
 
CURSO DE SELECCIÓN_SESIÓN 02.pptx
CURSO DE SELECCIÓN_SESIÓN 02.pptxCURSO DE SELECCIÓN_SESIÓN 02.pptx
CURSO DE SELECCIÓN_SESIÓN 02.pptx
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programación
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Herramientas
HerramientasHerramientas
Herramientas
 

Más de RubnPilca

TALLER DE COMPILADORES (Flex y Bison).
TALLER DE COMPILADORES  (Flex y Bison). TALLER DE COMPILADORES  (Flex y Bison).
TALLER DE COMPILADORES (Flex y Bison).
RubnPilca
 
Análisis sintáctico
Análisis sintácticoAnálisis sintáctico
Análisis sintáctico
RubnPilca
 
Compilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual BasicCompilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual Basic
RubnPilca
 
Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran. Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran.
RubnPilca
 
Instalar compiladores cruzados
Instalar compiladores cruzadosInstalar compiladores cruzados
Instalar compiladores cruzados
RubnPilca
 
Emsambladores
EmsambladoresEmsambladores
Emsambladores
RubnPilca
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORES
RubnPilca
 
Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.
RubnPilca
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
RubnPilca
 

Más de RubnPilca (9)

TALLER DE COMPILADORES (Flex y Bison).
TALLER DE COMPILADORES  (Flex y Bison). TALLER DE COMPILADORES  (Flex y Bison).
TALLER DE COMPILADORES (Flex y Bison).
 
Análisis sintáctico
Análisis sintácticoAnálisis sintáctico
Análisis sintáctico
 
Compilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual BasicCompilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual Basic
 
Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran. Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran.
 
Instalar compiladores cruzados
Instalar compiladores cruzadosInstalar compiladores cruzados
Instalar compiladores cruzados
 
Emsambladores
EmsambladoresEmsambladores
Emsambladores
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORES
 
Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 

Último

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 

Último (20)

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 

Investigación Ensambladores y Decompiladores

  • 1. Ejercicio 1 .1 .1: ¿Cuál es la diferencia entre un compilador y un intérprete? • Un intérprete traduce instrucciones de alto nivel en una forma intermedia para ser ejecutado. En contraste, un compilador, traduce instrucciones de alto nivel directamente en lenguaje de máquina. • El intérprete traduce un programa línea a línea mientras que el compilador traduce el programa entero y luego lo ejecuta. • El intérprete detecta si el programa tiene errores y permite su depuración durante el proceso de ejecución, mientras que el compilador espera hasta terminar la compilación de todo el programa para generar un informe de errores. • Un programa compilado es más seguro que uno interpretado, porque no contiene el código fuente, que puede ser modificado incorrectamente por el usuario. • Ambos, intérpretes y compiladores están disponibles en la mayoría de los lenguajes de alto nivel. 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)Ventajas de un compilador sobre un intérprete:  Se compila una vez, se ejecuta n veces.  En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle.  El compilador tiene una visión global del programa, por lo que la información de mensajes de error es más detallada. Ventajas del intérprete frente al compilador:  Un intérprete necesita menos memoria que un compilador. En principio eran más abundantes dado que los ordenadores tenían poca memoria.  Permiten una mayor interactividad con el código en tiempo de desarrollo. (b) Ventajas del intérprete frente al compilador: • El programa se puede ejecutar de inmediato, sin esperar a ser compilado. • Puede ser interrumpido con facilidad. • Puede ser rápidamente modificado y ejecutado nuevamente. • Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la compilación no permite la ejecución paso a paso del programa y con ello impide la edición seguimiento y depuración del programa. 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? • Velocidad El proceso de traducción que realizan los intérpretes, implica un proceso de cómputo adicional al que el programador quiere realizar. Por ello, nos encontraremos con que un intérprete es siempre más lento que realizar la misma acción en Lenguaje Ensamblador, simplemente porque tiene el costo adicional de estar traduciendo el programa, cada vez que lo ejecutamos.
  • 2. • Tamaño Los compiladores e intérpretes generan más código máquina del necesario; por ello, el programa ejecutable crece. Así, cuando es importante reducir el tamaño del ejecutable, mejorando el uso de la memoria y teniendo también beneficios en velocidad, puede convenir usar el lenguaje Ensamblador. Entre los programas que es crítico el uso mínimo de memoria, tenemos a los virus y manejadores de dispositivos (drivers). Muchos de ellos, por supuesto, están escritos en lenguaje Ensamblador. • Flexibilidad Las razones anteriores son cuestión de grado: podemos hacer las cosas en otro lenguaje, pero queremos hacerlas más eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su propia capacidad. Es decir, existen tareas que la máquina puede hacer, pero que un lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic no es posible cambiar la resolución del monitor a medio programa; es una limitante, impuesta por la abstracción del GUI Windows. En cambio, en ensamblador es sumamente sencillo, pues tenemos el acceso directo al hardware del monitor. 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? Las ventajas de que C sea su lenguaje destino son las siguientes: • Es un lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones óptimas. • A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos. • Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas existentes. Ejercicio 1 .1 .5: Describa algunas de las tareas que necesita realizar un ensamblador. • Convertir los códigos (“opcode” o mnemónicos: ej. LDA, STX) a su código equivalente en lenguaje de máquina • Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operandos • Construir las instrucciones en lenguaje de máquina en el formato apropiado • Convertir las constantes definidas en el programa en su verdadera representación • Escribir el “listing” en lenguaje de ensamblador con el código en lenguaje de máquina correspondiente • Procesar las directrices al ensamblador (las directrices son instrucciones o comandos dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el programa en lenguaje de ensamblador; estas directrices no se traducen a lenguaje de máquina, si no que el ensamblador ejecuta alguna acción, como reservar memoria para variables, entre otras)
  • 3. JavaScript JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas. Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario. Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios. A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de programación Java. Legalmente, JavaScript es una marca registrada de la empresa Sun Microsystems. Las acciones controladas por JavaScript pueden ser el despliegue de un menú, hacer aparecer, desaparecer o cambiar texto e imágenes, realizar cálculos y mostrar resultados, mostrar mensajes de aviso (por ejemplo, si faltan datos en un formulario) y “efectos animados” en general.
  • 4. Arquitectura de la plataforma .NET Framework Los programas de C# se ejecutan en .NET Framework, un componente integral de Windows que incluye un sistema de ejecución virtual llamado Common Language Runtime (CLR) y un conjunto unificado de bibliotecas de clases. El CLR es la implementación comercial de Microsoft de Common Language Infrastructure (CLI), un estándar internacional que es la base para la creación de entornos de ejecución y desarrollo en los que los lenguajes y las bibliotecas trabajan juntos sin problemas. El código fuente escrito en C# se compila en un lenguaje intermedio (IL) que guarda conformidad con la especificación de CLI. El código y los recursos IL, como mapas de bits y cadenas, se almacenan en disco en un archivo ejecutable denominado ensamblado, normalmente con la extensión .exe o .dll. Un ensamblado contiene un manifiesto que proporciona información sobre los tipos, la versión, la referencia cultural y los requisitos de seguridad del ensamblado. Cuando se ejecuta el programa de C#, el ensamblado se carga en el CLR, el cual podría realizar diversas acciones en función de la información en el manifiesto. Luego, si se cumplen los requisitos de seguridad, el CLR realiza la compilación Just in time (JIT) para convertir el código IL en instrucciones máquina nativas. El CLR también proporciona otros servicios relacionados con la recolección de elementos no utilizados, el control de excepciones y la administración de recursos. El código que se ejecuta en el CLR se conoce a veces como "código administrado", a diferencia del "código no administrado" que se compila en lenguaje de máquina nativo destinado a un sistema específico. En el siguiente diagrama se ilustran las relaciones de tiempo de compilación y tiempo de ejecución de archivos de código fuente de C#, las bibliotecas de clases de .NET Framework, los ensamblados y el CLR.
  • 5. ¿Qué es el procesamiento de lenguaje natural? El Procesamiento del Lenguaje Natural es el campo de conocimiento de la Inteligencia Artificial que se ocupa de la investigar la manera de comunicar las máquinas con las personas mediante el uso de lenguas naturales, como el español, el inglés o el chino. Virtualmente, cualquier lengua humana puede ser tratada por los ordenadores. Lógicamente, limitaciones de interés económico o práctico hace que solo las lenguas más habladas o utilizadas en el mundo digital tengan aplicaciones en uso. Las lenguas naturales pueden expresarse de forma oral (mediante la voz), escrita (un texto) o por signos. Obviamente, la expresión escrita está mucho más documentada y es más fácil de conseguir y tratar que la oral o el lenguaje de signos. Por lo tanto, el Procesamiento del Lenguaje Natural está mucho más avanzado en el tratamiento de textos escritos. En teoría, cualquier lengua humana puede ser interpretada y tratada por un ordenador, aunque esto en la práctica no se hace, dadas las limitaciones económicas o las escasas aplicaciones que tendría interpretar las más de 3.000 lenguas catalogadas existentes en el mundo. Modelos para procesamiento del lenguaje natural Tratar computacionalmente una lengua implica un proceso de modelización matemática. Los ordenadores solo entienden de bytes y dígitos y los informáticos codifican los programas empleando lenguajes de programación como C, Python o Java. Los lingüistas computacionales se encargan de la tarea de “preparar” el modelo lingüístico para que los ingenieros informáticos lo implementen en un código eficiente y funcional. Básicamente, existen dos aproximaciones generales al problema de la modelización lingüística: Modelos Lógicos: gramáticas Los lingüistas escriben reglas de reconocimiento de patrones estructurales, empleando un formalismo gramatical concreto. Estas reglas, en combinación con la información almacenada en diccionarios computacionales, definen los patrones que hay que reconocer para resolver la tarea (buscar información, traducir, etc.). Estos modelos lógicos pretenden reflejar la estructura lógica del lenguaje y surgen a partir de las teorías de N. Chomsky en los años 50. Modelos probabilísticos del lenguaje natural: basados en datos La aproximación es a la inversa: los lingüistas recogen colecciones de ejemplos y datos (corpus) y a partir de ellos se calculan las frecuencias de diferentes unidades lingüísticas (letras, palabras, oraciones) y su probabilidad de aparecer en un contexto determinado. Calculando esta probabilidad, se puede predecir cuál será la siguiente unidad en un contexto dado, sin necesidad de recurrir a reglas gramaticales explícitas.
  • 6. Es el paradigma de “aprendizaje automático” que se ha impuesto en las últimas décadas en Inteligencia Artificial: los algoritmos infieren las posibles respuestas a partir de los datos observados anteriormente en el corpus. Componentes del procesamiento del lenguaje natural A continuación, vemos algunos de los componentes del procesamiento del lenguaje natural. No todos los análisis que se describen se aplican en cualquier tarea de PLN, sino que depende del objetivo de la aplicación. 1. 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éxicas compuestas. Es esencial para la información básica: categoría sintáctica y significado léxico. 2. 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). 3. Análisis semántico. Proporciona la interpretación de las oraciones, una vez eliminadas las ambigüedades morfosintácticas. 4. 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. Un análisis morfológico, sintáctico, semántico o pragmático se aplicará dependiendo del objetivo de la aplicación. Por ejemplo, un conversor de texto a voz no necesita el análisis semántico o pragmático. Pero un sistema conversacional requiere información muy detallada del contexto y del dominio temático.
  • 7. Linkografia https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/tareas-que-realiza- un-lenguaje-ensamblador/ https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/que-ventajas-hay- en-cuanto-al-uso-de-c-como-lenguaje-destino-para-un-compilador/ https://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/que-ventajas-hay- para-un-sistema-de-procesamiento-de-lenguajes-en-el-cual-el-compilador-produce-un-lenguaje- ensamblador-en-vez-de-un-lenguaje-maquina/ http://equipo5241v.blogspot.com/2010/05/comparacion-interpretes-y-compiladores.html http://www.cavsi.com/preguntasrespuestas/cual-es-la-diferencia-entre-interprete-y-compilador/ http://www.iic.uam.es/inteligencia/que-es-procesamiento-del-lenguaje-natural/ http://www.vicomtech.org/t4/e11/procesamiento-del-lenguaje-natural https://medium.com/@pharesdiego/javascript-un-lenguaje-compilado-o-interpretado-962ee405e123 https://uniwebsidad.com/libros/javascript/capitulo-1 https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=777:ique-es- javascript-principales-usos-servidor-y-cliente-html-css-y-programacion-efectos- cu01103e&catid=78&Itemid=206 https://docs.microsoft.com/es-es/dotnet/csharp/getting-started/introduction-to-the-csharp-language- and-the-net-framework