SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
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

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgarjimsaso
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretesInfomania pro
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...Domitho Ibarra
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compiladorElba Sepúlveda
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...carolina peña
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...Kareen's Maldonado
 

La actualidad más candente (18)

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgar
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
 
Universidad fermín toro
Universidad fermín toroUniversidad fermín toro
Universidad fermín toro
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
 

Similar a Ensambladores y Compiladores

Similar a Ensambladores y Compiladores (20)

Traductores bajo-nivel
Traductores bajo-nivelTraductores bajo-nivel
Traductores bajo-nivel
 
Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
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
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
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
 
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
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
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
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
 

Más de Andres Pozo

Taller n25 practica phishing
Taller n25 practica phishingTaller n25 practica phishing
Taller n25 practica phishingAndres Pozo
 
Instalacion Herramientas Practica
Instalacion Herramientas PracticaInstalacion Herramientas Practica
Instalacion Herramientas PracticaAndres Pozo
 
Análisis de Metadatos y Cookies de Navegación
Análisis de Metadatos y Cookies de NavegaciónAnálisis de Metadatos y Cookies de Navegación
Análisis de Metadatos y Cookies de NavegaciónAndres Pozo
 
Informatica Forense
Informatica ForenseInformatica Forense
Informatica ForenseAndres Pozo
 
Principios de analisis forense
Principios de analisis forensePrincipios de analisis forense
Principios de analisis forenseAndres Pozo
 
Perito Informatico
Perito InformaticoPerito Informatico
Perito InformaticoAndres Pozo
 
Taller n15 analisis ley proteccion datos
Taller n15 analisis ley proteccion datosTaller n15 analisis ley proteccion datos
Taller n15 analisis ley proteccion datosAndres Pozo
 
Ley de proteccion de datos personales
Ley de proteccion de datos personalesLey de proteccion de datos personales
Ley de proteccion de datos personalesAndres Pozo
 
Firma electronica
Firma electronicaFirma electronica
Firma electronicaAndres Pozo
 
Analisis de la firma electronica en Ecuador
Analisis de la firma electronica en EcuadorAnalisis de la firma electronica en Ecuador
Analisis de la firma electronica en EcuadorAndres Pozo
 
Clasificación de contratos informáticos
Clasificación de contratos informáticosClasificación de contratos informáticos
Clasificación de contratos informáticosAndres Pozo
 
Instalacion vegas pro
Instalacion vegas proInstalacion vegas pro
Instalacion vegas proAndres Pozo
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semánticoAndres Pozo
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintacticoAndres Pozo
 
Compiladores manuales java c visual basic
Compiladores manuales java c visual basicCompiladores manuales java c visual basic
Compiladores manuales java c visual basicAndres Pozo
 
Compilador cruzado
Compilador cruzadoCompilador cruzado
Compilador cruzadoAndres Pozo
 

Más de Andres Pozo (20)

Taller n25 practica phishing
Taller n25 practica phishingTaller n25 practica phishing
Taller n25 practica phishing
 
Instalacion Herramientas Practica
Instalacion Herramientas PracticaInstalacion Herramientas Practica
Instalacion Herramientas Practica
 
Análisis de Metadatos y Cookies de Navegación
Análisis de Metadatos y Cookies de NavegaciónAnálisis de Metadatos y Cookies de Navegación
Análisis de Metadatos y Cookies de Navegación
 
Informatica Forense
Informatica ForenseInformatica Forense
Informatica Forense
 
Principios de analisis forense
Principios de analisis forensePrincipios de analisis forense
Principios de analisis forense
 
Perito Informatico
Perito InformaticoPerito Informatico
Perito Informatico
 
Taller n15 analisis ley proteccion datos
Taller n15 analisis ley proteccion datosTaller n15 analisis ley proteccion datos
Taller n15 analisis ley proteccion datos
 
Ley de proteccion de datos personales
Ley de proteccion de datos personalesLey de proteccion de datos personales
Ley de proteccion de datos personales
 
Firma electronica
Firma electronicaFirma electronica
Firma electronica
 
Analisis de la firma electronica en Ecuador
Analisis de la firma electronica en EcuadorAnalisis de la firma electronica en Ecuador
Analisis de la firma electronica en Ecuador
 
Clasificación de contratos informáticos
Clasificación de contratos informáticosClasificación de contratos informáticos
Clasificación de contratos informáticos
 
Instalacion vegas pro
Instalacion vegas proInstalacion vegas pro
Instalacion vegas pro
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Compiladores manuales java c visual basic
Compiladores manuales java c visual basicCompiladores manuales java c visual basic
Compiladores manuales java c visual basic
 
Fortran
FortranFortran
Fortran
 
Compilador cruzado
Compilador cruzadoCompilador cruzado
Compilador cruzado
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Vb decompilador
Vb decompiladorVb decompilador
Vb decompilador
 

Último

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Ensambladores y Compiladores

  • 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