martes, 22 de febrero de 2011

TRADUCTOR


Un traductor es cualquier programa que toma como entrada un texto escrito en un
lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado
objeto.
En el caso de que el lenguaje fuente sea un lenguaje de programación de alto
nivel y el objeto sea un lenguaje de bajo nivel (ensamblador o código de máquina),
a dicho traductor se le denomina compilador. Un ensamblador es un compilador
cuyo lenguaje fuente es el lenguaje ensamblador. Un intérprete no genera un
programa equivalente, sino que toma una sentencia del programa fuente en un
lenguaje de alto nivel y la traduce al código equivalente y al mismo tiempo lo
ejecuta. Históricamente, con la escasez de memoria de los primeros ordenadores,
se puso de moda el uso de intérpretes frente a los compiladores, pues el programa
fuente sin traducir y el intérprete juntos daban una ocupación de memoria menor
que la resultante de los compiladores. Por ello los primeros ordenadores
personales iban siempre acompañados de un intérprete de BASIC (Spectrum,
Commodore VIC-20, PC XT de IBM, etc.). La mejor información sobre los errores
por parte del compilador así como una mayor velocidad de ejecución del código
resultante hizo que poco a poco se impusieran los compiladores. Hoy en día, y con
el problema de la memoria prácticamente resuelto, se puede hablar de un gran
predominio de los compiladores frente a los intérpretes, aunque intérpretes como
los incluidos en los navegadores de Internet para interpretar el código JVM de
Java son la gran excepción.

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 primeros (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 depuració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).
Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación pueden interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python, UCSD Pascal y Java).
Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.
En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.

COMPILADOR

Un compilador es un programa informatico que traduce un programa escrito en un lenguaje  de programacion a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de maquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilacion . Un compilador es un programa que permite traducir el  codigo fuente de un programa en lenguaje  de alto nivel a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora

martes, 8 de febrero de 2011

PROGRAMACION

La programación es el proceso de diseñar, escribir, probar, depurar y mantener el codigo fuente de proramas  computacionales. El código fuente es escrito en un lenguaje de programacion. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero si el diseño del código), aunque si suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

Programación e ingenieria del software
Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creación de software, desde el punto de vista de laingenieria, incluye los siguientes pasos:
  1. Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.
  2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
  3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
  4. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
  5. Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata.
  6. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).
La ingeniería del software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía únicamente en escribir el código.