1000 resultados para JAVA (LENGUAJE DE PROGRAMACIÓN)


Relevância:

30.00% 30.00%

Publicador:

Resumo:

A raíz de la aparición de los procesadores dotados de varios “cores”, la programación paralela, un concepto que, por otra parte no era nada nuevo y se conocía desde hace décadas, sufrió un nuevo impulso, pues se creía que se podía superar el techo tecnológico que había estado limitando el rendimiento de esta programación durante años. Este impulso se ha ido manteniendo hasta la actualidad, movido por la necesidad de sistemas cada vez más potentes y gracias al abaratamiento de los costes de fabricación. Esta tendencia ha motivado la aparición de nuevo software y lenguajes con componentes orientados precisamente al campo de la programación paralela. Este es el caso del lenguaje Go, desarrollado por Google y lanzado en 2009. Este lenguaje se basa en modelos de concurrencia que lo hacen muy adecuados para abordar desarrollos de naturaleza paralela. Sin embargo, la programación paralela es un campo complejo y heterogéneo, y los programadores son reticentes a utilizar herramientas nuevas, en beneficio de aquellas que ya conocen y les son familiares. Un buen ejemplo son aquellas implementaciones de lenguajes conocidos, pero orientadas a programación paralela, y que siguen las directrices de un estándar ampliamente reconocido y aceptado. Este es el caso del estándar OpenMP, un Interfaz de Programación de Aplicaciones (API) flexible, portable y escalable, orientado a la programación paralela multiproceso en arquitecturas multi-core o multinucleo. Dicho estándar posee actualmente implementaciones en los lenguajes C, C++ y Fortran. Este proyecto nace como un intento de aunar ambos conceptos: un lenguaje emergente con interesantes posibilidades en el campo de la programación paralela, y un estándar reputado y ampliamente extendido, con el que los programadores se encuentran familiarizados. El objetivo principal es el desarrollo de un conjunto de librerías del sistema (que engloben directivas de compilación o pragmas, librerías de ejecución y variables de entorno), soportadas por las características y los modelos de concurrencia propios de Go; y que añadan funcionalidades propias del estándar OpenMP. La idea es añadir funcionalidades que permitan programar en lenguaje Go utilizando la sintaxis que OpenMP proporciona para otros lenguajes, como Fortan y C/C++ (concretamente, similar a esta última), y, de esta forma, dotar al usuario de Go de herramientas para programar estructuras de procesamiento paralelo de forma sencilla y transparente, de la misma manera que lo haría utilizando C/C++.---ABSTRACT---As a result of the appearance of processors equipped with multiple "cores ", parallel programming, a concept which, moreover, it was not new and it was known for decades, suffered a new impulse, because it was believed they could overcome the technological ceiling had been limiting the performance of this program for years. This impulse has been maintained until today, driven by the need for ever more powerful systems and thanks to the decrease in manufacturing costs. This trend has led to the emergence of new software and languages with components guided specifically to the field of parallel programming. This is the case of Go language, developed by Google and released in 2009. This language is based on concurrency models that make it well suited to tackle developments in parallel nature. However, parallel programming is a complex and heterogeneous field, and developers are reluctant to use new tools to benefit those who already know and are familiar. A good example are those implementations from well-known languages, but parallel programming oriented, and witch follow the guidelines of a standard widely recognized and accepted. This is the case of the OpenMP standard, an application programming interface (API), flexible, portable and scalable, parallel programming oriented, and designed for multi-core architectures. This standard currently has implementations in C, C ++ and Fortran. This project was born as an attempt to combine two concepts: an emerging language, with interesting possibilities in the field of parallel programming, and a reputed and widespread standard, with which programmers are familiar with. The main objective is to develop a set of system libraries (which includes compiler directives or pragmas, runtime libraries and environment variables), supported by the characteristics and concurrency patterns of Go; and that add custom features from the OpenMP standard. The idea is to add features that allow programming in Go language using the syntax OpenMP provides for other languages, like Fortran and C / C ++ (specifically, similar to the latter ), and, in this way, provide Go users with tools for programming parallel structures easily and, in the same way they would using C / C ++.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Los jueces online están cobrando cada día más importancia, especialmente en el ámbito de la enseñanza. Su funciona-miento es simple, un juez/profesor sube un problema de programación con un enunciado y unos casos de prueba (entradas y salidas esperadas) al juez online. El alumno/concursante deberá subir el código que considera como solución al problema. Si el código del alumno devuelve las mismas salidas que las que se encuentran en los casos de prueba para las correspondientes entradas en los test-cases dada las mismas entradas, el código se considera correcto. En la Facultad de Informática de la Universidad Complutense de Madrid ha aparecido un juez virtual que cada vez está siendo más usado por los docentes como complemento a la hora de evaluar. Este juez online es DomJudge. DomJudge es un juez online desarrollado en la universidad de Utrecht con el fin de ser un juez virtual de concursos de programación. Su código es libre y se puede descargar y modificar, lo que lo hace ideal si se quiere adaptar su funcionamiento. Es bien sabido que generar casos de prueba de calidad es una tarea muy compleja. Existen diversas técnicas que ayudan a la generación automática de tests. Por ejemplo, la ejecución simbólica permite generar tests garantizando que todos los caminos de ejecución del programa son ejercitados hasta una cierta profundidad. El objetivo de este proyecto es hacer uso de estas técnicas de testing para generar casos de prueba de forma automática. Para que la autoevaluación realizada por estos jueces sea efectiva, los profesores deben proporcionar casos de prueba de calidad que son ejecutados automáticamente cuando los alumnos suben sus soluciones. Escribir estos casos de prueba resulta costoso y complejo, y es en este punto, donde el uso de jPET podría resultar muy útil. Los casos de prueba generados por jPET podrían servir como punto de partida a la hora de generar un conjunto de casos de prueba de calidad. Un aspecto muy interesante en este sentido, es que no es necesario que los programas de los alumnos uti licen el lenguaje Java. Lo único que sería necesario es que el profesor proporcione una solución escrita en Java. A partir de esta se podrían generar los casos de prueba iniciales. Si se diese el caso de que las soluciones de los alumnos viniesen escritas en Java, se podrían plantear enfoques más interesantes en los cuales los tests se forman a partir de ambas soluciones. La del alumno, para generarlos datos de entrada, y la del profesor, para chequear que las salidas para esas entradas son las correctas. Por eso hemos llevado a cabo no solo una traducción automática del xml generado por JPET en ficheros in y out. Sino una total integración con el sistema DomJudge para poder generar los casos de prueba sin intermediarios. Gracias a esta integración podemos facilitar el trabajo de los profesores a la hora de crear problemas en jueces online y conseguimos una generación automática de tests en DomJudge.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

En la actualidad, muchos gobiernos están publicando (o tienen la intención de publicar en breve) miles de conjuntos de datos para que personas y organizaciones los puedan utilizar. Como consecuencia, la cantidad de aplicaciones basadas en Open Data está incrementándose. Sin embargo cada gobierno tiene sus propios procedimientos para publicar sus datos, y esto causa una variedad de formatos dado que no existe un estándar internacional para especificar los formatos de estos datos. El objetivo principal de este trabajo es un análisis comparativo de datos ambientales en bases de datos abiertas (Open Data) pertenecientes a distintos gobiernos. Debido a esta variedad de formatos, debemos construir un proceso de integración de datos que sea capaz de unir todos los tipos de formatos. El trabajo implica un pre-procesado, limpieza e integración de las diferentes fuentes de datos. Existen muchas aplicaciones desarrolladas para dar soporte en el proceso de integración por ejemplo Data Tamer, Data Wrangler como se explica en este documento. El problema con estas aplicaciones es que necesitan la interacción del usuario como parte fundamental del proceso de integración. En este trabajo tratamos de evitar la supervisión humana aprovechando las similitudes de los datasets procedentes de igual área que en nuestro caso se aplica al área de medioambiente. De esta forma los procesos pueden ser automatizados con una programación adecuada. Para conseguirlo, la idea principal de este trabajo es construir procesos ad hoc adaptados a las fuentes de cada gobierno para conseguir una integración automática. Concretamente este trabajo se enfoca en datos ambientales como lo son la temperatura, consumo de energía, calidad de aire, radiación solar, velocidad del viento, etc. Desde hace dos años el gobierno de Madrid está publicando sus datos relativos a indicadores ambientales en tiempo real. Del mismo modo, otros gobiernos han publicado conjuntos de datos Open Data relativos al medio ambiente (como Andalucía o Bilbao), pero todos estos datos tienen diferentes formatos. En este trabajo se presenta una solución capaz de integrar todas ellos que además permite al usuario visualizar y hacer análisis sobre los datos en tiempo real. Una vez que el proceso de integración está realizado, todos los datos de cada gobierno poseen el mismo formato y se pueden lanzar procesos de análisis de una manera más computacional. Este trabajo tiene tres partes fundamentales: 1. Estudio de los entornos Open Data y la literatura al respecto; 2. Desarrollo de un proceso de integración y 3. Desarrollo de una Interface Gráfica y Analítica. Aunque en una primera fase se implementaron los procesos de integración mediante Java y Oracle y la Interface Gráfica con Java (jsp), en una fase posterior se realizó toda la implementación con lenguaje R y la interface gráfica mediante sus librerías, principalmente con Shiny. El resultado es una aplicación que provee de un conjunto de Datos Ambientales Integrados en Tiempo Real respecto a dos gobiernos muy diferentes en España, disponible para cualquier desarrollador que desee construir sus propias aplicaciones.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

El presente proyecto de tesis, detalla el uso de la televisión digital como proveedora de contenidos interactivos y como herramienta complementaria de la educación inicial, para lo cual, propone una metodología al desarrollar software educativo multimedia. La base pedagógica se forjó con diversas fuentes bibliográficas y la colaboración de personas expertas en el tema, siendo su experiencia y conocimiento los pilares fundamentales en la selección de contenidos. El estudio realizado contiene una descripción de la arquitectura ISDB-Tb, escogida por nuestro país como norma para la televisión digital terrestre y de su middleware GINGA, mencionando sus dos tipos de programación, la declarativa que utiliza el lenguaje NCL, que va de la mano con el lenguaje de script LUA para dotarlo de mayor funcionalidad y la procedural mediante JAVA, para cada caso se describe las herramientas necesarias para comenzar a desarrollar aplicaciones y una guía para su instalación. Con la difusión de aplicaciones para televisión digital en nuestro país en un futuro cercano, debido a la oferta y la demanda, se mejorará la cantidad y calidad de programas. Lo que pretende nuestra tesis es dejar un precedente sobre el contenido que podría trasmitirse, como diseñarlo e implementarlo, tomando en cuenta las recomendaciones que proponemos. Para obtener un resultado eficaz de este proyecto, se realizaron constantes pruebas con los niños y educadoras del Centro de Desarrollo Infantil KERYGMA, una vez concluido la aplicación, se expuso a personas conocedoras del ámbito pedagógico y a los directivos de la SUPERTEL y Centro IDI.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

El objetivo de este documento es presentar dos aproximaciones generales a la axiomatización de clases y conjuntos. De una parte, la aproximación matemáticas, mostrando el origen, evolución y desarrollo de la teoría matemática de clases y conjuntos, sin formular completamente el desarrollo axiomático, sólo mostrando los conceptos básicos y las crisis generadas por ellos y la solución más usualmente aceptada. Por otra parte, la aproximación dada por el paradigma orientado a objetos, siguiendo especialmente la línea marcada por el lenguaje smalltalk-80

Relevância:

30.00% 30.00%

Publicador:

Resumo:

La complejidad de los sistemas actuales de computación ha obligado a los diseñadores de herramientas CAD/CAE a acondicionar lenguajes de alto nivel, tipo C++, para la descripción y automatización de estructuras algorítmicas a sus correspondientes diseños a nivel físico. Los proyectos a realizar se encuadran dentro de una línea de trabajo consistente en estudiar la programación, funcionamiento de los lenguajes SystemC y SystemVerilog, sus herramientas asociadas y analizar cómo se adecuan a las restricciones temporales y físicas de los componentes (librerías, IP's, macro-celdas, etc) para su directa implementación. En una primera fase, y para este TFG, se estudiarán los componentes que conforman el framework elegido que es SystemC y su inclusión en herramientas de diseño arquitectural. Este conocimiento nos ayudará a entender el funcionamiento y capacidad de dicha herramienta y proceder a su correcto manejo. Analizaremos y estudiaremos unos de los lenguajes de alto nivel de los que hace uso dicha herramienta. Una vez entendido el contexto de aplicación, sus restricciones y sus elementos, diseñaremos una estructura hardware. Una vez que se tenga el diseño, se procederá a su implementación haciendo uso, si es necesario, de simuladores. El proyecto finalizará con una definición de un conjunto de pruebas con el fin de verificar y validar la usabilidad y viabilidad de nuestra estructura hardware propuesta.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

De entre una serie de métodos estudiados acerca de la terminación de algoritmos, tales como Size-Change Termination o Isabelle, elegimos el método de RANK como instrumento para desarrollar nuestro propio programa de detección de terminación sobre el lenguaje de la IR. Esta decisión se basa en el coste polinómico de este método (frente a costes en PSPACE como el Size-Change Termination)y la posibilidad de obtener una herramienta asociada al mismo que además nos da la posibilidad de conocer un tiempo de ejecución aproximado. La herramienta asociada a RANK es compleja y va de la mano de una segunda herramienta (ASPIC). Hemos estudiado varios ejemplos, tales como el Mergesort o el Quicksort, para explicar la utilización de estas dos herramientas y a su vez ponernos en situación de los diferentes problemas que nos podemos encontrar a la hora de estudiar un programa. Partiendo del proceso que hemos usado para construir los automátas de los ejemplos anteriores, hemos diseñado e implementado en Java un algoritmo para transformar programas en el lenguaje de la IR al formato de entrada de RANK. Los resultados han sido satisfactorios, puesto que con los autómatas generados somos capaces de detectar de forma automatizada la terminación de, entre otros, los algoritmos recursivos antes mencionados.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Factors influencing the relationship between whiteheads caused by the white stem borer Scirpophaga innotata (Walker) and grain yield were investigated. We determined the effect of different numbers of whiteheads on grain yield using different cultivars, nitrogen application, and at different field locations in Cilamaya, West Java. At the same number of panicles and whiteheads per plant, yield reduction is greater in cisadane than in IR64. With increasing nitrogen application, the range in panicle height increased. Except for Ketan, more whiteheads were recorded in shorter panicles. Two locations planted to the same cultivar showed different relationships between whiteheads and grain yield. The relationship between whiteheads and grain yield depends on the distribution of whiteheads in the field. Unless these factors have been taken into consideration, it may be difficult to make a damage prediction of white stem borer in the field. (C) 1997 Published by Elsevier Science Ltd.

Relevância:

20.00% 20.00%

Publicador: