51 resultados para PLC and SCADA programming


Relevância:

100.00% 100.00%

Publicador:

Resumo:

This paper describes a framework to combine tabling evalua- tion and constraint logic programming (TCLP). While this combination has been studied previously from a theoretical point of view and some implementations exist, they either suffer from a lack of efficiency, flex- ibility, or generality, or have inherent limitations with respect to the programs they can execute to completion (either with success or fail- ure). Our framework addresses these issues directly, including the ability to check for answer / call entailment, which allows it to terminate in more cases than other approaches. The proposed framework is experimentally compared with existing solutions in order to provide evidence of the mentioned advantages.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

En este proyecto se trata la simulación numérica de un fenómeno dinámico, basado en el comportamiento de una onda transmitida a lo largo de una cuerda elástica de un instrumento musical, cuyos extremos se encuentran anclados. El fenómeno físico, se desarrolla utilizando una ecuación en derivadas parciales hiperbólicas con variables espacial y temporal, acompañada por unas condiciones de contorno tipo Dirichlet en los extremos y por más condiciones iniciales que dan comienzo al proceso. Posteriormente se han generado algoritmos para el método numérico empleado (Diferencias finitas centrales y progresivas) y la programación del problema aproximado con su consistencia, estabilidad y convergencia, obteniéndose unos resultados acordes con la solución analítica del problema matemático. La programación y salida de resultados se ha realizado con Visual Studio 8.0. y la programación de objetos con Visual Basic .Net In this project the topic is the numerical simulation of a dynamic phenomenon, based on the behavior of a transmitted wave along an elastic string of a musical instrument, whose ends are anchored. The physical phenomenon is developed using a hyperbolic partial differential equation with spatial and temporal variables, accompanied by a Dirichlet boundary conditions at the ends and more initial conditions that start the process. Subsequently generated algorithms for the numerical method used (central and forward finite differences) and the programming of the approximate problem with consistency, stability and convergence, yielding results in line with the analytical solution of the mathematical problem. Programming and output results has been made with Visual Studio 8.0. and object programming with Visual Basic. Net

Relevância:

100.00% 100.00%

Publicador:

Resumo:

El proyecto fin de carrera de herramienta de apoyo a la docencia en Sistemas Operativos quiere ayudar al alumno a entender el funcionamiento de un planificador a corto plazo. Lo hace mediante una representación gráfica de procesos que ocupan o el procesador o distintas unidades de entrada/salida mientras transcurre el tiempo. El tiempo está dividido en ciclos de reloj de un procesador, a lo que a continuación se referirá como unidades de tiempo. Los procesos están definidos por su nombre, la instante de entrada que entran al sistema, su prioridad y la secuencia de unidades de tiempo en el procesador y unidades de entrada/salida que necesitan para terminar su trabajo. El alumno puede configurar el sistema a su gusto en cuanto al número y comportamiento de las unidades de entrada/salida. Puede definir que una unidad solo permita acceso exclusivo a los procesos, es decir que solo un proceso puede ocuparla simultáneamente, o que permita el acceso múltiple a sus recursos. El alumno puede construir un planificador a corto plazo propio, integrarlo en el sistema y ver cómo se comporta. Se debe usar la interfaz Java proporcionada para su construcción. La aplicación muestra datos estadísticos como por ejemplo la eficiencia del sistema (el tiempo activo de la CPU dividido por el tiempo total de la simulación), tiempos de espera de los procesos, etc. Se calcula después de cada unidad de tiempo para que el alumno pueda ver el momento exacto donde la simulación tomó un giro inesperado. La aplicación está compuesta por un motor de simulación que contiene toda la lógica y un conjunto de clases que forman la interfaz gráfica que se presenta al usuario. Estos dos componentes pueden ser reemplazados siempre y cuando se mantenga la definición de sus conectores igual. La aplicación la he hecho de manejo muy simple e interfaz fácil de comprender para que el alumno pueda dedicar todo su tiempo a probar distintas configuraciones y situaciones y así entender mejor la asignatura. ABSTRACT. The project is called “Tool to Support Teaching of the Subject Operating Systems” and is an application that aims to help students understand on a deeper level the inner workings of how an operating system handles multiple processes in need of CPU time by the means of a short-term planning algorithm. It does so with a graphical representation of the processes that occupy the CPU and different input/output devices as time passes by. Time is divided in CPU cycles, from now on referred to as time units. The processes are defined by their name, the moment they enter the system, their priority and the sequence of time units they need to finish their job. The student can configure the system by changing the number and behavior of the input/output devices. He or she can define whether a device should only allow exclusive access, i.e. only one process can occupy it at any given time, or if it should allow multiple processes to access its resources. The student can build a planning algorithm of his or her own and easily integrate it into the system to see how it behaves. The provided Java interface and the programming language Java should be used to build it. The application shows statistical data, e.g. the efficiency of the system (active CPU time divided by total simulation time) and time spent by the processes waiting in queues. The data are calculated after passing each time unit in order for the student to see the exact moment where the simulation took an unexpected turn. The application is comprised of a simulation motor, which handles all the logic, and a set of classes, which is the graphical user interface. These two parts can be replaced individually if the definition of the connecting interfaces stays the same. I have made the application to be very easy to use and with an easy to understand user interface so the student can spend all of his or her time trying out different configurations and scenarios in order to understand the subject better.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

1 RESUMEN 1.1 Resumen (español) El intercambio y comercio tanto de bienes como servicios se remonta a tiempos inmemoriales dentro de la historia de la humanidad. Desde sus inicios tempranos con el intercambio o trueque de productos en el Neolítico hasta nuestra época híper globalizada, en la que existen clientes potenciales en el otro extremo del mundo, podemos decir que se ha recorrido un largo camino. Con el paso del tiempo y la evolución de la sociedad y la tecnología, así como la evolución empresarial, se ha visto necesario la implementación de estrategias para lograr la fidelización y satisfacción de los clientes. De esta forma entendimos que ya no valía simplemente con vender un producto a un cliente, si no que si queríamos establecer una relación continúa con el mismo, debíamos lograr su satisfacción y por tanto su fidelización. Como forma de extender la relación más allá de una simple venta, las empresas modernas empezaron a implementar diversas estrategias. De esta forma aparecieron los primeros centros de atención al cliente, las primeras aplicaciones hechas a medida para dar soporte a los clientes y por fin los sistemas CRM tal y como los concebimos hoy día. El presente proyecto fin de carrera da una explicación de dichos sistemas indicando cuáles son sus objetos fundamentales y cómo implementan la estrategia CRM y profundiza en uno de los sistemas CRM más utilizados: PeopleSoft CRM, dando una explicación detallada de dicho sistemas así como de los conceptos y lenguaje de programación de dicho sistema CRM. 1.2 SUMMARY (ENGLISH) The exchange and trade of goods as well and services goes back to ancient times in the history of mankind. Since its early beginning with the bartering of products in the Neolithic to our globalized hyper era, in which there are potential customers on the other side of the world, we can say that it has come a long way. After a certain length of time, the society and technology evolution, and also the enterprise development, has been necessary to implement strategies to achieve customer loyalty and satisfaction. We understood in this way that it no longer simply worth to sell a product to a customer, otherwise if we wanted to establish a relationship continues with the same, we should ensure their satisfaction and thus their loyalty. As a way to extend the relationship beyond a simple sale, modern enterprises began to implement several strategies. Therefore appeared the first customer service centers, the first applications tailored to support customers and finally the CRM systems as we know it today. This final project gives an explanation of such systems by indicating what the core objects are and how to implement the CRM strategy, deeping into one of the most widely used CRM systems: PeopleSoft CRM, and also giving a detailed explanation of this system and its programming language.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

En las últimas décadas, el avance tecnológico ha aumentado a una velocidad vertiginosa. Muchos son los campos beneficiados, entre ellos la ingeniería y por consiguiente el desarrollo de maquinaria, técnicas y herramientas que facilitan el trabajo. Los vehículos aéreos no tripulados (UAVs), más conocidos como drones, se presentan como una alternativa muy interesante para llevar a cabo levantamientos topográficos mediante la técnica fotogramétrica. En este proyecto se desarrollan los Modelos Digitales del Terreno (MDT) de una superficie sobrevolada por un UAV en la localidad de Cubillos del Sil (León). Para ello, se han utilizado dos software: Mission Planner y PhotoModeler. En el primero se ha llevado a cabo la programación de la misión de vuelo del drone, siendo el fin la toma de fotografías aéreas. El segundo es el encargado de realizar la reconstrucción digital en 3D del terreno sobrevolado a partir de esas fotografías. El objetivo final es que los MDT obtenidos puedan ser utilizados en un futuro por cualquier equipo de trabajo que quiera desarrollar un proyecto sobre esos terrenos. ABSTRACT The pace of technology innovation is faster now than it has been for the past few decades. Engineering, and consequently machinery and diverse techniques, are the main beneficiaries. A clear example of this is the development of unmanned aerial vehicles (UAVs), more commonly known as drones. They are a very good alternative that can be used to carry out topographic surveys through photogrammetry. In this project the Digital Terrain Models (DTM) of an overflown area in the municipality of Cubillos del Sil (León) are developed. Two main pieces of software have been used for this purpose; Mission Planner and PhotoModeler. Programming of the drone flight mission was done with the former, allowing it to take aerial pictures, whilst the latter was used to digitally rebuild the overflown area in 3D, using the pictures from the first piece of software. The final aim of the project is to make the obtained DTM available for any future project.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La Biología bajo Demanda es un concepto novedoso, que está siendo abordado en la actualidad desde distintos enfoques, que serán expuestos en este documento. Dado este carácter innovador, se trata de un ámbito donde la investigación está muy presente en estos momentos. Las Tecnologías de la Información y Comunicación (TICs) llevan un tiempo aportando soluciones muy efectivas para algunos de los problemas a los que se enfrente actualmente la biología sintética. Una de estas soluciones son las plataformas de Cloud Computing, que aportan un entorno de trabajo escalable, flexible y seguro. Por ello, se ha empleado este tipo de tecnología en este trabajo fin de grado en el área de la biología sintética mediante el concepto de biología bajo demanda. Para desarrollar la plataforma de biología bajo demanda ha sido necesario analizar el estado de esta temática actualmente y sus avances. Además, ha sido estimable el estudio de las opiniones de los miembros del grupo de investigación. Todo ello ha permitido llevar a cabo una captura de requisitos adecuada para el ámbito de este proyecto. Se ha decidido que los servidores de aplicaciones web son la respuesta más adecuada a la hora de implementar las soluciones obtenidas para el desarrollo de la plataforma de biología bajo demanda. En concreto, por sus características, se ha decidido emplear JavaEE de Oracle. El modelo implementado emplea soluciones conocidas y fiables basadas en patrones de diseño software. Así, conseguimos cumplir con uno de los principales objetivos de este proyecto, que es lograr un sistema flexible y escalable. Por otro lado, debido a la incertidumbre que conlleva un área tan innovadora, se ha decidido optar por una metodología ágil. Esto supone un plan de trabajo centrado en reuniones semanales conjuntas con el director y los compañeros del grupo de trabajo, empleando prototipado rápido y programación extrema. Finalmente, se ha conseguido desarrollar una plataforma de biología bajo demanda que puede ser la base para el trabajo de los biólogos del ámbito de la biología sintética en un futuro próximo.---ABSTRACT---Biology on demand is a new concept, which is currently being addressed from different approaches, which will be presented in this document. Given this innovative character, it is an area where research is a main factor right now. Technologies of Information and Communication Technologies (ICTs) have provided very effective solutions to some of the problems that synthetic biology is currently facing. One of these solutions is cloud computing platforms, which provide an environment for scalable, flexible and secure work. Therefore, we have used this technology in this final project in the area of synthetic biology through the concept of biology on demand. To develop a biology-on-demand platform it has been necessary to analyze the state of art. The opinions of members of the research group have also been very influential. All this has allowed us to conduct a proper capture requirements for the scope of this project here developed. It was decided that web application servers are the best answer when it comes to implementing the solutions obtained for the development of biology-on-demand platform. In particular, by its main features, it was decided to use Oracle’s JavaEE. The implemented model uses known and reliable solutions based on software design patterns. So, we get to meet one of the main objectives of this project, which is to achieve a flexible and scalable system. On the other hand, due to the uncertainty involved in such an innovative area, it was appropriate to opt for an agile methodology. The work plan was focused on weekly meetings with the director and coworkers, using additive technology and extreme programming. Finally, this project has been successful in developing a biology-on-demand platform that can be the basis for the work of biologists in the field of synthetic biology in the near future.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesis está focalizada en la resolución de problemas de optimización combinatoria, haciendo uso de las opciones tecnológicas actuales que ofrecen las tecnologías de la información y las comunicaciones, y la investigación operativa. Los problemas de optimización combinatoria se resuelven en general mediante programación lineal y metaheurísticas. La aplicación de las técnicas de resolución de los problemas de optimización combinatoria requiere de una elevada carga computacional, y los algoritmos deben diseñarse, por un lado pensando en la efectividad para encontrar buenas soluciones del problema, y por otro lado, pensando en un uso adecuado de los recursos informáticos disponibles. La programación lineal y las metaheurísticas son técnicas de resolución genéricas, que se pueden aplicar a diferentes problemas, partiendo de una base común que se particulariza para cada problema concreto. En el campo del desarrollo de software, los frameworks cumplen esa función de comenzar un proyecto con el trabajo general ya disponible, con la opción de cambiar o extender ese comportamiento base o genérico, para construir el sistema concreto, lo que permite reducir el tiempo de desarrollo, y amplía las posibilidades de éxito del proyecto. En esta tesis se han desarrollado dos frameworks de desarrollo. El framework ILP permite modelar y resolver problemas de programación lineal, de forma independiente al software de resolución de programación lineal que se utilice. El framework LME permite resolver problemas de optimización combinatoria mediante metaheurísticas. Tradicionalmente, las aplicaciones de resolución de problemas de optimización combinatoria son aplicaciones de escritorio que permiten gestionar toda la información de entrada del problema y resuelven el problema en local, con los recursos hardware disponibles. Recientemente ha aparecido un nuevo paradigma de despliegue y uso de aplicaciones que permite compartir recursos informáticos especializados por Internet. Esta nueva forma de uso de recursos informáticos es la computación en la nube, que presenta el modelo de software como servicio (SaaS). En esta tesis se ha construido una plataforma SaaS, para la resolución de problemas de optimización combinatoria, que se despliega sobre arquitecturas compuestas por procesadores multi-núcleo y tarjetas gráficas, y dispone de algoritmos de resolución basados en frameworks de programación lineal y metaheurísticas. Toda la infraestructura es independiente del problema de optimización combinatoria a resolver, y se han desarrollado tres problemas que están totalmente integrados en la plataforma SaaS. Estos problemas se han seleccionado por su importancia práctica. Uno de los problemas tratados en la tesis, es el problema de rutas de vehículos (VRP), que consiste en calcular las rutas de menor coste de una flota de vehículos, que reparte mercancías a todos los clientes. Se ha partido de la versión más clásica del problema y se han hecho estudios en dos direcciones. Por un lado se ha cuantificado el aumento en la velocidad de ejecución de la resolución del problema en tarjetas gráficas. Por otro lado, se ha estudiado el impacto en la velocidad de ejecución y en la calidad de soluciones, en la resolución por la metaheurística de colonias de hormigas (ACO), cuando se introduce la programación lineal para optimizar las rutas individuales de cada vehículo. Este problema se ha desarrollado con los frameworks ILP y LME, y está disponible en la plataforma SaaS. Otro de los problemas tratados en la tesis, es el problema de asignación de flotas (FAP), que consiste en crear las rutas de menor coste para la flota de vehículos de una empresa de transporte de viajeros. Se ha definido un nuevo modelo de problema, que engloba características de problemas presentados en la literatura, y añade nuevas características, lo que permite modelar los requerimientos de las empresas de transporte de viajeros actuales. Este nuevo modelo resuelve de forma integrada el problema de definir los horarios de los trayectos, el problema de asignación del tipo de vehículo, y el problema de crear las rotaciones de los vehículos. Se ha creado un modelo de programación lineal para el problema, y se ha resuelto por programación lineal y por colonias de hormigas (ACO). Este problema se ha desarrollado con los frameworks ILP y LME, y está disponible en la plataforma SaaS. El último problema tratado en la tesis es el problema de planificación táctica de personal (TWFP), que consiste en definir la configuración de una plantilla de trabajadores de menor coste, para cubrir una demanda de carga de trabajo variable. Se ha definido un modelo de problema muy flexible en la definición de contratos, que permite el uso del modelo en diversos sectores productivos. Se ha definido un modelo matemático de programación lineal para representar el problema. Se han definido una serie de casos de uso, que muestran la versatilidad del modelo de problema, y permiten simular el proceso de toma de decisiones de la configuración de una plantilla de trabajadores, cuantificando económicamente cada decisión que se toma. Este problema se ha desarrollado con el framework ILP, y está disponible en la plataforma SaaS. ABSTRACT The thesis is focused on solving combinatorial optimization problems, using current technology options offered by information technology and communications, and operations research. Combinatorial optimization problems are solved in general by linear programming and metaheuristics. The application of these techniques for solving combinatorial optimization problems requires a high computational load, and algorithms are designed, on the one hand thinking to find good solutions to the problem, and on the other hand, thinking about proper use of the available computing resources. Linear programming and metaheuristic are generic resolution techniques, which can be applied to different problems, beginning with a common base that is particularized for each specific problem. In the field of software development, frameworks fulfill this function that allows you to start a project with the overall work already available, with the option to change or extend the behavior or generic basis, to build the concrete system, thus reducing the time development, and expanding the possibilities of success of the project. In this thesis, two development frameworks have been designed and developed. The ILP framework allows to modeling and solving linear programming problems, regardless of the linear programming solver used. The LME framework is designed for solving combinatorial optimization problems using metaheuristics. Traditionally, applications for solving combinatorial optimization problems are desktop applications that allow the user to manage all the information input of the problem and solve the problem locally, using the available hardware resources. Recently, a new deployment paradigm has appeared, that lets to share hardware and software resources by the Internet. This new use of computer resources is cloud computing, which presents the model of software as a service (SaaS). In this thesis, a SaaS platform has been built for solving combinatorial optimization problems, which is deployed on architectures, composed of multi-core processors and graphics cards, and has algorithms based on metaheuristics and linear programming frameworks. The SaaS infrastructure is independent of the combinatorial optimization problem to solve, and three problems are fully integrated into the SaaS platform. These problems have been selected for their practical importance. One of the problems discussed in the thesis, is the vehicle routing problem (VRP), which goal is to calculate the least cost of a fleet of vehicles, which distributes goods to all customers. The VRP has been studied in two directions. On one hand, it has been quantified the increase in execution speed when the problem is solved on graphics cards. On the other hand, it has been studied the impact on execution speed and quality of solutions, when the problem is solved by ant colony optimization (ACO) metaheuristic, and linear programming is introduced to optimize the individual routes of each vehicle. This problem has been developed with the ILP and LME frameworks, and is available in the SaaS platform. Another problem addressed in the thesis, is the fleet assignment problem (FAP), which goal is to create lower cost routes for a fleet of a passenger transport company. It has been defined a new model of problem, which includes features of problems presented in the literature, and adds new features, allowing modeling the business requirements of today's transport companies. This new integrated model solves the problem of defining the flights timetable, the problem of assigning the type of vehicle, and the problem of creating aircraft rotations. The problem has been solved by linear programming and ACO. This problem has been developed with the ILP and LME frameworks, and is available in the SaaS platform. The last problem discussed in the thesis is the tactical planning staff problem (TWFP), which is to define the staff of lower cost, to cover a given work load. It has been defined a very rich problem model in the definition of contracts, allowing the use of the model in various productive sectors. It has been defined a linear programming mathematical model to represent the problem. Some use cases has been defined, to show the versatility of the model problem, and to simulate the decision making process of setting up a staff, economically quantifying every decision that is made. This problem has been developed with the ILP framework, and is available in the SaaS platform.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

El cálculo de relaciones binarias fue creado por De Morgan en 1860 para ser posteriormente desarrollado en gran medida por Peirce y Schröder. Tarski, Givant, Freyd y Scedrov demostraron que las álgebras relacionales son capaces de formalizar la lógica de primer orden, la lógica de orden superior así como la teoría de conjuntos. A partir de los resultados matemáticos de Tarski y Freyd, esta tesis desarrolla semánticas denotacionales y operacionales para la programación lógica con restricciones usando el álgebra relacional como base. La idea principal es la utilización del concepto de semántica ejecutable, semánticas cuya característica principal es el que la ejecución es posible utilizando el razonamiento estándar del universo semántico, este caso, razonamiento ecuacional. En el caso de este trabajo, se muestra que las álgebras relacionales distributivas con un operador de punto fijo capturan toda la teoría y metateoría estándar de la programación lógica con restricciones incluyendo los árboles utilizados en la búsqueda de demostraciones. La mayor parte de técnicas de optimización de programas, evaluación parcial e interpretación abstracta pueden ser llevadas a cabo utilizando las semánticas aquí presentadas. La demostración de la corrección de la implementación resulta extremadamente sencilla. En la primera parte de la tesis, un programa lógico con restricciones es traducido a un conjunto de términos relacionales. La interpretación estándar en la teoría de conjuntos de dichas relaciones coincide con la semántica estándar para CLP. Las consultas contra el programa traducido son llevadas a cabo mediante la reescritura de relaciones. Para concluir la primera parte, se demuestra la corrección y equivalencia operacional de esta nueva semántica, así como se define un algoritmo de unificación mediante la reescritura de relaciones. La segunda parte de la tesis desarrolla una semántica para la programación lógica con restricciones usando la teoría de alegorías—versión categórica del álgebra de relaciones—de Freyd. Para ello, se definen dos nuevos conceptos de Categoría Regular de Lawvere y _-Alegoría, en las cuales es posible interpretar un programa lógico. La ventaja fundamental que el enfoque categórico aporta es la definición de una máquina categórica que mejora e sistema de reescritura presentado en la primera parte. Gracias al uso de relaciones tabulares, la máquina modela la ejecución eficiente sin salir de un marco estrictamente formal. Utilizando la reescritura de diagramas, se define un algoritmo para el cálculo de pullbacks en Categorías Regulares de Lawvere. Los dominios de las tabulaciones aportan información sobre la utilización de memoria y variable libres, mientras que el estado compartido queda capturado por los diagramas. La especificación de la máquina induce la derivación formal de un juego de instrucciones eficiente. El marco categórico aporta otras importantes ventajas, como la posibilidad de incorporar tipos de datos algebraicos, funciones y otras extensiones a Prolog, a la vez que se conserva el carácter 100% declarativo de nuestra semántica. ABSTRACT The calculus of binary relations was introduced by De Morgan in 1860, to be greatly developed by Peirce and Schröder, as well as many others in the twentieth century. Using different formulations of relational structures, Tarski, Givant, Freyd, and Scedrov have shown how relation algebras can provide a variable-free way of formalizing first order logic, higher order logic and set theory, among other formal systems. Building on those mathematical results, we develop denotational and operational semantics for Constraint Logic Programming using relation algebra. The idea of executable semantics plays a fundamental role in this work, both as a philosophical and technical foundation. We call a semantics executable when program execution can be carried out using the regular theory and tools that define the semantic universe. Throughout this work, the use of pure algebraic reasoning is the basis of denotational and operational results, eliminating all the classical non-equational meta-theory associated to traditional semantics for Logic Programming. All algebraic reasoning, including execution, is performed in an algebraic way, to the point we could state that the denotational semantics of a CLP program is directly executable. Techniques like optimization, partial evaluation and abstract interpretation find a natural place in our algebraic models. Other properties, like correctness of the implementation or program transformation are easy to check, as they are carried out using instances of the general equational theory. In the first part of the work, we translate Constraint Logic Programs to binary relations in a modified version of the distributive relation algebras used by Tarski. Execution is carried out by a rewriting system. We prove adequacy and operational equivalence of the semantics. In the second part of the work, the relation algebraic approach is improved by using allegory theory, a categorical version of the algebra of relations developed by Freyd and Scedrov. The use of allegories lifts the semantics to typed relations, which capture the number of logical variables used by a predicate or program state in a declarative way. A logic program is interpreted in a _-allegory, which is in turn generated from a new notion of Regular Lawvere Category. As in the untyped case, program translation coincides with program interpretation. Thus, we develop a categorical machine directly from the semantics. The machine is based on relation composition, with a pullback calculation algorithm at its core. The algorithm is defined with the help of a notion of diagram rewriting. In this operational interpretation, types represent information about memory allocation and the execution mechanism is more efficient, thanks to the faithful representation of shared state by categorical projections. We finish the work by illustrating how the categorical semantics allows the incorporation into Prolog of constructs typical of Functional Programming, like abstract data types, and strict and lazy functions.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Incorporating the possibility of attaching attributes to variables in a logic programming system has been shown to allow the addition of general constraint solving capabilities to it. This approach is very attractive in that by adding a few primitives any logic programming system can be turned into a generic constraint logic programming system in which constraint solving can be user deñned, and at source level - an extreme example of the "glass box" approach. In this paper we propose a different and novel use for the concept of attributed variables: developing a generic parallel/concurrent (constraint) logic programming system, using the same "glass box" flavor. We argüe that a system which implements attributed variables and a few additional primitives can be easily customized at source level to implement many of the languages and execution models of parallelism and concurrency currently proposed, in both shared memory and distributed systems. We illustrate this through examples and report on an implementation of our ideas.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Distributed parallel execution systems speed up applications by splitting tasks into processes whose execution is assigned to different receiving nodes in a high-bandwidth network. On the distributing side, a fundamental problem is grouping and scheduling such tasks such that each one involves sufñcient computational cost when compared to the task creation and communication costs and other such practical overheads. On the receiving side, an important issue is to have some assurance of the correctness and characteristics of the code received and also of the kind of load the particular task is going to pose, which can be specified by means of certificates. In this paper we present in a tutorial way a number of general solutions to these problems, and illustrate them through their implementation in the Ciao multi-paradigm language and program development environment. This system includes facilities for parallel and distributed execution, an assertion language for specifying complex programs properties (including safety and resource-related properties), and compile-time and run-time tools for performing automated parallelization and resource control, as well as certification of programs with resource consumption assurances and efñcient checking of such certificates.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Incorporating the possibility of attaching attributes to variables in a logic programming system has been shown to allow the addition of general constraint solving capabilities to it. This approach is very attractive in that by adding a few primitives any logic programming system can be turned into a generic constraint logic programming system in which constraint solving can be user defined, and at source level - an extreme example of the "glass box" approach. In this paper we propose a different and novel use for the concept of attributed variables: developing a generic parallel/concurrent (constraint) logic programming system, using the same "glass box" flavor. We argüe that a system which implements attributed variables and a few additional primitives can be easily customized at source level to implement many of the languages and execution models of parallelism and concurrency currently proposed, in both shared memory and distributed systems. We illustrate this through examples.

Relevância:

40.00% 40.00%

Publicador:

Relevância:

40.00% 40.00%

Publicador:

Resumo:

El punto de vista de muchas otras aplicaciones que modifican las reglas de computación. En segundo lugar, y una vez generalizado el concepto de independencia, es necesario realizar un estudio exhaustivo de la efectividad de las herramientas de análisis en la tarea de la paralelizacion automática. Los resultados obtenidos de dicha evaluación permiten asegurar de forma empírica que la utilización de analizadores globales en la tarea de la paralelizacion automática es vital para la consecución de una paralelizarían efectiva. Por último, a la luz de los buenos resultados obtenidos sobre la efectividad de los analizadores de flujo globales basados en la interpretación abstracta, se presenta la generalización de las herramientas de análisis al contexto de los lenguajes lógicos restricciones y planificación dinámica.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Automatic grading of programming assignments is an important topic in academic research. It aims at improving the level of feedback given to students and optimizing the professor time. Several researches have reported the development of software tools to support this process. Then, it is helpfulto get a quickly and good sight about their key features. This paper reviews an ample set of tools forautomatic grading of programming assignments. They are divided in those most important mature tools, which have remarkable features; and those built recently, with new features. The review includes the definition and description of key features e.g. supported languages, used technology, infrastructure, etc. The two kinds of tools allow making a temporal comparative analysis. This analysis infrastructure, etc. The two kinds of tools allow making a temporal comparative analysis. This analysis shows good improvements in this research field, these include security, more language support, plagiarism detection, etc. On the other hand, the lack of a grading model for assignments is identified as an important gap in the reviewed tools. Thus, a characterization of evaluation metrics to grade programming assignments is provided as first step to get a model. Finally new paths in this research field are proposed.