Hostname: page-component-586b7cd67f-g8jcs Total loading time: 0 Render date: 2024-11-24T04:39:01.462Z Has data issue: false hasContentIssue false

A Linear Logic Programming Language for Concurrent Programming over Graph Structures

Published online by Cambridge University Press:  21 July 2014

FLAVIO CRUZ
Affiliation:
Carnegie Mellon University, Pittsburgh, PA 15213 (e-mail: [email protected], [email protected], [email protected]) CRACS & INESC TEC, Faculty of Sciences, University Of Porto, Rua do Campo Alegre, 1021/1055, 4169-007 Porto, Portugal (e-mail: [email protected])
RICARDO ROCHA
Affiliation:
CRACS & INESC TEC, Faculty of Sciences, University Of Porto, Rua do Campo Alegre, 1021/1055, 4169-007 Porto, Portugal (e-mail: [email protected])
SETH COPEN GOLDSTEIN
Affiliation:
Carnegie Mellon University, Pittsburgh, PA 15213 (e-mail: [email protected], [email protected], [email protected])
FRANK PFENNING
Affiliation:
Carnegie Mellon University, Pittsburgh, PA 15213 (e-mail: [email protected], [email protected], [email protected])

Abstract

We have designed a new logic programming language called LM (Linear Meld) for programming graph-based algorithms in a declarative fashion. Our language is based on linear logic, an expressive logical system where logical facts can be consumed. Because LM integrates both classical and linear logic, LM tends to be more expressive than other logic programming languages. LM programs are naturally concurrent because facts are partitioned by nodes of a graph data structure. Computation is performed at the node level while communication happens between connected nodes. In this paper, we present the syntax and operational semantics of our language and illustrate its use through a number of examples.

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

Alvaro, P., Marczak, W., Conway, N., Hellerstein, J. M., Maier, D., and Sears, R. C. 2009. Dedalus: Datalog in time and space. Tech. Rep. UCB/EECS-2009-173, EECS Department, University of California, Berkeley. Dec.Google Scholar
Ashley-Rollman, M. P., Lee, P., Goldstein, S. C., Pillai, P., and Campbell, J. D. 2009. A language for large ensembles of independently executing nodes. In International Conference on Logic Programming (ICLP).Google Scholar
Ashley-Rollman, M. P., Rosa, M. D., Srinivasa, S. S., Pillai, P., Goldstein, S. C., and Campbell, J. D. 2007. Declarative programming for modular robots. In Workshop on Self-Reconfigurable Robots/Systems and Applications at IROS 2007.Google Scholar
Baader, F. and Siekmann, J. H. 1994. Handbook of logic in artificial intelligence and logic programming. Oxford University Press, Inc., New York, NY, USA, Chapter Unification Theory, 41–125.Google Scholar
Baelde, D. 2012. Least and greatest fixed points in linear logic. ACM Transactions on Computational Logic 13, 1, 144.Google Scholar
Betz, H. and Frühwirth, T. 2005. A linear-logic semantics for constraint handling rules. In Principles and Practice of Constraint Programming - CP 2005. Lecture Notes in Computer Science, vol. 3709. 137–151.Google Scholar
Betz, H. and Frühwirth, T. W. 2013. Linear-logic based analysis of constraint handling rules with disjunction. ACM Trans. Comput. Logic 14, 1 (Feb.), 1:1–1:37.Google Scholar
Betz, H., Raiser, F., and Frühwirth, T. W. 2010. A complete and terminating execution model for constraint handling rules. CoRR abs/1007.3829.Google Scholar
Cervesato, I., Pfenning, F., Walker, D., and Watkins, K. 2002. A concurrent logical framework ii: Examples and applications. Tech. rep.Google Scholar
De Koninck, L., Schrijvers, T., and Demoen, B. 2007. User-definable rule priorities for chr. In Proceedings of the 9th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming. PPDP '07. New York, NY, USA, 2536.Google Scholar
Dijkstra, E. W. 1959. A note on two problems in connexion with graphs. Numerische Mathematik 1, 1, 269271.CrossRefGoogle Scholar
Ehrig, H. and Padberg, J. 2004. Graph grammars and petri net transformations. In Lectures on Concurrency and Petri Nets. Lecture Notes in Computer Science, vol. 3098. 496–536.Google Scholar
Girard, J.-Y. 1987. Linear logic. Theoretical Computer Science 50, 1, 1102.Google Scholar
Gonzalez, J., Low, Y., and Guestrin, C. 2009. Residual splash for optimally parallelizing belief propagation. In Artificial Intelligence and Statistics (AISTATS).Google Scholar
Hodas, J. S. and Miller, D. 1994. Logic programming in a fragment of intuitionistic linear logic. Information and Computation 110, 3242.Google Scholar
Hoffman, E. J., Loessi, J. C., and Moore, R. C. 1969. Construction for the solutions of the M queens problem. Mathematics Magazine 42, 2, 6672.Google Scholar
Isard, M., Budiu, M., Yu, Y., Birrell, A., and Fetterly, D. 2007. Dryad: distributed data-parallel programs from sequential building blocks. In European Conference on Computer Systems (EuroSys). 59–72.CrossRefGoogle Scholar
Loo, B. T., Condie, T., Garofalakis, M., Gay, D. E., and Hellerstein, J. M. 2006. Declarative networking: Language, execution and optimization. In International Conference on Management of Data (SIGMOD). 97–108.Google Scholar
López, P., Pfenning, F., Polakow, J., and Watkins, K. 2005. Monadic concurrent linear logic programming. In Proceedings of the 7th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming. PPDP '05. New York, NY, USA, 3546.Google Scholar
Low, Y., Gonzalez, J., Kyrola, A., Bickson, D., Guestrin, C., and Hellerstein, J. M. 2010. Graphlab: A new framework for parallel machine learning. In Conference on Uncertainty in Artificial Intelligence (UAI). 340–349.Google Scholar
Malewicz, G., Austern, M. H., Bik, A. J. C., Dehnert, J. C., Horn, I., Leiser, N., and Czajkowski, G. 2010. Pregel: a system for large-scale graph processing. In International Conference on Management of Data (SIGMOD). 135–146.Google Scholar
marc Andreoli, J. 1992. Logic programming with focusing proofs in linear logic. Journal of Logic and Computation 2, 297347.Google Scholar
Miller, D. 1985. An overview of linear logic programming. In Computational Logic. 1–5.Google Scholar
Page, L. 2001. Method for node ranking in a linked database. US Patent 6,285,999. Filed January 9, 1998. Expires around January 9, 2018.Google Scholar
Raiser, F. and Frühwirth, T. W. 2011. Analysing graph transformation systems through constraint handling rules. Theory and Practice of Logic Programming 11, 1 (Jan.), 65109.Google Scholar
Ullman, J. D. 1990. Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies.Google Scholar
Watkins, K., Cervesato, I., Pfenning, F., and Walker, D. 2003. A concurrent logical framework i: Judgments and properties. Tech. rep.Google Scholar
Watkins, K., Cervesato, I., Pfenning, F., and Walker, D. 2004. A concurrent logical framework: The propositional fragment. In Types for Proofs and Programs. Lecture Notes in Computer Science, vol. 3085. 355–377.Google Scholar