Prolog'un paralel mantık programlamaya genişletilmesi

Bu çalışmamızda, CCND dil ailesi içinde bulunan, yeni bir paralel mantık programlama dili öneriyoruz. Bu paralel mantık programlama dili Berk Prolog ve MIMD mimarisindeki uygulaması da Berk Sistem olarak adlandırılmıştır. Berk Prolog, söz-dizimi ve semantik olarak klasik dillerden ayrılmaktadır: Senkronizasyon mekanizması farklıdır. Bir proses baş veya guard tarafından askıya alınamaz. Guard kısmı, cümle seçiminden çok esas hesaplama kısmını oluşturur. Şartlı olarak değişken talep etme ve körleme bekleme kavramları ortaya atılmıştır. Guard çağrıları sayesinde sıralı Prolog, paralel prologun bir alt kümesi haline getirilmiştir. Kararlı bir sistem olduğu için, if-then-else yapıları ve bu yapılarla ilgili temel fonksiyonlar gerçekleştirilebilmiştir.

An extension of prolog to parallel logic programming

In our work we introduce a new parallel logic programming language in the class of CCND programming languages. We named our parallel logic programming language as Berk Prolog and its MIMD implementation as the Berk System . Berk Prolog differs from other parallel logic programming langauges developed until today in many respects, primarily in its syntax and semantics. Berk Prolog also differs from other related languages in its synchronization mechanism, in wich a process cannot be suspended by head unification or guard evaluation. A process can be invoked if all the input variables are bound. Guard evaluation is the main subject of computation rather than clause selection. Berk Prolog introduces the concept of conditional demand of external variables. It also brings flexibility on clause mapping and distribution of processes. By its guard evaluation, Berk Prolog treats sequential Prolog as its subset. In Berk Prolog, if-then-else and related predicates can be implemented quite easily. The Berk System, developed as an implementation of Berk Prolog, is a model that works on TCP/IP network medium. In this model we introduce the concepts of solution network and network heap. Some familar benchmark programs have been written in Berk Prolog and executed in the Berk System successfully.

___

  • Ackerman, W.B., (1982). Data flow languages, IEEE Computer 15, 2, 15-25.
  • Clark, K.L. and Gregory, S., (1986). Parlog: Parallel programming in logic, ACM Transaction on Programming Languages and Systems, 8, 1, 1-49
  • Cohen D., Huntbach, M.M., Ringwook G.A, (1992), Logical Occam, Implementation of distributed prolog, Willey.
  • Diaz, D., (2002). GNU Prolog User Manuel, A Native Prolog Compiler with Constraint Solving over Finite Domains, Edition 1.7.
  • Pollard, G.H., (1981). Parallel execution of horn clause programs, Ph.D. Thesis, Department of Computing, Imperial College.
  • Shapiro, E.Y., (1983). A subset of concurrent prolog and ıts interpreter, ICOT Techincal Report TR- 003.
  • Ueda, K., (1986). Introduction to guarded horn clauses, ICOT Techincal Report, TR-209.
  • Ueda, K., (1985). Concurrent prolog re-examined, ICOT Techincal Report, TR-102.
  • Wise, M.J., Jones, D.G., Hintz, T., (1992). PMSProlog: A distributed, coarse -grain-parallel prolog wiht processes, modules and streams, Implementation of distributed prolog, Willey.