Subscribe:

Ads 468x60px

Featured Posts

viernes, 28 de octubre de 2016

BIENVENIDOS...

Si buscas información de este tema tan interesante como es compiladores, pues aquí puedes encontrarla, te invito a mi blog....

NOCIONES BÁSICAS GENERALES DEL COMPILADOR






-          Compilador: Es un programa que lee un programa escrito en un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente a otro lenguaje, el lenguaje objeto.




-          Intérprete: En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las operaciones que implica el programa fuente.

-         Programa Fuente: hay miles de lenguajes fuente, desde los lenguajes de programación tradicionales, hasta los lenguajes especializados.

-          Programa Objeto: son igualmente variados, un lenguaje objeto puede ser otro lenguaje de programación o el lenguaje de máquina.

-          Lenguaje de Programación: es un conjunto de pautas o nociones que se utilizan para realizar un procedimiento o proceso.




FASES DEL COMPILADOR



-          Fase de Análisis: Tiene como finalidad almacenar la línea de código y verificarla con las pautas del lenguaje de programación.


-          Fase de Síntesis: Tiene como finalidad convertir la línea de código analizada en el lenguaje de bajo nivel enlazándola a un archivo objeto.

jueves, 27 de octubre de 2016

INTERPRETE


En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y de puración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

miércoles, 26 de octubre de 2016

PROGRAMA OBJETO - PROGRAMA FUENTE

PROGRAMA OBJETO
-Es aquel programa que se encuentra en lenguaje máquina y que ya es ejecutable por esta.
-Es el resultado de traducir un programa fuente para obtener un lenguaje comprensible por la máquina.

Programación orientada a objetos (OOPS); es una técnica de programación que utiliza objetos como bloque esencial de construcción, es un tipo de programación mas cercana al razonamiento humano; surge como una solución a la programación de grandes programas, y para solventar el mantenimiento de dichas aplicaciones, ya que en la programación estructura el más mínimo cambio supone la modificación de muchas funciones relacionadas, en cambio con la OOPS solo es cuestión de añadir o modificar métodos de una clase o mejor, crear una nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para programar de esta forma, Smalltalk y C++.


*PROGRAMA FUENTE 
-Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al lenguaje de la maquina, es decir el programa que no está en código de máquina y que por lo tanto no puede ser ejecutable.

-Es aquel que nos permite escribir un algoritmo mediante un lenguaje formal. Por eso al código desarrollado al programar se le llama código fuente.

martes, 25 de octubre de 2016

FASES DE UN COMPILADOR


Las tres primeras fases de un compilador suelen agrupan en un sola fase llamada Análisis del programa a compilar y las tres ultimas en una sola fase llamada Síntesis de un programa en lenguaje maquina.




En la fase de análisis se encuentran:


Análisis Léxico: Esta fase se encarga de verificar si una cadena de entrada del código fuente pertenece o no al lenguaje, es decir se realiza un análisis símbolo a símbolo indicando el tóken para cada una de las cadenas reconocidas o un error en caso de no reconocer la cadena.



Análisis Sintáctico: En esta fase se analiza la estructura de las expresiones en base a gramáticas en base a reglas que determinar si una cadena de entrada del código fuente es valida. El  análisis que se realiza es jerárquico ya que se obtiene arboles de derivación de las mismas gramáticas especificadas en el lenguaje.



Análisis Semántico: Este análisis es mucho mas difícil de formalizar que el sintáctico ya que tiene que verificar que el árbol sintáctico tenga un significado valido dentro de las reglas  especificadas en el  lenguaje. El análisis semántico verifica que:
·         En una asignación, el tipo de la variable concuerde con el tipo de la expresión asignada.
·         Que las variables estén declaradas antes de ser usadas.

En la fase de Síntesis se encuentran las siguientes:

Generación de código intermedio: Esta fase se ocupa de generar instrucciones para la maquina virtual genéricaa partir del análisis de las primeras tres fases.
Ej.:

a=b+c
1: + b c T1
2: = a T1

Optimización: Se encarga de transformar el código intermedio en uno equivalente que tenga menos lineas de código de menor tamaño y menor tiempo de ejecución.
Ej,:

a=b+c
1: + b c a
Generación de  código objeto: Es la fase final en la que se genera el código objeto el cual utiliza el conjunto de instrucciones especifico del CPU que por lo general es código maquina o código en lenguaje ensamblador.
Ej.:


a:=b+c

LOAD B
ADD C
STORE A

domingo, 23 de octubre de 2016

SISTEMA PARA EL PROCESAMIENTO DE UN LENGUAJE


 El procesamiento de lenguajes naturales —abreviado PLN, o NLP del idioma inglés Natural Language Processing— es un campo de las ciencias de la computación, inteligencia artificial y lingüística que estudia las interacciones entre las computadoras y el lenguaje humano. El PLN se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas y máquinas por medio de lenguajes naturales. El PLN no trata de la comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar mecanismos para comunicarse que sean eficaces computacionalmente —que se puedan realizar por medio de programas que ejecuten o simulen la comunicación—. Los modelos aplicados se enfocan no solo a la comprensión del lenguaje de por sí, sino a aspectos generales cognitivos humanos y a la organización de la memoria. El lenguaje natural sirve solo de medio para estudiar estos fenómenos. Hasta la década de 1980, la mayoría de los sistemas de PLN se basaban en un complejo conjunto de reglas diseñadas a mano. A partir de finales de 1980, sin embargo, hubo una revolución en PLN con la introducción de algoritmos de aprendizaje automático para el procesamiento del lenguaje.

El esquema general de la mayoría de los sistemas y métodos que involucran el procesamiento de lenguaje es el siguiente:
·     Primero, el texto no se procesa directamente sino se transforma en una representación formal que preserva sus características relevantes para la tarea o el método específico (por ejemplo, un conjunto de cadenas de letras, una tabla de base de datos, un conjunto de predicados lógicos, etc.).
·     Luego, el programa principal manipula esta representación, transformándola según la tarea, buscando en ella las subestructuras necesarias, etc.
·     Finalmente, si es necesario, los cambios hechos a la representación formal (o la respuesta generada en esta forma) se transforman en el lenguaje natural.
Entre las tareas principales del procesamiento de lenguaje natural se puede mencionar:
·     Recuperación de información,
·     Interfaces en lenguaje natural,
·     Traducción automática.

viernes, 21 de octubre de 2016

TIPOS DE COMPILADORES

Compiladores cruzados: generan código para un sistema distinto del que están funcionando.

Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.

Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.

Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.

Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.

Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.

Compilador con montador: Compila distintos módulos de forma independiente y después es capaz de aplazarlos.

Auto compilador: Compilador que está escrito en el mismo lenguaje que va a compilar.
Meta compilador: Es programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.

Descompilador: Es un programa que acepta como entrada código maquina y la traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilación.

Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.


Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.
 
Blogger Templates