967 resultados para Control programs


Relevância:

30.00% 30.00%

Publicador:

Resumo:

We propose an analysis for detecting procedures and goals that are deterministic (i.e. that produce at most one solution), or predicates whose clause tests are mutually exclusive (which implies that at most one of their clauses will succeed) even if they are not deterministic (because they cali other predicates that can produce more than one solution). Applications of such determinacy information include detecting programming errors, performing certain high-level program transformations for improving search efñciency, optimizing low level code generation and parallel execution, and estimating tighter upper bounds on the computational costs of goals and data sizes, which can be used for program debugging, resource consumption and granularity control, etc. We have implemented the analysis and integrated it in the CiaoPP system, which also infers automatically the mode and type information that our analysis takes as input. Experiments performed on this implementation show that the analysis is fairly accurate and efncient.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

It is generally recognized that information about the runtime cost of computations can be useful for a variety of applications, including program transformation, granularity control during parallel execution, and query optimization in deductive databases. Most of the work to date on compile-time cost estimation of logic programs has focused on the estimation of upper bounds on costs. However, in many applications, such as parallel implementations on distributed-memory machines, one would prefer to work with lower bounds instead. The problem with estimating lower bounds is that in general, it is necessary to account for the possibility of failure of head unification, leading to a trivial lower bound of 0. In this paper, we show how, given type and mode information about procedures in a logic program, it is possible to (semi-automatically) derive nontrivial lower bounds on their computational costs. We also discuss the cost analysis for the special and frequent case of divide-and-conquer programs and show how —as a pragmatic short-term solution —it may be possible to obtain useful results simply by identifying and treating divide-and-conquer programs specially.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

We provide a method whereby, given mode and (upper approximation) type information, we can detect procedures and goals that can be guaranteed to not fail (i.e., to produce at least one solution or not termínate). The technique is based on an intuitively very simple notion, that of a (set of) tests "covering" the type of a set of variables. We show that the problem of determining a covering is undecidable in general, and give decidability and complexity results for the Herbrand and linear arithmetic constraint systems. We give sound algorithms for determining covering that are precise and efiicient in practice. Based on this information, we show how to identify goals and procedures that can be guaranteed to not fail at runtime. Applications of such non-failure information include programming error detection, program transiormations and parallel execution optimization, avoiding speculative parallelism and estimating lower bounds on the computational costs of goals, which can be used for granularity control. Finally, we report on an implementation of our method and show that better results are obtained than with previously proposed approaches.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of optimizations which includes granularity control and recursion elimination. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predeñned) predicates which traverse the terms involved. We propose a technique which has the potential of performing this computation much more efficiently. The technique is based on ñnding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows ñnding minimal transformations under certain criteria. We also discuss the advantages and applications of our technique (specifically in the task of granularity control) and present some performance results.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

While logic programming languages offer a great deal of scope for parallelism, there is usually some overhead associated with the execution of goals in parallel because of the work involved in task creation and scheduling. In practice, therefore, the "granularity" of a goal, i.e. an estimate of the work available under it, should be taken into account when deciding whether or not to execute a goal concurrently as a sepárate task. This paper describes a method for estimating the granularity of a goal at compile time. The runtime overhead associated with our approach is usually quite small, and the performance improvements resulting from the incorporation of grainsize control can be quite good. This is shown by means of experimental results.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Information about the computational cost of programs is potentially useful for a variety of purposes, including selecting among different algorithms, guiding program transformations, in granularity control and mapping decisions in parallelizing compilers, and query optimization in deductive databases. Cost analysis of logic programs is complicated by nondeterminism: on the one hand, procedures can return múltiple Solutions, making it necessary to estímate the number of solutions in order to give nontrivial upper bound cost estimates; on the other hand, the possibility of failure has to be taken into account while estimating lower bounds. Here we discuss techniques to address these problems to some extent.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Effective static analyses have been proposed which infer bounds on the number of resolutions or reductions. These have the advantage of being independent from the platform on which the programs are executed and have been shown to be useful in a number of applications, such as granularity control in parallel execution. On the other hand, in distributed computation scenarios where platforms with different capabilities come into play, it is necessary to express costs in metrics that include the characteristics of the platform. In particular, it is specially interesting to be able to infer upper and lower bounds on actual execution times. With this objective in mind, we propose an approach which combines compile-time analysis for cost bounds with a one-time profiling of the platform in order to determine the valúes of certain parameters for a given platform. These parameters calíbrate a cost model which, from then on, is able to compute statically time bound functions for procedures and to predict with a significant degree of accuracy the execution times of such procedures in the given platform. The approach has been implemented and integrated in the CiaoPP system.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The relationship between abstract interpretation and partial deduction has received considerable attention and (partial) integrations have been proposed starting from both the partial deduction and abstract interpretation perspectives. In this work we present what we argüe is the first fully described generic algorithm for efñcient and precise integration of abstract interpretation and partial deduction. Taking as starting point state-of-the-art algorithms for context-sensitive, polyvariant abstract interpretation and (abstract) partial deduction, we present an algorithm which combines the best of both worlds. Key ingredients include the accurate success propagation inherent to abstract interpretation and the powerful program transformations achievable by partial deduction. In our algorithm, the calis which appear in the analysis graph are not analyzed w.r.t. the original definition of the procedure but w.r.t. specialized definitions of these procedures. Such specialized definitions are obtained by applying both unfolding and abstract executability. Our framework is parametric w.r.t. different control strategies and abstract domains. Different combinations of such parameters correspond to existing algorithms for program analysis and specialization. Simultaneously, our approach opens the door to the efñcient computation of strictly more precise results than those achievable by each of the individual techniques. The algorithm is now one of the key components of the CiaoPP analysis and specialization system.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Dentro de los paradigmas de programación en el mundo de la informática tenemos la "Programación Lógica'', cuyo principal exponente es el lenguaje Prolog. Los programas Prolog se componen de un conjunto de predicados, cada uno de ellos definido en base a reglas que aportan un elevado nivel de abstracción y declaratividad al programador. Sin embargo, las formulación con reglas implica, frecuentemente, que un predicado se recompute varias veces para la misma consulta y además, Prolog utiliza un orden fijo para evaluar reglas y objetivos (evaluación SLD) que puede entrar en "bucles infinitos'' cuando ejecuta reglas recursivas declarativamente correctas. Estas limitaciones son atacadas de raiz por la tabulación, que se basa en "recordar'' en una tabla las llamadas realizadas y sus soluciones. Así, en caso de repetir una llamada tendríamos ya disponibles sus soluciones y evitamos la recomputación. También evita "bucles infinitos'' ya que las llamadas que los generan son suspendidas, quedando a la espera de que se computen soluciones para las mismas. La implementación de la tabulación no es sencilla. En particular, necesita de tres operaciones que no pueden ser ejecutadas en tiempo constante simultáneamente. Dichas operaciones son: suspensión de llamadas, relanzamiento de llamadas y {acceso a variables. La primera parte de la tesis compara tres implementaciones de tabulación sobre Ciao, cada una de las cuales penaliza una de estas operaciones. Por tanto, cada solución tiene sus ventajas y sus inconvenientes y se comportan mejor o peor dependiendo del programa ejecutado. La segunda parte de la tesis mejora la funcionalidad de la tabulación para combinarla con restricciones y también para evitar computaciones innecesarias. La programación con restricciones permite la resolución de ecuaciones como medio de programar, mecanismo altamente declarativo. Hemos desarrollado un framework para combinar la tabulación con las restricciones, priorizando objetivos como la flexibilidad, la eficiencia y la generalidad de nuestra solución, obteniendo una sinergia entre ambas técnicas que puede ser aplicada en numerosas aplicaciones. Por otra parte, un aspecto fundamental de la tabulación hace referencia al momento en que se retornan las soluciones de una llamada tabulada. Local evaluation devuelve soluciones cuando todas las soluciones de la llamada tabulada han sido computadas. Por contra, batched evaluation devuelve las soluciones una a una conforme van siendo computadas, por lo que se adapta mejor a problemas donde no nos interesa encontrar todas las soluciones. Sin embargo, su consumo de memoria es exponencialmente peor que el de local evaluation. La tesis presenta swapping evaluation, que devuelve soluciones tan pronto como son computadas pero con un consumo de memoria similar a la de local evaluation. Además, se implementan operadores de poda, once/1, para descartar la búsqueda de soluciones alternativas cuando encontramos la solución deseada. Por último, Prolog adopta con relativa facilidad soluciones para paralelismo gracias a su flexibilidad en el control de la ejecución y a que sus asignaciones son lógicas. La tercera parte de la tesis extiende el paralelismo conjuntivo de Ciao para trabajar con programas no deterministas, lo que presenta dos problemas principales: los objetivos atrapados y la recomputación de objetivos. Las soluciones clásicas para los objetivos atrapados rompían muchos invariantes de la ejecución Prolog, siendo soluciones difíciles de mantener y de extender, que la experiencia nos dice que han caído en desuso. Nosotros proponemos una solución modular (basada en la implementación de swapping evaluation), localizada y que no rompe los invariantes de la ejecución Prolog, pero que mantiene un alto rendimiento de la ejecución paralela. En referencia a la recomputación de objetivos paralelos en presencia de no determinismo hemos adaptado ténicas derivadas de la tabulación para memorizar computaciones de estos objetivos y evitar su recomputación.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Effective static analyses have been proposed which allow inferring functions which bound the number of resolutions or reductions. These have the advantage of being independent from the platform on which the programs are executed and such bounds have been shown useful in a number of applications, such as granularity control in parallel execution. On the other hand, in certain distributed computation scenarios where different platforms come into play, with each platform having different capabilities, it is more interesting to express costs in metrics that include the characteristics of the platform. In particular, it is specially interesting to be able to infer upper and lower bounds on actual execution time. With this objective in mind, we propose a method which allows inferring upper and lower bounds on the execution times of procedures of a program in a given execution platform. The approach combines compile-time cost bounds analysis with a one-time profiling of the platform in order to determine the values of certain constants for that platform. These constants calibrate a cost model which from then on is able to compute statically time bound functions for procedures and to predict with a significant degree of accuracy the execution times of such procedures in the given platform. The approach has been implemented and integrated in the CiaoPP system.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Abstract interpreters rely on the existence of a nxpoint algorithm that calculates a least upper bound approximation of the semantics of the program. Usually, that algorithm is described in terms of the particular language in study and therefore it is not directly applicable to programs written in a different source language. In this paper we introduce a generic, block-based, and uniform representation of the program control flow graph and a language-independent nxpoint algorithm that can be applied to a variety of languages and, in particular, Java. Two major characteristics of our approach are accuracy (obtained through a topdown, context sensitive approach) and reasonable efficiency (achieved by means of memoization and dependency tracking techniques). We have also implemented the proposed framework and show some initial experimental results for standard benchmarks, which further support the feasibility of the solution adopted.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The term "Logic Programming" refers to a variety of computer languages and execution models which are based on the traditional concept of Symbolic Logic. The expressive power of these languages offers promise to be of great assistance in facing the programming challenges of present and future symbolic processing applications in Artificial Intelligence, Knowledge-based systems, and many other areas of computing. The sequential execution speed of logic programs has been greatly improved since the advent of the first interpreters. However, higher inference speeds are still required in order to meet the demands of applications such as those contemplated for next generation computer systems. The execution of logic programs in parallel is currently considered a promising strategy for attaining such inference speeds. Logic Programming in turn appears as a suitable programming paradigm for parallel architectures because of the many opportunities for parallel execution present in the implementation of logic programs. This dissertation presents an efficient parallel execution model for logic programs. The model is described from the source language level down to an "Abstract Machine" level suitable for direct implementation on existing parallel systems or for the design of special purpose parallel architectures. Few assumptions are made at the source language level and therefore the techniques developed and the general Abstract Machine design are applicable to a variety of logic (and also functional) languages. These techniques offer efficient solutions to several areas of parallel Logic Programming implementation previously considered problematic or a source of considerable overhead, such as the detection and handling of variable binding conflicts in AND-Parallelism, the specification of control and management of the execution tree, the treatment of distributed backtracking, and goal scheduling and memory management issues, etc. A parallel Abstract Machine design is offered, specifying data areas, operation, and a suitable instruction set. This design is based on extending to a parallel environment the techniques introduced by the Warren Abstract Machine, which have already made very fast and space efficient sequential systems a reality. Therefore, the model herein presented is capable of retaining sequential execution speed similar to that of high performance sequential systems, while extracting additional gains in speed by efficiently implementing parallel execution. These claims are supported by simulations of the Abstract Machine on sample programs.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Introducción. La obesidad puede definirse como una enfermedad metabólica crónica de origen multifactorial, lo que provoca trastornos o problemas físicos y psicológicos a la persona, con patologías asociadas que limitan la esperanza de vida y deterioran la calidad de la misma, siendo determinante para sus áreas sociales y laborales. Este trastorno metabólico crónico se caracteriza por una acumulación excesiva de energía en el cuerpo en forma de grasa, lo que lleva a un aumento de peso con respecto al valor esperado por sexo, edad y altura. La gestión y el tratamiento de la obesidad tienen objetivos más amplios que la pérdida de peso e incluyen la reducción del riesgo y la mejora de la salud. Estos pueden ser alcanzados por la pérdida modesta de peso (es decir, 10.5% del peso corporal inicial), la mejora del contenido nutricional de la dieta y un modesto incremento en la actividad física y condición física. La dieta es uno de los métodos más populares para perder peso corporal. El ejercicio es otra alternativa para perder peso corporal. El aumento de ejercicio provoca un desequilibrio cuando se mantiene la ingesta calórica. También tiene ventajas, como la mejora del tono muscular, la capacidad cardiovascular, fuerza y flexibilidad, aumenta el metabolismo basal y mejora el sistema inmunológico. Objetivos. El objetivo de esta tesis es contribuir en un estudio de intervención para aclarar la evolución del peso corporal durante una intervención de dieta y ejercicio. Para ello, se evaluaron los efectos de la edad, sexo, índice de masa corporal inicial y el tipo de tratamiento en las tendencias de pérdida de peso. Otro objetivo de la tesis era crear un modelo de regresión lineal múltiple capaz de predecir la pérdida de peso corporal después del periodo de intervención. Y, por último, determinar el efecto sobre la composición corporal (peso corporal, índice de masa corporal, la masa grasa, y la masa libre de grasa) de las diferentes intervenciones basadas en ejercicios (fuerza, resistencia, resistencia combinada con fuerza, y las recomendaciones de actividad física (grupo control)) en combinación con dieta de adultos con sobrepeso y obesidad, después de la intervención, así como los cambios de la composición corporal 3 años más tarde. Diseño de la investigación. Los datos empleados en el análisis de esta tesis son parte del proyecto “Programas de Nutrición y Actividad Física para el tratamiento de la obesidad” (PRONAF). El proyecto PRONAF es un estudio clínico sobre programas de nutrición y actividad física para el sobrepeso y la obesidad, desarrollado en España durante varios años de intervención. Fue diseñado, en parte, para comparar diferentes tipos de intervención, con el objetivo de evaluar su impacto en las dinámicas de pérdida de peso, en personas con sobrepeso y obesidad. Como diseño experimental, el estudio se basó en una restricción calórica, a la que, en algunos casos, se le añadió un protocolo de entrenamiento (fuerza, resistencia, o combinado, en igualdad de volumen e intensidad). Las principales variables para la investigación que comprende esta tesis fueron: el peso corporal y la composición corporal (masa grasa y masa libre de grasa). Conclusiones. En esta tesis, para los programas de pérdida de peso en personas con sobrepeso y obesidad con un 25-30% de la restricción calórica, el peso corporal se redujo significativamente en ambos sexos, sin tener en cuenta la edad y el tipo de tratamiento seguido. Según los resultados del estudio, la pérdida de peso realizada por un individuo (hombre o mujer) durante los seis meses puede ser representada por cualquiera de las cinco funciones (lineal, potencial, exponencial, logarítmica y cuadrática) en ambos sexos, siendo la cuadrática la que tiende a representarlo mejor. Además, se puede concluir que la pérdida de peso corporal se ve afectada por el índice de masa corporal inicial y el sexo, siendo mayor para las personas obesas que para las de sobrepeso, que muestran diferencias entre sexos sólo en la condición de sobrepeso. Además, es posible calcular el peso corporal final de cualquier participante involucrado en una intervención utilizando la metodología del proyecto PRONAF sólo conociendo sus variables iniciales de composición corporal. Además, los cuatro tipos de tratamientos tuvieron resultados similares en cambios en la composición corporal al final del período de intervención, con la única excepción de la masa libre de grasa, siendo los grupos de entrenamiento los que la mantuvieron durante la restricción calórica. Por otro lado, sólo el grupo combinado logra mantener la reducción de la masa grasa (%) 3 años después del final de la intervención. ABSTRACT Introduction. Obesity can be defined as a chronic metabolic disease from a multifactorial origin, which leads to physical and psychological impacts to the person, with associated pathologies that limit the life expectancy and deteriorate the quality of it, being determinant for the social and labor areas of the person. This chronic metabolic disorder is characterized by an excessive accumulation of energy in the body as fat, leading to increased weight relative to the value expected by sex, age and height. The management and treatment of obesity have wider objectives than weight loss alone and include risk reduction and health improvement. These may be achieved by modest weight loss (i.e. 5–10% of initial body weight), improved nutritional content of the diet and modest increases in physical activity and fitness. Weight loss through diet is one of the most popular approaches to lose body weight. Exercise is another alternative to lose body weight. The increase of exercise causes an imbalance when the caloric intake is maintained. It also has advantages such as improved muscle tone, cardiovascular fitness, strength and flexibility, increases the basal metabolism and improves immune system. Objectives. The aim of this thesis is to contribute with an interventional study to clarify the evolution of the body weight during a diet and exercise intervention. For this, the effects of age, sex, initial body mass index and type of treatment on weight loss tendencies were evaluated. Another objective of the thesis was to create a multiple linear regression model able to predict the body weight loss after the intervention period. And, finally, to determine the effect upon body composition (body weight, body mass index, fat mass, and fat-free mass of different exercise-based interventions (strength, endurance, combined endurance and strength, and physical activity recommendations group (control group)) combined with diet in overweight and obese adults, after intervention as well as body composition changes 3 years later. Research Design. The data used in the analysis of this thesis are part of the project "Programs of Nutrition and Physical Activity for the treatment of obesity" (PRONAF). The PRONAF project is a clinical trial program about nutrition and physical activity for overweight and obesity, developed in Spain for several years of intervention. It was designed, in part, to compare different types of intervention, in order to assess their impact on the dynamics of weight loss in overweight and obese people. As experimental design, the study was based on caloric restriction, which, in some cases, added a training protocol (strength, endurance, or combined in equal volume and intensity). The main research variables comprising this thesis were: body weight and body composition outcomes (fat mass and fat-free mass). Conclusions. In this thesis, for weight loss programs in overweight and obese people with 25-30% of caloric restriction, the body weight was significantly decreased in both sexes, regardless the age and type of followed treatment. According to the results of the study, the weight loss performed by an individual (male or female) during six months can be represented by any of the five functions (linear, power law, exponential, logarithmic and quadratic) in both sexes, being the quadratic one which tends to represent it better. In addition, it can be concluded that the body weight loss is affected by the initial body mass index and sex condition, being greater for the obese people than for the overweight one, showing differences between sexes only in the overweight condition. Moreover, it is possible to calculate the final body weight of any participant engaged in an intervention using the PRONAF Project methodology only knowing their initial body composition variables. Furthermore, the four types of treatments had similar results on body composition changes at the end of the intervention period, with the only exception of fat-free mass, being the training groups the ones that maintained it during the caloric restriction. On the other hand, only the combined group achieved to maintain the fat mass (%) reduced 3 years after the end of the intervention.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Los tipos de datos concurrentes son implementaciones concurrentes de las abstracciones de datos clásicas, con la diferencia de que han sido específicamente diseñados para aprovechar el gran paralelismo disponible en las modernas arquitecturas multiprocesador y multinúcleo. La correcta manipulación de los tipos de datos concurrentes resulta esencial para demostrar la completa corrección de los sistemas de software que los utilizan. Una de las mayores dificultades a la hora de diseñar y verificar tipos de datos concurrentes surge de la necesidad de tener que razonar acerca de un número arbitrario de procesos que invocan estos tipos de datos de manera concurrente. Esto requiere considerar sistemas parametrizados. En este trabajo estudiamos la verificación formal de propiedades temporales de sistemas concurrentes parametrizados, poniendo especial énfasis en programas que manipulan estructuras de datos concurrentes. La principal dificultad a la hora de razonar acerca de sistemas concurrentes parametrizados proviene de la interacción entre el gran nivel de concurrencia que éstos poseen y la necesidad de razonar al mismo tiempo acerca de la memoria dinámica. La verificación de sistemas parametrizados resulta en sí un problema desafiante debido a que requiere razonar acerca de estructuras de datos complejas que son accedidas y modificadas por un numero ilimitado de procesos que manipulan de manera simultánea el contenido de la memoria dinámica empleando métodos de sincronización poco estructurados. En este trabajo, presentamos un marco formal basado en métodos deductivos capaz de ocuparse de la verificación de propiedades de safety y liveness de sistemas concurrentes parametrizados que manejan estructuras de datos complejas. Nuestro marco formal incluye reglas de prueba y técnicas especialmente adaptadas para sistemas parametrizados, las cuales trabajan en colaboración con procedimientos de decisión especialmente diseñados para analizar complejas estructuras de datos concurrentes. Un aspecto novedoso de nuestro marco formal es que efectúa una clara diferenciación entre el análisis del flujo de control del programa y el análisis de los datos que se manejan. El flujo de control del programa se analiza utilizando reglas de prueba y técnicas de verificación deductivas especialmente diseñadas para lidiar con sistemas parametrizados. Comenzando a partir de un programa concurrente y la especificación de una propiedad temporal, nuestras técnicas deductivas son capaces de generar un conjunto finito de condiciones de verificación cuya validez implican la satisfacción de dicha especificación temporal por parte de cualquier sistema, sin importar el número de procesos que formen parte del sistema. Las condiciones de verificación generadas se corresponden con los datos manipulados. Estudiamos el diseño de procedimientos de decisión especializados capaces de lidiar con estas condiciones de verificación de manera completamente automática. Investigamos teorías decidibles capaces de describir propiedades de tipos de datos complejos que manipulan punteros, tales como implementaciones imperativas de pilas, colas, listas y skiplists. Para cada una de estas teorías presentamos un procedimiento de decisión y una implementación práctica construida sobre SMT solvers. Estos procedimientos de decisión son finalmente utilizados para verificar de manera automática las condiciones de verificación generadas por nuestras técnicas de verificación parametrizada. Para concluir, demostramos como utilizando nuestro marco formal es posible probar no solo propiedades de safety sino además de liveness en algunas versiones de protocolos de exclusión mutua y programas que manipulan estructuras de datos concurrentes. El enfoque que presentamos en este trabajo resulta ser muy general y puede ser aplicado para verificar un amplio rango de tipos de datos concurrentes similares. Abstract Concurrent data types are concurrent implementations of classical data abstractions, specifically designed to exploit the great deal of parallelism available in modern multiprocessor and multi-core architectures. The correct manipulation of concurrent data types is essential for the overall correctness of the software system built using them. A major difficulty in designing and verifying concurrent data types arises by the need to reason about any number of threads invoking the data type simultaneously, which requires considering parametrized systems. In this work we study the formal verification of temporal properties of parametrized concurrent systems, with a special focus on programs that manipulate concurrent data structures. The main difficulty to reason about concurrent parametrized systems comes from the combination of their inherently high concurrency and the manipulation of dynamic memory. This parametrized verification problem is very challenging, because it requires to reason about complex concurrent data structures being accessed and modified by threads which simultaneously manipulate the heap using unstructured synchronization methods. In this work, we present a formal framework based on deductive methods which is capable of dealing with the verification of safety and liveness properties of concurrent parametrized systems that manipulate complex data structures. Our framework includes special proof rules and techniques adapted for parametrized systems which work in collaboration with specialized decision procedures for complex data structures. A novel aspect of our framework is that it cleanly differentiates the analysis of the program control flow from the analysis of the data being manipulated. The program control flow is analyzed using deductive proof rules and verification techniques specifically designed for coping with parametrized systems. Starting from a concurrent program and a temporal specification, our techniques generate a finite collection of verification conditions whose validity entails the satisfaction of the temporal specification by any client system, in spite of the number of threads. The verification conditions correspond to the data manipulation. We study the design of specialized decision procedures to deal with these verification conditions fully automatically. We investigate decidable theories capable of describing rich properties of complex pointer based data types such as stacks, queues, lists and skiplists. For each of these theories we present a decision procedure, and its practical implementation on top of existing SMT solvers. These decision procedures are ultimately used for automatically verifying the verification conditions generated by our specialized parametrized verification techniques. Finally, we show how using our framework it is possible to prove not only safety but also liveness properties of concurrent versions of some mutual exclusion protocols and programs that manipulate concurrent data structures. The approach we present in this work is very general, and can be applied to verify a wide range of similar concurrent data types.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

In recent years, coinciding with adjustments to the Bologna process, many European universities have attempted to improve their international profile by increasing course offerings in English. According to the Institute of International Education (IIE), Spain has notably increased its English-taught higher education programs, ranking fifth in the list of European countries by number of English-taught Master's programs in 2013. This article presents the goals and preliminary results of an on-going innovative education project (TechEnglish) that aims to promote course offerings in English at the Technical University of Madrid (Universidad Politécnica de Madrid, UPM). The UPM is the oldest and largest of all Technical Universities in Spain. It offers graduate and postgraduate programs that cover all the engineering disciplines as well as architecture. Currently, the UPM has no specific bilingual/multilingual program to promote teaching in English, although there is an Educational Model Whitepaper (with a focus on undergraduate degrees) that promotes the development of activities like an International Semester or a unique shared curriculum. The TechEnglish project is an attempt to foster courses taught in English at 7 UPM Technical Schools, including students and 80 faculty members. Four tasks were identified: (1) to design a university wide framework to increase course offerings, (2) to identify administrative difficulties, (3) to increase visibility of courses offered, and (4) to disseminate the results of the project. First, to design a program we analyzed existing programs at other Spanish universities, and other projects and efforts already under way at the UPM. A total of 13 plans were analyzed and classified according to their relation with students (learning), professors (teaching), administration, course offerings, other actors/institutions within the university (e.g., language departments), funds and projects, dissemination activities, mobility plans and quality control. Second, to begin to identify administrative and organizational difficulties in the implementation of teaching in English, we first estimated the current and potential course offerings at the undergraduate level at the UPM using a survey (student, teacher and administrative demand, level of English and willingness to work in English). Third, to make the course offerings more attractive for both Spanish and international students we examined the way the most prestigious universities in Spain and in Europe try to improve the visibility of their academic offerings in English. Finally, to disseminate the results of the project we created a web page and a workspace on the Moodle education platform and prepared conferences and workshops within the UPM. Preliminary results show that increasing course offerings in English is an important step to promote the internationalization of the University. The main difficulties identified at the UPM were related to how to acknowledge/certify the departments, teachers or students involved in English courses, how students should register for the courses, how departments should split and schedule the courses (Spanish and English), and the lack of qualified personnel. A concerted effort could be made to increase the visibility of English-taught programs offered on-line.