10 research outputs found
Dynamic slicing of concurrent specification languages
This is the author’s version of a work that was accepted for publication in Parallel Computing. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Parallel Computing, 53, 1-22., (2016). DOI 10.1016/j.parco.2016.01.006.[EN] Dynamic slicing is a technique to extract the part of the program (called slice) that influences or is influenced, in a particular execution, by a given point of interest in the source code (called slicing criterion). Since a single execution is considered, the technique often uses a trace of this execution to analyze data and control dependencies. In this work we present the first formulation and implementation of dynamic slicing in the context of CSP. Most of the ideas presented can be directly applied to other concurrent specification languages such as Promela or CCS, but we center the discussion and the implementation
on CSP. We base our technique on a new data structure to represent CSP computations called track. A track is a data structure which represents the sequence of expressions that have been evaluated during the computation, and moreover, it is labeled with the location of these expressions in the specification. The implementation of a dynamic slicer for CSP is useful for debugging, program comprehension, and program specialization, and it is also interesting from a theoretical perspective because CSP introduces difficulties such as heavy concurrency and non-determinism, synchronizations, frequent absence of data dependence, etc.
© 2016 Elsevier B.V. All rights reservedThis work has been partially supported by the EU (FEDER) and the Spanish Ministerio de Economia y Competitividad under Grant TIN2013-44742-C4-1-R and by the Generalitat Valenciana under Grant PROMETEOII/2015/013 (SmartLogic). Salvador Tamarit was partially supported by Madrid regional projects N-GREENS Software-CM (S2013/ICE-2731), and by European Union project POLCA (STREP FP7-ICT-20133.4 610686).Llorens Agost, ML.; Oliver Villarroya, J.; Silva, J.; Tamarit Muñoz, S. (2016). Dynamic slicing of concurrent specification languages. Parallel Computing. 53:1-22. https://doi.org/10.1016/j.parco.2016.01.006S1225
Graph generation to statically represent CSP processes
The CSP language allows the specification and verification of complex concurrent systems. Many analyses for CSP exist that have been successfully applied in different industrial projects. However, the cost of the analyses performed is usually very high, and sometimes prohibitive, due to the complexity imposed by the non-deterministic execution order of processes and to the restrictions imposed on this order by synchronizations. In this work, we define a data structure that allows us to statically simplify a specification before the analyses. This simplification can drastically reduce the time needed by many CSP analyses. We also introduce an algorithm able to automatically generate this data structure from a CSP specification. The algorithm has been proved correct and its implementation for the CSP's animator ProB is publicly available. © 2011 Springer-Verlag.This work has been partially supported by the Spanish Ministerio de Ciencia e Innovación under grant TIN2008-06622-C03-02, by the Generalitat Valenciana under grant ACOMP/2010/042, and by the Universidad Politécnica de Valencia (Program PAID-06-08). Salvador Tamarit was partially supported by the Spanish MICINN under FPI grant BES-2009-015019.Llorens Agost, ML.; Oliver Villarroya, J.; Silva Galiana, JF.; Tamarit Muñoz, S. (2011). Graph generation to statically represent CSP processes. En Logic-Based Program Synthesis and Transformation. Springer Verlag (Germany). 6564:52-66. https://doi.org/10.1007/978-3-642-20551-4_4S52666564Brassel, B., Hanus, M., Huch, F., Vidal, G.: A Semantics for Tracing Declarative Multi-paradigm Programs. In: Moggi, E., Warren, D.S. (eds.) 6th ACM SIGPLAN Int’l Conf. on Principles and Practice of Declarative Programming (PPDP 2004), pp. 179–190. ACM, New York (2004)Butler, M., Leuschel, M.: Combining CSP and B for specification and property verification. In: Fitzgerald, J., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 221–236. Springer, Heidelberg (2005)Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)Kavi, K.M., Sheldon, F.T., Shirazi, B., Hurson, A.R.: Reliability Analysis of CSP Specifications using Petri Nets and Markov Processes. In: 28th Annual Hawaii Int’l Conf. on System Sciences (HICSS 1995). Software Technology, vol. 2, pp. 516–524. IEEE Computer Society, Washington, DC, USA (1995)Ladkin, P., Simons, B.: Static Deadlock Analysis for CSP-Type Communications. In: Responsive Computer Systems (Ch. 5). Kluwer Academic Publishers, Dordrecht (1995)Leuschel, M., Butler, M.: ProB: an Automated Analysis Toolset for the B Method. Journal of Software Tools for Technology Transfer 10(2), 185–203 (2008)Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S.: Static Slicing of CSP Specifications. In: Hanus, M. (ed.) 18th Int’l Symp. on Logic-Based Program Synthesis and Transformation (LOPSTR 2008), pp. 141–150. Technical report, DSIC-II/09/08, Universidad Politécnica de Valencia (July 2008)Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S.: SOC: a Slicer for CSP Specifications. In: Puebla, G., Vidal, G. (eds.) 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation (PEPM 2009), pp. 165–168. ACM, New York (2009)Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S.: The MEB and CEB static analysis for CSP specifications. In: Hanus, M. (ed.) LOPSTR 2008. LNCS, vol. 5438, pp. 103–118. Springer, Heidelberg (2009)Llorens, M., Oliver, J., Silva, J., Tamarit, S.: A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended). Technical report DSIC, Universidad Politécnica de Valencia, Valencia, Spain (June 2010), http://www.dsic.upv.es/~jsilvaLlorens, M., Oliver, J., Silva, J., Tamarit, S.: Transforming Communicating Sequential Processes to Petri Nets. In: Topping, B.H.V., Adam, J.M., Pallarés, F.J., Bru, R., Romero, M.L. (eds.) Seventh Int’l Conference on Engineering Computational Technology (ICECT 2010). Civil-Comp Press, Stirlingshire, UK, Paper 26 (2010)Roscoe, A.W., Gardiner, P.H.B., Goldsmith, M., Hulance, J.R., Jackson, D.M., Scattergood, J.B.: Hierarchical Compression for Model-Checking CSP or How to Check 1020 Dining Philosophers for Deadlock. In: Brinksma, E., Cleaveland, R., Larsen, K.G., Margaria, T., Steffen, B. (eds.) TACAS 1995. LNCS, vol. 1019, pp. 133–152. Springer, Heidelberg (1995)Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall, Upper Saddle River (2005
A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended)
The CSP language allows the specification and verification of
complex concurrent systems. Many analyses for CSP exist that have been
successfully applied in different industrial projects. However, the cost of
the analyses performed is usually very high, and sometimes prohibitive,
due to the complexity imposed by the non-deterministic execution order
of processes and to the restrictions imposed on this order by synchronizations. In this work, we define a data structure that allows us to statically
simplify a specification before the analyses. This simplification can dras-
tically reduce the time needed by many CSP analyses. We also introduce
an algorithm able to automatically generate this data structure from a
CSP specification. The algorithm has been proved correct and its implementation for the CSP's animator ProB is publicly available.Tamarit Muñoz, S.; Silva Galiana, JF.; Llorens Agost, ML.; Oliver Villarroya, FJ. (2010). A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended). http://hdl.handle.net/10251/839
An empirical analysis of the influence of classmates on the academic performance
This poster presents ongoing work that studies the influence
of classmates over students’ grades. We want to analyze different
students habits and empirically quantify how they in-
fluence their academic performance. In particular, we want
to answer the following questions: Do best/worst students
sit together? Do students who sit alone get better grades
than those who sit in pairs?This work has been partially supported by the Spanish MEC under grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under grant PROMETEO/2011/052. Salvador Tamarit was partially supported by the Spanish MICINN under FPI grant BES-2009-015019.Herrero Cuco, C.; Llorens Agost, ML.; Oliver Villarroya, J.; Silva Galiana, JF.; Tamarit Muñoz, S. (2013). An empirical analysis of the influence of classmates on the academic performance. En Proceeding ITiCSE '13 Proceedings of the 18th ACM conference on Innovation and technology in computer science education. Association for Computing Machinery (ACM). 328-328. https://doi.org/10.1145/2462476.2465608S32832
The influence of students distribution on their grades
This position paper defends the opinion that the distance of
students to the professor in the classroom is directly related
to their grades. This opinion is based on the results obtained
in a large experiment performed during two academic years
in various degrees, courses and semesters of two engineering
schools. The experiment collected and processed data about
the distribution of students in lectures and their final grades.
Our results quantitatively confirm that grades can vary up
to 14% depending on the distance to the professor.This work has been partially supported by the Spanish
MEC under grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under grant PROMETEO/2011/052. Salvador Tamarit was partially supported by the Spanish
MICINN under FPI grant BES-2009-015019.Herrero Cuco, C.; Llorens Agost, ML.; Oliver Villarroya, J.; Silva Galiana, JF.; Tamarit Muñoz, S. (2013). The influence of students distribution on their grades. En Proceeding ITiCSE '13 Proceedings of the 18th ACM conference on Innovation and technology in computer science education. Association for Computing Machinery (ACM). 316-316. https://doi.org/10.1145/2462476.2465575S31631
¿Cómo comprobar si 500 alumnos son competentes en el uso de un entorno de programación?
[EN] In view of the challenge to evaluate the CT-13 Specific Tools in a subject with more than 500 students, like Introduction to Computing and Programming in the first course of Bachelor’s Degree in Computer Engineering in the UPV, we have developed a computer application which, from the assessment tasks designed by the teacher, proposes it to the student, pick the evidences up and provides a qualification. The teacher can check the gathered information, and, where appropriate, she can change this qualification. In this communication, we describe the developed system, we cross-check the efficiency of the proposal and debate the strong and weak points, pointing out possible improvements.[ES] Ante el reto de evaluar la CT-13 Instrumental específica en una una asignaturade más de 500 alumnos, como es Introduccion a la Informática yla Programacion de primer curso del Grado en Ingeniería Informática dela UPV, se ha desarrollado una aplicación informática que, a partir dela tarea de evaluación diseñada por el profesor, la propone al alumno, recogelas evidencias y provee una calicación. El profesor puede revisar lainformación recogida y, en su caso, modicar dicha calicación. En estacomunicación se describe el sistema desarrollado, se contrasta la efectividadde la propuesta y se discuten los puntos fuertes y débiles, señalando posibles mejoras.Llorens Agost, ML.; Marqués, F.; Prieto Saez, N. (2017). ¿Cómo comprobar si 500 alumnos son competentes en el uso de un entorno de programación?. En In-Red 2017. III Congreso Nacional de innovación educativa y de docencia en red. Editorial Universitat Politècnica de València. 1140-1154. https://doi.org/10.4995/INRED2017.2017.6731OCS1140115
Dynamic Slicing of CSP via Tracking
Dynamic slicing is a technique to extract the part of the
program (called slice) that influences or is influenced, in a particular
execution, by a given point of interest in the source code (called slicing
criterion). Since a single execution is considered, the technique often
uses a trace of this execution to analyze data and control dependencies.
In this work we present the first formulation and implementation
of dynamic slicing in the context of CSP. The implementation of a dynamic
slicer for CSP is useful for debugging, program comprehension,
and program specialization, and it is also interesting from a theoretical
perspective because CSP introduces difficulties such as heavy concurrency
and non-determinism, synchronizations, frequent absence of data
dependence, etc. We base our technique on a new data structure to represent
CSP computations called track.This work has been partially supported by the EU (FEDER) and the Spanish Ministerio de Economía y Competitividad (Secretaría de Estado de Investigación, Desarrollo e Innovación) under grant TIN2013-44742-C4-1-R (CAVI-ROSE) and by the Generalitat Valenciana under grant PROMETEOII/2015/013. Salvador Tamarit was partially supported by EU FP7-ICT-2013.3.4 project 610686 POLCA, Comunidad de Madrid project S2013/ICE-2731 N-Greens Software and MINECO Projects TIN2012-39391-C0-03 and TIN2012-39391-C04-04 (StrongSoft).Llorens Agost, ML.; Oliver Villarroya, J.; Silva, J.; Tamarit Muñoz, S. (2015). Dynamic Slicing of CSP via Tracking. Università di Siena. http://hdl.handle.net/10251/87501
Generating a Petri net from a CSP specification: a semantics-based method
[EN] The specification and simulation of complex concurrent systems is a difficult task due to the intricate combinations of message passing and synchronizations that can occur between the components of the system. Two of the most extended formalisms used to specify, verify and simulate such kind of systems are CSP and the Petri nets. This work introduces a new technique that allows us to automatically transform a CSP specification into an equivalent Petri net. The transformation is formally defined by instrumenting the operational semantics of CSP. Because the technique uses a semantics-directed
transformation, it produces Petri nets that are closer to the CSP specification and thus easier to understand. This result is interesting because it allows CSP developers not only to graphically animate their specifications through the use of the equivalent Petri net, but it also allows them to use all the tools and analysis techniques developed for Petri nets.This work has been partially supported by the Spanish Ministerio de Economia y Competitividad (Secretaria de Estado de Investigacion, Desarrollo e Innovacion) under Grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under Grant PROMETEO/2011/052. S. Tamarit was partially supported by the Spanish MICINN under FPI Grant BES-2009-015019.Llorens Agost, ML.; Oliver Villarroya, J.; Silva Galiana, JF.; Tamarit Muñoz, S. (2012). Generating a Petri net from a CSP specification: a semantics-based method. Advances in Engineering Software. 50:110-130. https://doi.org/10.1016/j.advengsoft.2012.02.006S1101305
EMPEZAR A PROGRAMAR USANDO JAVA
Este libro es una introducción al diseño metodológico de programas en la que se incide en el uso de los tipos de datos que dichos programas manipulan para representar el dominio de los problemas que resuelven.En concreto, la aproximación al diseño de programas seguida en este libro es la denominada Programación Orientada a Objetos,usa Java como lenguaje vehicular, incluye los tópicos habituales de un curso de programación a pequeña escala y hace de la eficiencia el criterio último de diseño de programas y tipos de datos.Aunque este libro va dirigido principalmente a estudiantes de primer curso del nuevo Grado en Informática,también puede resultar de utilidad en otros estudios universitarios o, incluso,en aquellos ámbitos académicos e industriales donde una buena fundamentación en la construcción y análisis de programas es necesariaLlorens Agost, ML.; Gómez Adrian, JA.; Galiano Ronda, IR.; Herrero Cuco, C.; Marqués Hernández, F.; Casanova Faus, A.; González Mollá, J.... (2016). EMPEZAR A PROGRAMAR USANDO JAVA. Editorial Universitat Politècnica de València. http://hdl.handle.net/10251/70965EDITORIA
Microrelatario
Basta/Prou es el resultado de El desafío por la erradicación de la
violencia contra las mujeres que el Instituto Universitario de Estudios
Feministas y de Género Purificación Escribano de la Universitat Jaume
I lanzó en los Diez días contra la violencia de género 2012