jueves, 6 de mayo de 2010

Comparacion Interpretes y Compiladores






Un compilador acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se quiera.
En un compilador hay que distinguir tres lenguajes diferentes:
• el de los programas de partida (LA)
• el de los programas equivalentes traducidos (LB), normalmente el lenguaje de máquina
• el lenguaje en que está escrito el propio compilador (LC), que puede ser igual o diferente a uno de los otros dos.
Los programas interpretados suelen ser más lentos que los compilados, pero los intérpretes son más flexibles como entornos de programación y depuración. 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.


Ventajas de compilar frente a interpretar:
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 mas 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.


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.
Desventajas del intérprete frente al compilador:
• La ejecución es más lenta, pues cada intrucción debe ser traducida a código máquina tantas veces como sea ejecutada.
• No son adecuados en la fase de explotación del programa ya que el proceso de interpretación se ha de repetir cada vez que se ejecuta el programa, mientras que con la compilación, una vez obtenido el programa en leguaje máquina éste puede ser ejecutado sin necesidad de compilarlo de nuevo.


Un interprete es un traductor de lenguaje, igual que un compilador, pero difiere de éste en que ejecuta el programa fuente inmediatamente, en vez de generar un código objeto que se ejecuta después de que se completa la traducción. En principio, cualquier lenguaje de programación se puede interpretar o compilar, pero se puede preferir un interprete a un compilador dependiendo del lenguaje que se esté usando y de la situación en la cual se presenta la traducción.

Lenguajes de Programacion tipos (Compiladores e Interpretes)

COMPILADOR:

Es un programa que traduce los programas escritos en lenguajes de alto nivel a lenguaje máquina.
Los programas escritos en lenguajes de alto nivel se llaman programas fuente y
El programa traducido se llama programa objeto.
El compilador traduce sentencia a sentencia el programa fuente.
Algunos lenguajes compiladores típicos son:

C
C++
Pascal
FORTRAN
COBOL

INTERPRETES:

Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
Los programas interpretes clásicos son:

BASIC
QBASIC
QUICKBASIC
VISUALBASIC
SMALLTALK
JAVA

Lenguajes de Programacion

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.

Lenguajes de Alto Nivel:

La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico tiene ciertas ventajas:
• Mayor adaptación al equipo.
• Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
• Imposibilidad de escribir código independiente de la máquina.
• Mayor dificultad en la programación y en la comprensión de los programas.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguaje que evitaba los inconvenientes, a costa de ceder un poco en las ventajas.
Estos lenguajes se llaman “de tercera generación” o “de alto nivel”, en contraposición a los “de bajo nivel” o “de nivel próximo a la máquina”.
Principales lenguajes de alto nivel
• Ada • ALGOL • Basic • C (en realidad es un lenguaje de medio nivel). • C++ • CT • Clipper • Cobol • Fortran • Java • Lexico • Logo • Object Pascal • Pascal • Perl • PHP • PL/SQL • Python • Modula-2 • Lenguajes funcionales o Haskell o Lisp

Lenguajes de Medio Nivel:

Se dice del lenguajes de programación como C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Estos lenguajes son clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).

Lenguajes de Bajo Nivel:

Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
La palabra “bajo” no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware. Uso: ventajas e inconvenientes.
En general se utiliza este tipo de lenguaje para programar controladores (drivers).
La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico tiene ciertas ventajas:
• Mayor adaptación al equipo.
• Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
• Imposibilidad de escribir código independiente de la máquina.
• Mayor dificultad en la programación y en la comprensión de los programas.

miércoles, 5 de mayo de 2010

EDITORES

Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.
Por ejemplo, un editor
ASCII de 8 bits que lee el número binario 0110 0001 (decimal 97 ó hexadecimal 61) en el archivo lo representará en la pantalla por la figura a, que el usuario reconoce como la letra "a" y ofrecerá al usuario las funciones necesarias para cambiar el número binario en el archivo.


Editores de Caracter:

Situación
El uso de logos u otros ítems para ser usados en cualquier documento se puede volver engorroso con los métodos tradicionales.
Recomendación
Windows XP tiene una característica que permite personalizar logos o cualquier otro ítem para ser utilizado en cualquier documento. El Editor de Caracteres Privados (Private Character Editor) se puede acceder en digitando “Eudcedit” sin las comillas en la ruta Inicio/Ejecutar
Una vez haya construido y guardado el diseño de su selección, puede accederlo a través del Mapa de Caracteres, al cual se llega por la ruta
Inicio/Todos los programas/Accesorios/Mapa de caracteres.


Editores de Linea:

El editor de líneas se usa para crear o editar la Tabla de Definición de Campos y la Tabla de Selección de Campos Estas tablas están formadas por una o más líneas, cada una de las cuales representa un elemento descriptivo. Aunque cada tabla tiene una estructura propia de sus elementos, los comandos del editor de líneas en ambos casos es idéntico. Para cada nuevo elemento de la tabla creado, el editor de líneas presenta un renglón en el que se muestra la posición y longitud de cada campo con líneas de subrayado (en coincidencia con el encabezado de la tabla presentado en la parte de arriba de la pantalla, y que contiene los nombres correspondientes a cada campo), y posiciona el cursor en el primer campo donde se van a teclear los datos.

A continuacion se muestra como como aparece la pantalla cuando se va a teclear en la primera línea de una FST y de una FDT respectivamente.






Editores de Pantalla:
El editor más frecuente en Unix es vi. Es un editor que trabaja línea a línea y que muestra una pantalla de texto a la vez.
Para inciar una sesión de edición, se ejecuta el programa vi seguido del nombre del archivo a editar, y dado el caso también la trayectoria. Por ejemplo, para editar el arvhivo /tmp/borrame, basta con dar vi /tmp/borrame, o para editar un archivo en el directorio actual: vi borrame.
Si el archivo no existe vi lo crea. De igual manera, podemos simplemente invocar a vi, comenzar a escribir y despúes nombrar el archivo al momento de salvarlo.
Al ser ejecutado vi, presenta una pantalla con el texto del archivo, y las líneas después del final del archivo aparecen con el carácter ~ para indicar que a partir de ahí el archivo está vacio. Obviamente, si comenzamos a editar un archivo nuevo, todas las líneas aparecerán con éste carácter.
Tiene tres modos de trabajo. El modo de inserción, el de edición y el de comandos.

Lenguajes Formales

El lenguaje formal es aquel que el hombre ha desarrollado para expresar las situaciones que se dan en especifico en cada área del conocimiento científico. Las palabras y oraciones de un lenguaje formal son perfectamente definidas(una palabra mantiene su el mismo significado prescindiendo de su contexto o uso.

Los lenguajes formales son exentos de cualquier componente semántico fuera de sus operadores y relaciones. Los lenguajes formales pueden ser utilizados para modelar una teoría de la mecánica, fisica,matemática, ingeniería eléctrica, o de otra naturaleza, con la ventaja de que en estos toda ambigüedad es eliminada.
En resumen las características de los lenguajes formales son las siguientes:

1. Se desarrollan de una teoría preestablecida.
2. Componente semántico minimo.
3. Posibilidad de incrementar el componente semántico de acuerdo con la teoría a formalizar.
4. La sintaxis produce oraciones no ambiguas.
5. La importancia del rol de los números.
6. Completa formalización y por esto, el potencial de la construcción computacional.

Ejemplos de Lenguajes Formales:

  • Un conjunto de todas las palabras sobre {a,b}.
  • El conjunto {an : n} es un número primo.
  • El conjunto de todos los programas sintácticamente válidos en un determinado lenguaje de programación.
  • El conjunto de todas las fórmulas bien formadas en la lógica de primer orden.

Del Problema al Programa Cargado

El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.

Tabla de contenidos
1.Definición del problema
2.Análisis del problema
3.Selección de la mejor alternativa
4.Diagramación
5.Prueba de escritorio
6.Codificación
7.Trascripción
8.Compilación
9.Pruebas de computador
10.Documentación externa

Modelo Jhon Von Neumann


Jhon Von Neumann (28 de diciembre de 1903 - 8 de febrero de 1957) fue uno de los más grandes matemáticos del siglo XX. húngaro-estadounidense que realizó contribuciones importantes en física cuántica, análisis funcional, teoría de conjuntos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica (de explosiones), estadística y muchos otros campos de la matemática.
La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard).
La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las
interrupciones de dispositivos externos como ratón, teclado, etc).
Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.