AMLOG(ID:5020/aml005)

Equational logic programming language  


for AMalgamated with LOGic

Equational logic programming language


Related languages
Prolog => AMLOG   Extension of

References:
  • Mansfield Glenn, Togashi Atsushi, Miyake Nobuhisa, Noguchi Shoichi "An Extended Amalgamated Programming Language" view details Abstract: The complementary features of logic and functional programming have inspired researchers to search for a unified formalism that, incorporates the positive features of both and is free from the drawbacks of either programming methodologies. However, the completeness results for these languages cover only the confluent class of programs. Confluence is in general an undecidable problem. The sufficient conditions for confluence effectively narrow the class of programs which may be handled in the language. AMLOG is an equational logic programming language which amalgamates the logic programming and functional programming paradigms. The operational semantics of AMLOG is extended beyond the class of confluent programs by supplementing the computation mechanism of AMLOG with a more powerful computation rule, the c-superposition rule, which embodies a greater part of the completion mechanism. The soundness and completeness are shown. Practical implementation issues are discussed and several features of the current implementation are presented.  

          in IPSJ SIGNotes Software Foundation Abstract No.026 - 001 view details
  • Mansfield Glenn, Togashi Atsushi, Noguchi Shoichi "AMLOG : an Amalgamated Equational Programming Language Logic" Journal of Information Processing Abstract Vol.11 No.04 - 005 view details Abstract: AMLOG is an equational logic programming language based on the concept introduced by Fribourg [6]. In this language, an amalgamation of logic programming and equational programming is achieved by combining, in the computation procedure, the capability of inferring solutions by means of goal reduction as in logic programming and the term rewriting feature of equational programming. The logical basis of equational logic programming languages is established using deductive reasoning about programs. Two deductive systems are proposed, the notions of confluence and Church-Rosser property of programs are introduced based on these deductive systems, and their equivalence is proved. It is shown that solutions obtained by executing an equational logic program are deducible from the program in the deductive system for equational definite clauses. This result gives the soundness of the computation mechanism. The converse of this result is not true in general. However, for confluent programs, we have shown the following completeness result: if a goal has a solution deducible from a confluent program, under certain conditions, then there is a successfully terminating computation for the goal with a more general solution. Some implementation issues and features of the language are discussed.

          in IPSJ SIGNotes Software Foundation Abstract No.026 - 001 view details
  • N.Miyake, A.Togashi, S.Noguchi " AMLOG: An Amalgamated Language Equipped with Execution Strategy" JJSAI 5(6) 1990 view details Abstract: In the last few years there has been growing interest on amalgamated programming languages which have integrated the features of logic and functional programming languages. The programmer can write programs more naturally in the amalgamated language. But its execution mechanism generally involves a very large search space and is inefficient. Thus, interpreters of amalgamated languages make sacrifices in the scope of the language and/or efficiency of the interpreter. In this paper, we propose an amalgamated language, AMLOG, which is equipped with two kinds of equations, '=' and ':='. These symbols are used to control the execution strategy and switch between non-deterministic execution and deterministic (pruned computation tree) execution. Thus, in AMLOG, a programmer can select an appropriate description for a problem. This enlarges the scope of the interpreter and at the same time allows efficient execution.
          in IPSJ SIGNotes Software Foundation Abstract No.026 - 001 view details
  • N.Miyake, A.Togashi, S.Noguchi "An AMLOG Execution Monitor Based on a Three-layer Execution Model" JJSAI view details Abstract: We have implemented an amalgamated language, AMLOG which has integrated the features of logic and functional programming languages. The programmer can write programs more naturally in the amalgamated language. However AMLOG in its primitive form doesn't have a good debugging environment. The AMLOG has a tracer for debugging which gives programmers a trace of the execution steps. But the tracer output does not reflect the execution model of AMLOG, and is difficult to understand. In this paper, we propose a three-layer model which is the execution model of AMLOG. A block of execution process is represented by a box. The flow of execution, e.g. backtracking and retrying, is represented by arrows and the arrangement of boxes. We have implemented an execution monitor which is based on the three-layer model, using bitmap display. The monitor displays the execution graphically in a direct fashion. By using the monitor, a programmer can easily follow the execution flow and is able to carry out debugging in a top down style.
          in IPSJ SIGNotes Software Foundation Abstract No.026 - 001 view details