Académique Documents
Professionnel Documents
Culture Documents
Politécnica
Reporte final - Trabajo práctico: Estructura de los lenguajes
Christian Felix Chilavert Acosta
Resumen:
El propósito del sistema es permitir procesar una lista de artículos científicos, los
cuales se encuentran en el formato PDF y almacenados en un directorio, de modo que
por cada archivo leído, sea posible obtener: Autor del artículo, título del artículo y
jornal en el cual fue publicado. De cada archivo procesado, además, se debe obtener
todas las referencias citadas por el artículo, de modo que estas referencias también
sean clasificadas por Autor, título y jornal. A partir de estas referencias, debe ser
posible vincular a cada artículo procesado por el programa, a los artículos al cual este
hace referencia, formando una red de artículos científicos.
Para llevar a cabo este sistema, se emplean tres lenguajes de programación, los cuales
son: R, python y java. Mediante la utilización de estos distintos lenguajes se realiza
una comparación entre ellas, describiendo el enfoque utilizado en cada lenguaje para
el desarrollo, las librerías del lenguaje utilizadas, las ventajas y desventajas en la
utilización del lenguaje, facilidades y dificultades que se presentaron en la utilización
del lenguaje, y que tanto fue posible llevar a cabo el desarrollo del sistema con cada
lenguaje empleado.
La idea del algoritmo central utilizado en los tres lenguajes, consiste en procesar cada
artículo científico, los cuales presentan un texto en formato bibtex del presente
artículo como nombre de archivo, a partir él se extraen el nombre del autor, el titulo
del articulo y la revista/libro/conferencia en donde fue publicado dicho artículo.
Seguidamente procesa y lee el archivo PDF, leyendo cada línea, buscando la pagina
en donde se encuentran la lista de referencias, hasta encontrarlo. A partir de ahí, cada
texto dentro de la lista es procesado, de modo que teniendo en cuenta el formato de
documento utilizado para las referencias, sea posible identificar al autor, título y
publicación de cada artículo referenciado.
1. Descripción del proyecto:
1.1-Desarrollo del trabajo en Python.
1.1.1-Flujograma y descripción.
Figura 4 - Código en java para Crear una copia .txt de un PDF utilizando PDFBox
esventajas:
D
● La mayor desventaja fue la cantidad de tiempo incurrido para procesar cada archivo
Pdf, siendo mucho más lento en comparación a los otros dos lenguajes.
● Otro de los problemas al trabajar con python, fue la dificultad de tratar con las listas
insertadas dentro de otras listas, ya que es mucho más complejo en comparación a
java, hacer referencia a cada elemento individual.
2.2. JAVA -Ventajas y desventajas
Ventajas:
● El procesamiento de cada documento fue mucho más rápido en comparación a los
otros lenguajes.
● El manejo de excepciones en java, hace que sea bastante sencillo identificar errores, a
la hora de procesar textos, o en otras operaciones.
● El simple manejo de java para las estructuras dinámicas como listas y arrays.
Desventajas:
● El procesamiento de un archivo pdf en java es mucho más complejo, ya que es
bastante dificil leer un archivo linea tras linea, ademas, en la utilización de algunas
librerías, el texto dentro del pdf es extraída de forma concatenada.
esventajas:
D
● Presenta una sintaxis muy diferente y compleja en comparación a los otros lenguajes
● Presenta errores de compilación, los cuales son muy difíciles de manejar para
programadores no familiarizados con el lenguaje.
● La complejidad de trabajar y comprender el funcionamiento de sus librerías y
herramientas para el manejo de archivos de textos como pdfs, .txt, etc.
● La poca información en internet sobre sus librerías para manejo de archivos pdfs
3. Conclusiones.
Trabajar con tres lenguajes de programación distintos, es una práctica bastante útil para un
programador. En primer lugar, durante el desarrollo del programa utilizando cada lenguaje,
uno va distinguiendo las características propias de cada lenguaje, las herramientas que
pueden emplearse en un lenguaje, pero en otros no, enfoques que uno podría utilizar en un
lenguaje, pero en otros no son aplicables, como no es posible utilizar la misma función en
distintos lenguajes. Dentro de este trabajo se pueden observar diferencias muy grandes con
respecto a un lenguaje a otro, tales como: tiempo de ejecución del sistema en los distintos
lenguajes, cantidad de líneas de código para realizar el sistema en un lenguaje y otro, la
complejidad de utilizar las estructuras dinámicas de un lenguaje, pero que en otro presentan
mayor simplicidad, así como las librerías propias y eficientes de cada lenguaje.
La principal comprensión de este trabajo, es darse cuenta del hecho de conocer y saber
programar en una cierta cantidad de lenguajes de programación, no quiere decir que se tenga
un dominio total de todos los demás lenguajes, ya que, al variar de uno a otro, puede existir
diferencias sintácticas y estructurales muy grandes, que serán totalmente desconocidas y
difíciles de manejar para cualquier programador, como por ejemplo es en el caso de este
trabajo: realizar el sistema en java y python, puede ser algo similar, pero totalmente distinto
y engorroso a la hora de llevarlo a cabo en un lenguaje como R.