Algebraic Logic Functional programming language
Website: www.informatik.uni-kiel.de/~mh/systems/ALF
Limbajul de programare Functional Logică Algebraică (ALF) combină tehnici funcționale și logice de programare.
Fundația sa este logica clauzei de corn cu egalitatea, care constă din predicate și clauze de corn pentru programarea logică și funcții și ecuații pentru programarea funcțională.
ALF a fost proiectat pentru a fi o integrare autentică a ambelor paradigme de programare și, astfel, orice expresie funcțională poate fi utilizată într -un obiectiv literal și predicatele arbitrare pot apărea în condiții de ecuații.
Semantica operațională a ALF se bazează pe regula de rezoluție pentru a rezolva literele și restrângerea pentru a evalua expresiile funcționale.
Pentru a reduce numărul de etape posibile de restrângere, se utilizează o strategie de restrângere de bază din stânga cea mai mare, care, se pretinde, poate fi implementată eficient.
Termenii sunt simplificați prin rescriere înainte de aplicarea unei etape de restrângere și ecuațiile sunt respinse dacă cele două părți au constructori diferiți în partea de sus.
Rescrierea și respingerea ar trebui să conducă la o reducere mare a arborelui de căutare și să producă o semantică operațională care este mai eficientă decât strategia de rezoluție a lui Prolog.
În mod similar cu Prolog, ALF folosește o strategie de backtracking corespunzătoare unei căutări în primul rând în arborele de derivare.
Sistemul ALF a fost proiectat pentru a fi o implementare eficientă a combinației de rezoluție, restrângere, rescriere și respingere.
Programele ALF sunt compilate în instrucțiunile unei mașini abstracte, care se bazează pe mașina abstractă Warren (WAM) cu mai multe extensii pentru implementarea restrângerii și rescrierii.
În actualele programe de implementare ALF ale acestei mașini abstracte sunt executate de un emulator scris în C.
în depozitul de inteligență artificială al Universității Carnegie Mellon, ALF este inclus ca un limbaj de programare AI, mai mult ca o implementare funcțională/logică de programare de programare.
Este disponibil un manual de utilizare care descrie limba și utilizarea sistemului.
Sistemul ALF rulează pe UNIX și este disponibil sub o licență software personalizată, care acordă dreptul de utilizare pentru „evaluare, cercetare și predare”, dar nu uz comercial sau militar.