INTRODUCERE


           Sistemele deductive formale au devenit importante in stiinta calculatoarelor. Ele sunt folosite pentru a specifica semantici logice si operationale,tipul sistemelor si alte aspecte ale limbajelor.
           LF (Lucrul cu Frame-uri) a fost realizat cu scopul obtinerii unui limbaj pentru specificarea la nivel inalt a sistemelor deductive. In LF, deciziile sunt reprezentate ca si tipuri si deductiile ca obiecte. In timp ce in LF tipul teoriei este determinabil, deductiile sustinute pot fi automat verificate . Oricum, LF este o puternica baza pentru probleme mult mai cuprinzatoare decat orice verificare a corectitudinii. O gama larga de sisteme deductive sunt specificate in LF si implementate in ELF. In continuare se va prezenta utilitatea folisirii limbajului ELF in implementarea meta-toeriei sistemelor deductive.
          Cateva cercetari in acest domeniu au fost realizate de catre Frank Plenning, Profesor la departamentul Stiinta Calculatoarelor, la Universitatea Carnegie Mellon, Pittsburgh, PA 15213-3891,USA.

 

LIMBAJUL ELF

          ELF-ul este un meta -limbaj pentru formalizarea teoriei limbajelor de programare si a logicii. Este utilizat pentru:
               - specificarea sintaxei abstracte si semanticii unui limbaj obiectual intr-un mod natural si direct;
               - implementarea algoritmilor relativi (de ex: deductia tipurilor, evaluarea sau cautarea demonstratiei);
               - reprezentarea demonstrarii meta-teoremelor despre un limbaj obiectual,semantica si implementarea lui.
          Blocul de baza in realizarea unui program Elf este semnatura, care este o secventa de declaratii ale constantelor. Cateva din aceste constante sunt pentru declararea constructorilor sau a predicatelor, altele pentru deductia regulilor sau a clauzelor.           Folosind modulul sistem Elf se poate distinge explicit rolul diferit al declaratiilor. La baza limbajului Elf sta unificarea dintre definirea logica (intalnita in LF) cu programarea logica (intalnita in Lamda -Prolog), fiind un limbaj folosit pentru demonstrarea teoremelor si pentru manipularea demonstratiilor. Cautarea demonstratiei (" proof search") este modelata in LF prin cautarea unui obiect de un tip dat. Astfel un tip joaca rolul unei intrebari in Prolog si poate contine mai multe variabile libere. Interpretorul ELF trebuie sa realizeze reconstructia tipului din programe si probleme inainte sa le execute.
          Chiar daca Elf-ul nu compileaza programe sau intrebari, el aplica cateva optimizari standard cunoscute din interpretoarele programarii logice si cateva care sunt specifice Elf-ului. Dintre optimizarile generale amintim : indexarea clauzelor, eliminarea unor verificari care nu sunt necesare si folosirea unui tabel global de simboluri mult mai efficient. Iar dintre optimizarile specifice fac parte eliminarea unificarilor redundante si a demonstratii unor obiecte care nu sunt necesare.