domingo, 10 de agosto de 2014

Tarea



ACTIVIDAD 2

1.- Seleccione  un artículo de una revista científica que contenga una investigación y analice su marco teórico.


Nombre del artículo:

Aplicación de patrones de diseño:    Diseño de un interpretador orientado al objeto

Luego establezca lo siguiente:

¿Cuál es el índice (Explícito) del marco teórico de la investigación?

Su índice explicito que está muy bien realizado porque explica;

·         El nombre del patrón

·         El problema

·         La solución

·         Las consecuencias

·         Explica paso a paso de que se trata este trabajo.



¿El marco teórico está completo?

No, faltan algunas referencias para que esta investigación este bien sustentada.



¿Está relacionado con el problema de investigación?

Sí, porque todo lo que se habla en el problema de investigación es que lo que se quieres llegar a solucionar.



¿Cree usted que ayudó al investigador o los investigadores en su estudio?

No



¿De qué manera?

No he ayudado en nada porque no he aportado en la investigación.



2.- Respecto al planteamiento del problema de investigación que eligió  busque, diez referencias y extraiga de ellas la información pertinente



El interpretador contribuirá al aprendizaje de construcción de intérpretes o compiladores, sirviendo como un caso de estudio para aquellas personas que tengan como objetivo profundizar en el tema, y por consiguiente un posible punto de partida para futuros trabajos. Por otro lado, es necesario validar los resultados obtenidos por el optimizador, así como la eficiencia de la forma implementación escogida, por lo que se incluye también una experimentación numérica que permite comprobar las hipótesis planteadas al inicio. (Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código, Gómez Díaz, Renzo Gonzalo; Salamanca Guillén, Juan Jesús)



El modelo basado en prototipos es de hecho muy interesante, pues llega a ser capaz de representar el modelo basado en clases. Pooi (Prototype-based Object-Oriented Interpreter), un pequeño intérprete de objetos cuyo fin último es el de servir de ejemplo sencillo del funcionamiento interno de estos lenguajes, así como de ser una herramienta con la que los alumnos puedan experimentar en su tiempo no presencial.

(Pooi, un intérprete de un lenguaje orientado a objetos basado en prototipos para la educación, Francisco Ortín Soler y Baltasar García Perez-Schofield)





Un intérprete es un programa que analiza y ejecuta simultáneamente un programa escrito en un lenguaje fuente.   Los intérpretes, por definición, realizan la fase de análisis y ejecución a la vez, lo cual imposibilita tales optimizaciones. Por esta razón, los sistemas interpretados suelen ser menos eficientes que los compilados. No obstante, los nuevos avances informáticos aumentan la velocidad de procesamiento y capacidad de memoria de los ordenadores. (Intérpretes y Diseño de Lenguajes de Programación, José Emilio Labra Gayo, Juan, Manuel Cueva Lovelle, Raúl Izquierdo Castañedo, Aquilino Adolfo Juan Fuente, Mª, Cándida Luengo Díez, Francisco Ortín Soler)







Cuando se utiliza la programación Orientada a Objeto el programa usuario se organiza en la memoria. Cada clase tiene una zona de atributos y otra para los métodos. (Intérprete en lenguaje ensamblador orientado a objeto para plcs, Ing. Elizabeth moca Ibarra)



La Programación Orientada a Objetos es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. La programación orientada a objetos es una nueva forma de programar que trata de encontrarle una solución a estos problemas. (Los lenguajes de informática orientados a objetos y orientados a eventos, Ing. Emilio Cordero Vindas)



Un buen software refleja su comportamiento durante su ejecución y la estructura y la organización del código fuente y en la documentación asociada. (Ingeniería de software, Sommerville I, editorial Addison-Wesley)


La programación orientada a objetos presenta una gran ventaja para el desarrollo de sistemas informáticos, especialmente para su mantenimiento y adaptabilidad de los cambios de procesos. (Fundamentos de programación, Ricardo Espín)


Las instrucciones de un programa son códigos numéricos almacenados en la memoria del computador. (Programación orientada a objeto Michael González Harbour, 23/sept/13)

 


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. (Compilador e interpretador Francisco J. Leal A. Ing. En telecomunicaciones)




Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución. (Intérpretes y Compiladores, Daniel M. 2006)



3.- Elija dos o más teorías que hagan referencia al mismo fenómeno y compárelas.



Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. (Fundamentos de programación “Compiladores e intérpretes”, Héctor Valencia Solórzano)



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). (Compilador e Interprete, José G. 2012)



Comparación: en la primera referencia habla de que un intérprete permite utilizar funciones y operadores más potentes pero en la segunda describe que 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 de eso son más flexibles.



4.-Construya un marco teórico pertinente para el problema de investigación que eligió desde el inicio.



Marco teórico

Lenguajes de programación e Intérpretes

Lenguajes de programación

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.



Los primeros lenguajes

Los primeros lenguajes (llamados lenguajes ensamblador) están basados en símbolos o nemónicos que se correspondían directamente con instrucciones de código máquina (el código capaz de interpretar un ordenador sin necesidad un intérprete o traductor)



Los lenguajes C

Los lenguajes C son los de más repercusión en la historia de los ordenadores y su sintaxis ha servido como punto de partida para otros lenguajes como Java, C++ o C#.



Los lenguajes orientados a objetos

Se trataba de una nueva forma de programar hacía más fácil escribir y mantener código, porque se asemejaba más con la forma de pensar del cerebro humano. Pronto los lenguajes evolucionaron a sus respectivas versiones orientadas a objetos.



Los lenguajes utilizados actualmente

A pesar de su antigüedad el lenguaje C sigue siendo muy utilizado, sobre todo en aplicaciones relacionadas muy directamente con el hardware. El lenguaje cobol también se utiliza mucho también en entidades bancarias y grandes empresas.



Para el desarrollo de aplicaciones orientadas a internet, el lenguaje java y los lenguajes de la plataforma. Net de Microsoft. Existen otros programas que cada vez cobran más importancia como Ruby, Peerl, Phyton o PHP.



Años que aparecieron los diferentes lenguajes de programación

En 1957 aparece el lenguaje fortran.

En 1960 aparece LISP.

En 1960 aparece COBOL.

En 1964 se crea el lenguaje BASIC.

El lenguaje PASCAL aparece por primera vez en 1971.

En 1972, Kenneth L. Thompson y Dennis crean el lenguaje C.

En 1968 el lenguaje C++.

Java es un  lenguaje orientado a objetos diseñado en 1990.

                              

Interpretes

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.

                              

Un intérprete es un programa que analiza y ejecuta simultáneamente un programa escrito en un lenguaje fuente.   Los intérpretes, por definición, realizan la fase de análisis y ejecución a la vez, lo cual imposibilita tales optimizaciones. Por esta razón, los sistemas interpretados suelen ser menos eficientes que los compilados. No obstante, los nuevos avances informáticos aumentan la velocidad de procesamiento y capacidad de memoria de los ordenadores. (Intérpretes y Diseño de Lenguajes de Programación, José Emilio Labra Gayo, Juan, Manuel Cueva Lovelle, Raúl Izquierdo Castañedo, Aquilino Adolfo Juan Fuente, Mª, Cándida Luengo Díez, Francisco Ortín Soler)



Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. (Fundamentos de programación “Compiladores e intérpretes”, Héctor Valencia Solórzano)

 


Ventajas de un intérprete




·          Flexibilidad: permite realizar acciones complejas, imposibles o muy difíciles con un compilador, como las siguientes:

o    Ejecución de cadenas de caracteres mediante operadores como "execute", "interprete" o "evalquote".

o    Modificar sobre la marcha el significado de los símbolos e incluso prescindir por completo de las declaraciones.

o    Obtener un ligamiento dinámico completo en los sistemas orientados a objetos.

o    Simplificar la gestión de memoria en los programas fuente.

·          Facilidad de depuración de programas: la interpretación puede interrumpirse en cualquier momento para examinar o modificar los valores de las variables o la situación en la ejecución. La tabla de símbolos está disponible. Se pueden corregir los errores y continuar. Trazas y paradas programadas. Saltos en el programa. Abandonos de subrutinas.

·          Rapidez en el desarrollo.



Desventajas de un intérprete


  • Velocidad: usualmente un orden de magnitud menor que la de un programa compilado.
  • Tamaño del programa objeto, que exige añadir el intérprete al programa propiamente dicho.

Uso de los intérpretes


Los intérpretes se usan principalmente:

  • Para el desarrollo de prototipos.
  • Para la enseñanza.
  • Cuando el lenguaje tiene características que exigen un intérprete (Lisp, APL, REXX, Smalltalk, Prolog).
  • Cuando el lenguaje dispone de operadores muy potentes, lo que significa que la mayor parte del tiempo los programas están ejecutando código rápido prefabricado, más que los programas fuente del programador (APL, SNOBOL).
  • Para obtener independencia de la máquina (JAVA).
  • Para aumentar la seguridad (JAVA).

Tipos de estructura de intérpretes


  • Algunos intérpretes utilizan una tabla de símbolos de tamaño fijo, cuyos elementos apuntan directamente a la memoria asignada a las variables.
  • Otros tienen tablas de símbolos cuyo tamaño puede modificarse de forma dinámica.
  • En algunos, la tabla de símbolos no apunta directamente a la memoria asignada a las variables, sino que lo hace a través de una tabla de referencias intermedia, que lleva la cuenta del número de punteros que apuntan en un momento dado al objeto de que se trate. Esto simplifica la recolección de desechos y la gestión de la memoria, a costa de aumentar el tiempo de acceso a las variables, pues hay que atravesar un direccionamiento indirecto más.

Conclusiones

Un intérprete es muy necesario porque permite utilizar funciones y operadores más potentes. También analiza y ejecuta simultáneamente un programa escrito en un lenguaje fuente.   Los intérpretes, por definición, realizan la fase de análisis y ejecución a la vez, lo cual imposibilita tales optimizaciones. Por esta razón, los sistemas interpretados suelen ser menos eficientes que los compilados. No obstante, los nuevos avances informáticos aumentan la velocidad de procesamiento y capacidad de memoria de los ordenadores.





Bibliografías



(Fundamentos de programación “Compiladores e intérpretes”, Héctor Valencia Solórzano)



(Intérpretes y Diseño de Lenguajes de Programación, José Emilio Labra Gayo, Juan, Manuel Cueva Lovelle, Raúl Izquierdo Castañedo, Aquilino Adolfo Juan Fuente, Mª, Cándida Luengo Díez, Francisco Ortín Soler)

 


(Compilador e interpretador Francisco J. Leal A. Ing. En telecomunicaciones)









No hay comentarios:

Publicar un comentario