Abstract
A logic programming environment should provide users with declarative control of program development and execution and resource access and allocation. It is argued that the concurrent logic language PARLOG is well suited to the implementation of such environments. The essential features of the PARLOG Programming System (PPS) are presented. The PPS is a multiprocessing programming environment that supports PARLOG (and is intended to support Prolog). Users interact with the PPS by querying and updating collections of logic clauses termed data bases. The PPS understands certain clauses as describing system configuration, the status of user deductions and the rules determining access to resources. Other clauses are understood as describing meta relationships such as inheritance between data bases. The paper introduces the facilities of the PPS and explains the essential structure of its implementation in PARLOG by a top down development of a PARLOG program which reads as a specification of a multiprocessing operating system.
uccp: ...!mcvax!ukc!icdoc!klc/itf
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Atkinson, M.P., Bailey, P.J., Chisholm, K.J., Cockshott, W.P. and Morrison, R. (1982), “An Approach to Persistent Programming”, The Computer Journal, 26(4), pp 360–365.
Bowen, K.A. (1986), “Meta-level Programming and Knowledge Representation”, In New Generation Computing, 3, pp 359–383.
CLP Project (1986), “Introduction to the CLF Environment”, USC Information Sciences Institute.
Clark, K.L., and Gregory, S. (1984a), “PARLOG: Parallel Programming in Logic”, Research Report DoC 84/4, Department of Computing, Imperial College, London, and in ACM Trans. on P rogramming Languages and Systems, 8 (1), pp. 1–49, 1986.
Clark, K.L., and Gregory, S. (1984b), “Notes on Systems Programming in PARLOG”. In Proc. Intl. Conf. on 5th Generation Computer Systems (Tokyo, November 1984), ed Aiso. H., Elsevier North Holland, pp. 299–306.
Clocksin, W.F. and Mellish, C.S. (1981), Programming in Prolog, Springer-Verlag, New York.
van Emden, M.H., and de Lucena, G.J. (1982), “Predicate Logic as a Language for Parallel Processing”. In Logic Programming, eds Clark, K.L. and Tarnlund, S-A., Academic Press, London, pp 189–198.
Foster, I.T., Gregory, S., Ringwood, G. A., and Satoh, K. (1986). “A Sequential Implementation of PARLOG”. In Proc. of the 3rd Intl. Logic Programming Conf., London, 1986.
Foster, I.T. (1986a), “The PARLOG Programming System: Reference Manual”. Dept of Computing, Imperial College, London.
Foster, I.T. (1986b), “Logic Operating Systems: Design Issues”, Research Report, Dept. of Computing, Imperial College, London. Submitted for publication.
Foster, I.T. (1986c), “Persistent Parallel Logic”, Research Report (in preparation), Dept. of Computing, Imperial College, London.
Foster, I.T. and Kusalik, A.J. (1986), “A Logical Treatment of Secondary Storage”. In Proc. Symp. on Logic Programming, Salt Lake City, pp 58–69.
French, P. (1985), MacProlog User Guide, Logic Programming Associates Ltd.
Furukawa, K., Takeuchi, A., Kunifuji, S., Yasukawa, H., Ohki, M., and Ueda, K. (1984), “Mandala, a Logic Based Knowledge Programming System”. In Proc. Intl. Conf. on 5th Generation Computer Systems (Tokyo, November 1984), ed Aiso. H., Elsevier North Holland, pp 613–622.
Gregory, S., Foster, I.T., Ringwood, G.A. and Burt, A.D. (1986), “The Sequential PARLOG Machine”, Research Report (in preparation), Dept. of Computing, Imperial College, London.
Goldberg, A. (1983), Smalltalk-80: The Language and its Implementation, Addison Wesley.
Henderson, P. (1982), “Purely Functional Operating Systems”. In Functional Programming and its Applications, Eds Darlington, Henderson and Turner, CUP.
Hewitt, C. et al (1973), “A Universal Modular Actor Mechanism for Artificial Intelligence”. In Proc. I JCAI, 1973.
Jones, S.B. (1984), “A Range of Operating Systems Written in a Purely Functional Style”, Technical Monograph PRG-42, Oxford University Computing Laboratory, 1984.
Joseph, M., Prasad, V.R., Narayana, K.T., Ramakrishna, I.V. and Desai, S. (1978), “Language and Structure in an Operating System”. In Proc. 2nd Intl Conf. on Operating System Theory and Practice.
Kauffmann, H., and Grumbach, A. (1986), “MULTILOG: Multiple Worlds in Logic”. In Proc. 7th ECAI, Brighton, UK, pp 291–305.
Kowalski, R.A. (1979), Logic for Problem Solving, North Holland.
Kowalski, R.A. (1986), “Logic-Based Open Systems”, Research Report, Dept. of Computing, Imperial College, London.
Kusalik, A.J. (1986), “Specification and Initialisation of a Logic Computer System”, in New Generation Computing, 4, pp. 189–209, 1986.
Linton, M. (1984), “Implementing Relational Views of Programs”, Proc ACM SIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments.
McCabe, F.G. and Clark, K.L., (1980), Micro-Prolog 3.0 Programmer's Reference Manual, Logic Programming Associates Ltd.
Mierowsky, C., Taylor, S., Shapiro, E., Levy, J., and Safra, M. (1985), “The Design and Implementation of Flat Concurrent Prolog”, Technical Report CS85-09, Weizmann Institute, Rehovot.
Nakashima, H. (1984), “Knowledge Representation in Prolog/KR”. In Proc. Intl. Symp. on Logic P rogramming, IEEE Computer Society, pp 126–130.
Ramamoorthy, C.V. et al (1985), “GENESIS: An Interactive Environment for Development and Evolution of Software”. In Proc. COMPSAC, 1985.
Sandewall, E. (1978), “Programming in an Interactive Environment: The Lisp Experience”. In Computing Surveys, 10(1), pp 35–71.
Sergot, M.J. (1982), “A Query-the-user Facility for Logic Programming”. DoC Report 82/18, Dept. of Computing, Imperial College. In New Horizons in Educational Computing, Yazdani, M., ed, Ellis Horwood.
Shapiro, E.Y. (1984), “Systems Programming in Concurrent Prolog”, in Proc. 11th ACM POPL Symp., Salt Lake City, Utah.
Shapiro, E.Y. and Safra, S. (1986), “Multiway Merge with Constant Delay in Concurrent Prolog”. In New Generation Computing, 4(2), pp 211–216.
Silverman, W., Hirsch, M., Houri, A., and Shapiro, E.Y. (1986), “The Logix User Manual, Version 1.21”, Technical Report CS-21, Weizmann Institute, Rehovot.
Stoye, W. (1986), “A New Scheme for Writing Functional Operating Systems”, Research Report, University of Cambridge Computing Laboratory, Cambridge, 1986.
Teitelbaum, T., and Reps, T. (1981), “The Cornell Program Synthesiser: A Syntax-Directed Programming Environment”. In CACM, 24(9).
Teitelman, W. and Masinter, L. (1981), “The Interlisp Programming Environment”. In IEEE Computer 14(4), pp 25–33.
Wulf, W.A. (1981), HYDRA/C.mmp: An Experimental Computer System, McGraw-Hill, N.Y.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Clark, K.L., Foster, I.T. (1987). A declarative environment for concurrent logic programming. In: Ehrig, H., Kowalski, R., Levi, G., Montanari, U. (eds) TAPSOFT '87. TAPSOFT 1987. Lecture Notes in Computer Science, vol 250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014983
Download citation
DOI: https://doi.org/10.1007/BFb0014983
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17611-4
Online ISBN: 978-3-540-47717-4
eBook Packages: Springer Book Archive