34
Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación Elaborado por: Ing. Víctor Valencia

Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación

Elaborado por: Ing. Víctor Valencia

Page 2: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

• Diálogo • Especificaciones • División • Definición de abstracción • Codificación • Pruebas y verificación • Presentación.

Metodología para la resolución de problemas de algoritmia

Page 3: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

En el primer paso en el proceso de solución a un problema se debe determinar de manera clara y concisa la siguiente información: • Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos información

total o parcial útil en la búsqueda de los objetos desconocidos. • Las condiciones, aquellas relaciones establecidas entre los objetos conocidos y los

desconocidos. Para esto se deben encontrar entre otras, la dependencia entre los valores de los objetos desconocidos de los valores de los objetos conocidos y que restricciones le impone al planteamiento del problema a dichos objetos.

• Los valores posibles que pueden tomar los objetos desconocidos.

Page 4: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Ejemplo: sean los puntos P=( a , b ) y Q=( c , d ) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pase por el punto medio de los puntos dados. Objetos Desconocidos Un segmento de la recta.

Objetos Conocidos Los puntos P y Q.

Condiciones

el segmento de la recta debe pasar

por el punto medio entre P y Q, y

debe ser perpendicular a la recta

trazada entre P y Q.

Page 5: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Después de entender totalmente el problema a resolver (lo cual se consigue con la etapa del diálogo), se debe realizar una especificación del algoritmo que permita encontrar su solución. Un algoritmo que no esté claramente especificado puede ser interpretado de diferentes maneras y al diseñarlo se puede terminar con un algoritmo que no sirve para solucionar el problema. La especificación de un algoritmo se hace mediante una descripción clara y precisa de: 1. Las entradas que el algoritmo recibirá. 2. Las salidas que el algoritmo proporcionará. 3. La dependencia que mantendrán las salidas obtenidas con las entradas recibidas.

Especificar entradas las entradas corresponden a los objetos

conocidos.

Especificar salidas las entradas corresponden a algunos de los

objetos desconocidos.

Especificar condiciones se especifican claramente como dependen

las entradas de las salidas.

Page 6: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Es el paso en el que a partir de la especificación del algoritmo se divide el proceso (algoritmo en abstracto) en varios subprocesos hasta llegar al nivel de instrucción. Durante el proceso de división se determina la estructura de control adecuada, ya sea, secuencia, selección, repetición, asignación, lectura o escritura, que se puede asociar con cada subproceso obtenido. Tanto los pasos intermedios de subdivisión como el resultado final pueden ser representados por un diagrama de flujo o pseudocódigo.

Page 7: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Es en el que se revisa que porciones del algoritmo se repiten o son muy utilizadas y con las cuales se construyen funciones y procedimientos. Identificar que secuencias de pasos se utilizan mas de una vez en diferentes partes del proceso.

Page 8: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Cuando ya se ha diseñado completamente el algoritmo y se tiene escrito en algún esquema de representación (pseudocódigo o diagrama de flujo), el siguiente paso es codificarlo en el lenguaje de programación definido para tal fin. En este momento es cuando el programador interactúa con el computador mediante la herramienta de software que disponga para codificar en el lenguaje seleccionado.

Page 9: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

La prueba realizadas al software se realizan para verificar la correcta ejecución de las sección de código creadas y si la aplicación cumple con la especificación anteriormente creada.

Page 10: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Detallan la solución, el proceso que siguieron para lograrla, sus características técnicas (especificaciones, rendimiento, etc.) y justifican las ventajas que presenta. Nota: La metodología para la resolución de problemas de algoritmia no se sigue en forma lineal, sino que entre las etapas hay retroalimentación que permite ir y venir entre cada una de ellas.

Page 11: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación

Elaborado por: Ing. Víctor Valencia

Page 12: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

• Definición de lenguajes de programación. • Principios de los lenguajes de programación. • Historia y evolución de los lenguajes de

programación. • Clasificación según: abstracción, forma de

ejecución y paradigmas de programación. • Interpretadores (traductores) y compiladores.

Introducción a la Programación

Page 13: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Cualquier notación para la descripción de algoritmos y estructuras de datos puede llamarse lenguaje de programación, sin embargo, también es requerido que el lenguaje sea implementado en un computador. • Medio de Comunicación entre el Hombre y la Máquina. • Lenguaje usado para dar instrucciones a la máquina . Permite que el programador exprese el procesamiento de datos de una forma simbólica, sin tener en cuenta los detalle específicos de la máquina.

Page 14: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Características de un buen lenguaje de programación • Claridad y Simplicidad • Unificación de Conceptos • Soporte para Abstracción (énfasis en el “¿Qué hace?” más en el “¿Cómo lo hace?”) • Facilidad de Verificación • Ambiente de programación • Portabilidad • Costo de Ejecución • Costo de Creación, Prueba y Uso

Page 15: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Tras el desarrollo de las primeras computadoras surgió la necesidad de programarlas para que realizaran las tareas deseadas. Los lenguajes más primitivos fueron los denominados lenguajes máquina. Como el hardware se desarrollaba antes que el software, estos lenguajes se basaban en el hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era un trabajo costoso, válido sólo para esa máquina en concreto. El primer avance fue el desarrollo de las primeras herramientas automáticas generadoras de código fuente. Pero con el permanente desarrollo de las computadoras, y el aumento de complejidad de las tareas, surgieron a partir de los años 50 los primeros lenguajes de programación de alto nivel. Con la aparición de los distintos lenguajes, solían aparecer diferentes versiones de un mismo lenguaje, por lo que surgió la necesidad de estandarizarlos para que fueran más universales. Las organizaciones que se encargan de regularizar los lenguajes son ANSI (Instituto de las Normas Americanas) e ISO (Organización de Normas Internacionales).

Page 16: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

• Ensamblador • Fortran (IBM - 1957) • Cobol (CODASYL/DoD - 1960)

1950 - 1960

• Basic ( John Kemeny y Thomas Kurtz - 1964) • Pascal (Niklaus Wirth - 1970)

1961 - 1970

• C (Dennis Ritchie y Bell Labs - 1972) • Prolog ( Alain Colmerauer , Philippe Roussel y otros - 1972) • SQL (IBM – 1974/1986) • Scheme (Guy L. Steele y Gerald Jay Sussman - 1975)

1971 -1980

Page 17: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

• C++ (Bjarne Stroustrup - 1983) • Perl (Larry Wall - 1987) • Haskell (Universidad de Yale y Glasgow - 1990) • Python (Guido van Rossum – 1990/1991)

1981 – 1990

• Java (Sun Microsystems - 1995) • Ruby (Yukihiro Matsumoto - 1995) • PHP (Rasmus Lerdorf - 1995) • D (Walter Bright -1999) • C# (Microsoft – 2000/2001)

1991 – 2000

• Rust (Graydon Hoare/Mozilla - 2006) • Go (Google - 2009) • Dart (Google - 2011)

2001 – Actualidad

Page 18: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Según su Nivel de Abstracción

Bajo Nivel Medio Nivel Alto Nivel

Page 19: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes de bajo nivel Se llaman de bajo nivel porque están muy cercanos al hardware del ordenador. Es necesario conocer a fondo la arquitectura de la máquina para la que se va a programar. El primer lenguaje de este tipo que se utilizó fue el lenguaje máquina, que consiste en un conjunto de instrucciones en binario, es decir, con ceros y unos, con los cuales se indica al ordenador qué hacer. Este lenguaje es muy complicado y la posibilidad de cometer errores es muy alta, por lo que ya no se utiliza. Para solventar estas dificultades apareció el lenguaje ensamblador, que consiste en asignar una abreviatura a cada instrucción en binario, de forma que sea más fácil recordarla y más difícil equivocarse. Sin embargo, con este lenguaje sigue siendo necesario conocer muy bien el hardware del ordenador.

Page 20: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes de bajo nivel •Son comprensibles directamente por la máquina (aunque el ensamblador necesita una pequeña traducción) •Los programas se ejecutan muy rápidamente (si están bien escritos, claro) •Ocupan menos espacio en memoria •Permiten controlar directamente el hardware, por lo que son apropiados para la programación de sistemas

Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador, como se muestra en la siguiente figura:

Page 21: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes de medio nivel Es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser 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).

Page 22: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes de alto nivel Es aquel que se aproxima más al lenguaje natural humano que al lenguaje binario de las computadoras, el que se conoce como lenguaje de bajo nivel. Su función principal radica en que a partir de su desarrollo, existe la posibilidad de que se pueda utilizar el mismo programa en distintas máquinas, es decir que es independiente de un hardware determinado. La única condición es que la PC tenga un programa conocido como traductor o compilador, que lo traduce al lenguaje específico de cada máquina. Y además, al utilizar palabras del lenguaje humano (por lo general el inglés) es más práctico y fácil de manipular para el programador de manera que no corre tantos riesgos de equivocarse como si es más factible de caer en el error con el binario. De esta manera, el programador puede concentrarse más en el programa en sí que en el lenguaje y, por otra parte, se reducen los tiempos de creación del programa, incluso en caso de que tenga que hacer modificaciones, son mucho más fáciles de hacer.

Page 23: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: case, if, for, while, etc. para construir con ellas instrucciones como: if( numero > 0)printf( "El número es positivo" )

Traducido al castellano viene a decir que: si numero es mayor que cero, entonces, escribir por pantalla el mensaje: "El número es positivo".

Page 24: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Alto Nivel

Medio Nivel

Bajo

Nivel

Usuario

Computador

Page 25: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Según la Forma de Ejecución

Lenguajes Compilados

Lenguajes Interpretados

Page 26: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes Compilados es un lenguaje de programación que suele necesitar de un compilador para ejecutar programas escritos en éste. Contrasta con los lenguajes interpretados. En teoría, cualquier lenguaje de programación puede ser tanto interpretado como compilado; la distinción entre lenguajes interpretados y lenguajes compilados es puramente una cuestión de práctica y conveniencia, y no por propiedades inherentes al lenguaje. De hecho, muchos lenguajes son implementados tanto por compiladores como por intérpretes (por ejemplo, Lisp, Basic, Python...). En otros casos, el código fuente de un programa es traducido a una forma intermedia (a menudo llamada bytecode), la cual luego debe ser interpretada o compilada para ejecutarse. Ventajas de los lenguajes compilados En general, un programa compilado suele ejecutarse mucho más rápido que el mismo interpretado.

Page 27: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes Interpretados Es el lenguaje cuyo código no necesita ser preprocesado mediante un compilador, eso significa que el ordenador es capaz de ejecutar la sucesión de instrucciones dadas por el programador sin necesidad de leer y traducir exhaustivamente todo el código. Para que esto sea posible hace falta un intermediario, un programa encargado de traducir cada instrucción escrita con una semántica 'humana' a Código máquina (instrucciones de la CPU del ordenador), este programa recibe el nombre de interprete (en ingles parser). El interprete se encarga de leer una a una las instrucciones textuales del programa conforme estas necesitan ser ejecutadas y descomponerlas en instrucciones del sistema, además se encarga de automatizar algunas de las tareas típicas de un programador como declaraciones de variables o dependencias, de esta manera el proceso de programar se suele agilizar mucho lo cual repercute en la eficiencia del que tiene que escribir el código.

Page 28: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Lenguajes Interpretados Ventajas: La principal ventaja de un lenguaje interpretado es que es independiente de la máquina y del sistema operativo ya que no contiene instrucciones propias de un procesador sino que contiene llamadas a funciones que el interprete deberá reconocer. Basta que exista un interprete de un lenguaje para dicho sistema y todos los programas escrito en ese lenguaje funcionaran. Además un lenguaje interpretado permite modificar en tiempo de ejecución el código que se está ejecutando así como añadirle nuevo, algo que resulta idóneo cuando queremos hacer pequeñas modificaciones en una aplicación y no queremos tener que recompilarla toda cada vez. Desventajas: Velocidad. Es el aspecto más notable y el cual se debe evaluar a fondo al crear software con este tipo lenguajes, pues se debe equilibrar la portabilidad con la velocidad que se está sacrificando. A menos que las prestaciones de los equipos informáticos sean bastante altas, en el caso cual, se podría despreciar este aspecto. Los lenguajes interpretados más famosos en la actualidad son PHP, ASP, Perl, Python, TCL y Bash.

Page 29: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Según el paradigma de programación

Lenguajes Imperativos

Estructurada

Orientada a Objetos

Lenguajes Declarativos

Funcional

Lógica

Page 30: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Programación Imperativa El programa detalla los pasos necesarios para realizar un tarea. Existe un estado global de programa que es modificado por una secuencia de órdenes o instrucciones Programación Estructurada Los programas se particionan en múltiples tareas que encierran funciones bien definidas y limitan la visibilidad de los datos. Además, impone restricciones en el diseño de los algoritmos que facilitan su posterior modificación y mantenimiento. Programación Orientada a Objetos (POO) Introduce el concepto de objeto como forma de encapsular algoritmos y datos en una unidad indivisible, con el fin de que los programas simulen el comportamiento de los objetos del mundo real.

Page 31: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Programación Declarativa Los programas describen el resultado a obtener y los mecanismos disponibles, pero no detallan los pasos necesarios para obtenerlo Programación Funcional Emplea expresiones funcionales para combinar valores básicos y obtener los resultados deseados. Programación Lógica Se basa en el cálculo de predicados para obtener resultados a partir de hechos básicos y mediante la aplicación de reglas de inferencia.

Page 32: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a traducir un libro a otra lengua. Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Utilizan un programa llamado máquina virtual el cual es el encargado de ir leyendo y ejecutando las instrucciones una por una, estos funcionan en distintos Sistemas Operativos y por lo tanto, no es necesario modificar el código fuente si se quiere hace funcionar el programa en otro sistema operativo.

Page 33: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

Tras el desarrollo de las primeras computadoras surgió la necesidad de programarlas para que realizaran las tareas deseadas. Los lenguajes más primitivos fueron los denominados lenguajes máquina. Como el hardware se desarrollaba antes que el software, estos lenguajes se basaban en el hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era un trabajo costoso, válido sólo para esa máquina en concreto. El primer avance fue el desarrollo de las primeras herramientas automáticas generadoras de código fuente. Pero con el permanente desarrollo de las computadoras, y el aumento de complejidad de las tareas, surgieron a partir de los años 50 los primeros lenguajes de programación de alto nivel. Con la aparición de los distintos lenguajes, solían aparecer diferentes versiones de un mismo lenguaje, por lo que surgió la necesidad de estandarizarlos para que fueran más universales. Las organizaciones que se encargan de regularizar los lenguajes son ANSI (Instituto de las Normas Americanas) y ISO (Organización de Normas Internacionales).

Page 34: Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación · 2012-07-31 · hardware, con lo que cada máquina tenía su propio lenguaje y por ello la programación era

Elaborado por: Ing. Víctor Valencia

•http://www.carlospes.com/minidiccionario/lenguaje_de_bajo_nivel.php •http://www.ramip.net/lenguajes-de-programacion/lenguajes-de-bajo-nivel.html •http://blog.enfemenino.com/blog/seeone_340718_7179169/INFORMATICA/LENGUAJE-DE-NIVEL-MEDIO •http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html •http://miblogdeti.blogspot.com/2011/07/compiladore-interpretes-y-algoritmos.html