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)
No hay comentarios:
Publicar un comentario