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
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
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
LOAD B
ADD C
STORE A
domingo, 23 de octubre de 2016
SISTEMA PARA EL PROCESAMIENTO DE UN 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.
Suscribirse a:
Entradas (Atom)