Hostname: page-component-78c5997874-8bhkd Total loading time: 0 Render date: 2024-11-03T03:32:28.521Z Has data issue: false hasContentIssue false

Abstract interpretation of temporal concurrent constraint programs

Published online by Cambridge University Press:  10 February 2014

MORENO FALASCHI
Affiliation:
Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche Università di Siena, Siena, Italy (e-mail: [email protected])
CARLOS OLARTE
Affiliation:
Departamento de Electrónica y Ciencias de la Computación Pontificia Universidad Javeriana, Cali, Colombia (e-mail: [email protected])
CATUSCIA PALAMIDESSI
Affiliation:
INRIA and LIX Ecole Polytechnique, Palaiseau, France (e-mail: [email protected])

Abstract

Timed Concurrent Constraint Programming (tcc) is a declarative model for concurrency offering a logic for specifying reactive systems, i.e., systems that continuously interact with the environment. The universal tcc formalism (utcc) is an extension of tcc with the ability to express mobility. Here mobility is understood as communication of private names as typically done for mobile systems and security protocols. In this paper we consider the denotational semantics for tcc, and extend it to a “collecting” semantics for utcc based on closure operators over sequences of constraints. Relying on this semantics, we formalize a general framework for data flow analyses of tcc and utcc programs by abstract interpretation techniques. The concrete and abstract semantics that we propose are compositional, thus allowing us to reduce the complexity of data flow analyses. We show that our method is sound and parametric with respect to the abstract domain. Thus, different analyses can be performed by instantiating the framework. We illustrate how it is possible to reuse abstract domains previously defined for logic programming to perform, for instance, a groundness analysis for tcc programs. We show the applicability of this analysis in the context of reactive systems. Furthermore, we also make use of the abstract semantics to exhibit a secrecy flaw in a security protocol. We also show how it is possible to make an analysis which may show that tcc programs are suspension-free. This can be useful for several purposes, such as for optimizing compilation or for debugging.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2014 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Armando, A. and Compagna, L. 2008. Sat-based model-checking for security protocols analysis. International Journal of Information Security 7, 1, 332.Google Scholar
Armstrong, T., Marriott, K., Schachte, P. and Søndergaard, H. 1998. Two classes of Boolean functions for dependency analysis. Science of Computer Programming 31, 1, 345.Google Scholar
Berry, G. and Gonthier, G. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19, 2, 87152.Google Scholar
Bodei, C., Brodo, L., Degano, P. and Gao, H. 2010. Detecting and preventing type flaws at static time. Journal of Computer Security 18, 2, 229264.Google Scholar
Boreale, M. 2001. Symbolic trace analysis of cryptographic protocols. In International Colloquium on Automata, Languages and Programming (ICALP), Orejas, F., Spirakis, P. G. and van Leeuwen, J., Eds., LNCS, vol. 2076. Springer, Berlin, Germany, 667681.Google Scholar
Codish, M. and Demoen, B. 1994. Deriving polymorphic type dependencies for logic programs using multiple incarnations of prop. In First International Static Analysis Symposium (SAS '94), Charlier, B. L., Ed., LNCS, vol. 864. Springer, Berlin, Germany, 281296.Google Scholar
Codish, M., Falaschi, M. and Marriott, K. 1994. Suspension analyses for concurrent logic programs. ACM Transactions on Programming Languages and Systems 16, 3, 649686.CrossRefGoogle Scholar
Codish, M., Falaschi, M., Marriott, K. and Winsborough, W. 1997. A confluent semantic basis for the analysis of concurrent constraint logic programs. Journal of Logic Programming 30, 1, 5381.CrossRefGoogle Scholar
Codish, M., Søndergaard, H. and Stuckey, P. 1999. Sharing and groundness dependencies in logic programs. ACM Transations on Programming Languages and Systems 21, 5, 948976.CrossRefGoogle Scholar
Comini, M., Titolo, L. and Villanueva, A. 2011. Abstract diagnosis for timed concurrent constraint programs. Theory and Practice of Logic Programming 11, 4–5, 487502.CrossRefGoogle Scholar
Cousot, P. and Cousot, R. 1979. Systematic design of program analysis frameworks. In Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming (POPL), Aho, A. V., Zilles, S. N. and Rosen, B. K., Eds. ACM Press, New York, NY, 269282.Google Scholar
Cousot, P. and Cousot, R. 1992. Abstract interpretation and applications to logic programs. Journal of Logic Programming 13, 2&3, 103179.Google Scholar
de Boer, F. S., Gabbrielli, M., Marchiori, E. and Palamidessi, C. 1997. Proving concurrent constraint programs correct. ACM Transactions on Programming Languages and Systems 19, 5, 685725.CrossRefGoogle Scholar
de Boer, F. S., Gabbrielli, M. and Meo, M. C. 2000. A timed concurrent constraint language. Information and Computation 161, 1, 4583.Google Scholar
de Boer, F. S., Pierro, A. D. and Palamidessi, C. 1995. Nondeterminism and infinite computations in constraint programming. Theoretical Computer Science 151, 1, 3778.CrossRefGoogle Scholar
Dolev, D. and Yao, A. C. 1983. On the security of public key protocols. IEEE Transactions on Information Theory 29, 12, 198208.CrossRefGoogle Scholar
Escobar, S., Meadows, C. and Meseguer, J. 2011. State space reduction in the Maude-nrl protocol analyzer. CoRR abs/1105.5282.Google Scholar
Fages, F., Ruet, P. and Soliman, S. 2001. Linear concurrent constraint programming: Operational and phase semantics. Information and Computation 165, 1, 1441.Google Scholar
Falaschi, M., Gabbrielli, M., Marriott, K. and Palamidessi, C. 1993. Compositional analysis for concurrent constraint programming. In LICS. IEEE Computer Society, Washington, DC, 210221.Google Scholar
Falaschi, M., Gabbrielli, M., Marriott, K. and Palamidessi, C. 1997a. Confluence in concurrent constraint programming. Theoretical Computer Science 183, 2, 281315.CrossRefGoogle Scholar
Falaschi, M., Gabbrielli, M., Marriott, K. and Palamidessi, C. 1997b. Constraint logic programming with dynamic scheduling: A semantics based on closure operators. Information and Computation 137, 1, 4167.Google Scholar
Falaschi, M., Olarte, C. and Palamidessi, C. 2009. A framework for abstract interpretation of timed concurrent constraint programs. In 11th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP), Porto, A. and López-Fraguas, F. J., Eds. ACM, New York, NY, 207218.Google Scholar
Falaschi, M., Olarte, C., Palamidessi, C. and Valencia, F. 2007. Declarative diagnosis of temporal concurrent constraint programs. In 23rd International Conference on Logic Programming (ICLP), Dahl, V. and Niemelä, I., Eds. LNCS, vol. 4670. Springer, New York, NY, 271285.Google Scholar
Falaschi, M. and Villanueva, A. 2006. Automatic verification of timed concurrent constraint programs. Theory and Practice of Logic Programming 6, 3, 265300.CrossRefGoogle Scholar
Fiore, M. P. and Abadi, M. 2001. Computing symbolic models for verifying cryptographic protocols. In 14th IEEE Computer Security Foundations Workshop (CSFW-14). IEEE Computer Society, Washington, DC, 160173.Google Scholar
Giacobazzi, R., Debray, S. K. and Levi, G. 1995. Generalized semantics and abstract interpretation for constraint logic programs. Journal of Logic Programming 25, 3, 191247.Google Scholar
Haemmerlé, R., Fages, F. and Soliman, S. 2007. Closures and modules within linear logic concurrent constraint programming. In Proceedings of the Foundations of Software Technology and Theoretical Computer Science (FSTTCS), Arvind, V. and Prasad, S., Eds. LNCS, vol. 4855. Springer, New York, NY, 544556.Google Scholar
Hentenryck, P. V., Saraswat, V. A. and Deville, Y. 1998. Design, implementation, and evaluation of the constraint language cc (fd). Journal of Logic Programming 37, 1–3, 139164.Google Scholar
Hildebrandt, T. and López, H. A. 2009. Types for secure pattern matching with local knowledge in universal concurrent constraint programming. In International Conference on Logic Programming (ICLP), Hill, P. M. and Warren, D. S., Eds. LNCS, vol. 5649. Springer, New York, NY, 417431.Google Scholar
Jaffar, J. and Lassez, J.-L. 1987. Constraint logic programming. In Fourteenth Annual ACM Symposium on Principles of Programming Languages (POPL), Munich, Germany. ACM Press, New York, NY, 111119.Google Scholar
Jagadeesan, R., Marrero, W., Pitcher, C. and Saraswat, V. A. 2005. Timed constraint programming: A declarative approach to usage control. In Proceedings of Principles and Practice of Declarative Programming (PPDP), Portugal, Lisbon, Barahona, P. and Felty, A. P., Eds. ACM, New York, NY, 164175.Google Scholar
López, H. A., Olarte, C. and Pérez, J. A. 2009. Towards a unified framework for declarative structured communications. In Proceedings of the Second International Workshop on PLACES, Beresford, A. R. and Gay, S. J., Eds. EPTCS, vol. 17. 115. ISSN: .Google Scholar
Lowe, G. 1996. Breaking and fixing the Needham-Schroeder public-key protocol using fdr. Software – Concepts and Tools 17, 3, 93102.Google Scholar
Maher, M. J. 1988. Complete axiomatizations of the algebras of finite, rational and infinite trees. In Proceedings of the Third Annual Symposium on Logic in Computer Science (LICS '88). IEEE Computer Society, Washington, DC, 348357.Google Scholar
Mendler, N. P., Panangaden, P., Scott, P. J. and Seely, R. A. G. 1995. A logical view of concurrent constraint programming. Nordic Journal of Computing 2, 2, 181220.Google Scholar
Milner, R., Parrow, J. and Walker, D. 1992. A calculus of mobile processes, parts I and II. Information and Computation 100, 1, 140.CrossRefGoogle Scholar
Nielsen, M., Palamidessi, C. and Valencia, F. 2002a. Temporal concurrent constraint programming: Denotation, logic and applications. Nordic Journal of Computing 9, 1, 145188.Google Scholar
Nielsen, M., Palamidessi, C. and Valencia, F. D. 2002b. On the expressive power of temporal concurrent constraint programming languages. In Proceedings of the 4th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP), Pittsburgh, PA. ACM, New York, NY, 156167.Google Scholar
Olarte, C., Rueda, C. and Valencia, F. D. 2013. Models and emerging trends of concurrent constraint programming. Constraints 18, 4, 535578.Google Scholar
Olarte, C. and Valencia, F. D. 2008a. The expressivity of universal timed CCP: Undecidability of monadic FLTL and closure operators for security. In Proceedings of the 10th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP), Antoy, S. and Albert, E., Eds. ACM, New York, NY, 819.Google Scholar
Olarte, C. and Valencia, F. D. 2008b. Universal concurrent constraint programing: symbolic semantics and applications to security. In Proceedings of the 2008 ACM Symposium on Applied Computing (SAC), Wainwright, R. L. and Haddad, H., Eds. ACM, New York, NY, 145150.CrossRefGoogle Scholar
Saraswat, V. A. 1993. Concurrent Constraint Programming. MIT Press, Cambridge, MA.Google Scholar
Saraswat, V. A., Jagadeesan, R. and Gupta, V. 1994. Foundations of timed concurrent constraint programming. In Proceedings of the IEEE Symposium on Logic in Computer Science (LICS '94). IEEE Computer Society, Washington, DC, 7180.Google Scholar
Saraswat, V. A., Rinard, M. C. and Panangaden, P. 1991. Semantic foundations of concurrent constraint programming. In Proceedings of the Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages (POPL), Orlando, FL, Wise, D. S., Ed. ACM Press, New York, NY, 333352.Google Scholar
Sato, T. and Tamaki, H. 1984. Enumeration of success patterns in logic programs. Theoretical Computer Science 34, 227240.Google Scholar
Shapiro, E. Y. 1989. The family of concurrent logic programming languages. ACM Computing Surveys 21, 3, 413510.Google Scholar
Smolka, G. 1994. A foundation for higher-order concurrent constraint programming. In Proceedongs of the First International Conference on Constraints in Computational Logics (CCL '94), Jouannaud, J.-P., Ed. LNCS, vol. 845. Springer, Berlin, Germany, 5072.Google Scholar
Song, D. X., Berezin, S. and Perrig, A. 2001. Athena: A novel approach to efficient automatic security protocol analysis. Journal of Computer Security 9, 1–2, 4774.Google Scholar
Tini, S. 1999. On the expressiveness of timed concurrent constraint programming. Electronic Notes in Theoretical Computer Science 27, 317.Google Scholar
Zaffanella, E., Giacobazzi, R. and Levi, G. 1997. Abstracting synchronization in concurrent constraint programming. Journal of Functional and Logic Programming 1997, 6.Google Scholar