Algebraic Logic Functional programming language

From Wikipedia, the free encyclopedia

(Redirected from ALF (programming language))
Jump to: navigation, search

Algebraic Logic Functional programming language also known as ALF is a programming language which combines functional and logic programming techniques. Its foundation is Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming.

ALF was designed to be genuine integration of both programming paradigms, and thus any functional expression can be used in a goal literal and arbitrary predicates can occur in conditions of equations. ALF's operational semantics is based on the resolution rule to solve literals and narrowing to evaluate functional expressions. In order to reduce the number of possible narrowing steps, a leftmost-innermost basic narrowing strategy is used which, it is claimed, can be efficiently implemented. Terms are simplified by rewriting before a narrowing step is applied and equations are rejected if the two sides have different constructors at the top. Rewriting and rejection are supposed to result in a large reduction of the search tree and produce an operational semantics that is more efficient than Prolog's resolution strategy. Similarly to Prolog, ALF uses a backtracking strategy corresponding to a depth-first search in the derivation tree.

The ALF system was designed to be an efficient implementation of the combination of resolution, narrowing, rewriting, and rejection. ALF programs are compiled into instructions of an abstract machine. The abstract machine is based on the Warren Abstract Machine (WAM) with several extensions to implement narrowing and rewriting. In the current ALF implementation programs of this abstract machine are executed by an emulator written in C.

In the Carnegie Mellon University Artificial Intelligence Repository,[1] ALF is included as an AI programming language, in particular as a functional/logic programming language Prolog implementation.[2] A user manual[3] describing the language and the use of the system is available. The ALF System[4] runs under Unix and is free.

  1. ^ CMU Artificial Intelligence Repository. CMU Artificial Intelligence Repository. Carnegie Mellon University (1995-02-13). Retrieved on 2007-06-22.
  2. ^ ALF: Algebraic Logic Functional programming language. CMU Artificial Intelligence Repository. Carnegie Mellon University (1995-02-13). Retrieved on 2007-06-22.
  3. ^ Hanus, Michael; Andreas Schwab (1995-02-13). ALF User's Manual. ALF User's Manual. Institut für Informatik, Christian-Albrechts-Universität zu Kiel. Retrieved on 2007-06-22.
  4. ^ Hanus, Michael. The ALF System. The ALF System. Institut für Informatik, Christian-Albrechts-Universität zu Kiel. Retrieved on 2007-06-22.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.