programare funcțională
REZUMAT funcțional (aplicativ) de programare A. P. Ershovym definită ca“. metoda de programare, în care singura acțiune este de a apela funcția, singura modalitate de a dezmembrării programului este de a introduce un nume pentru funcția, și singura regulă a compoziției - funcțiile operatorului de compoziție. Orice memorie de celule, nici de atribuire declarații sau cicluri, sau, în special, scheme logice sau de control al transmisiei. "
Rolul structurii principale în limbile funcționale joacă expresie expresii sunt constante scalare, obiecte structurate, caracteristici, funcții ale corpului și apeluri de funcții. Funcția este tratată ca o mapare de la X la X, gdeX - set de expresii.
limbaj de programare Aplicativ include următoarele elemente:
clase de constante care pot fi manipulate de către o funcție;
reguli de construcție a noilor caracteristici ale bazei;
reguli de formare expresii bazate pe apeluri de funcții.
Programul este un set de descrieri de funcții și expresii, care urmează să fie calculate. Această expresie este evaluată prin reducere, adică o serie de simplificări, atâta timp cât acest lucru este posibil în conformitate cu următoarele reguli: Apelurile funcțiile de bază se înlocuiesc cu valorile corespunzătoare; Apelurile nu sunt înlocuite cu funcțiile de bază ale corpului lor, în care parametrii sunt argumente substituite.
Programarea funcțională nu utilizează conceptul de memorie ca stocarea variabilelor. Operatorii de atribuire sunt absente, astfel încât variabilele nu indică zona de memorie, și obiectele de program, care respectă în totalitate conceptul unei variabile în matematică. Practic, puteți face programul și fără variabile. În plus, nu există diferențe semnificative între constante și funcții, adică între programe și date. Ca urmare a acestei caracteristici poate fi o valoare a unui apel către o altă funcție, și poate fi un element al obiectului structurat. Numărul de argumente în apelul funcției nu este în mod necesar diferit de numărul de parametri specificați în descrierea acestuia. Aceste proprietăți caracterizează limbaje aplicative, cum ar fi limbaje de programare este foarte mare.
Prima astfel de limbă a fost LISP (LISP) (LISt Processing - procesare lista), creată în 1959. Scopul creării sale a fost de a organiza ușurința de manipulare a informațiilor caracter. O caracteristică esențială a limbii - unificarea structurilor de programe și structuri de date: toate expresiile sunt scrise sub formă de liste.
Programarea logică
O nouă zonă - programarea logică, sau relațională - a deschis apariția limbajului PROLOG (Prolog) (PROGRAMARE în Logică - în ceea ce privește logica de programare). Această limbă a fost creat de om de știință francez A. Kolmeroe în 1973. În prezent, există alte limbi, dar limba cea mai avansată și mai vorbită de programare logică este exact Prologul. De exemplu, există peste 15 implementări diferite ale acesteia pe un PC. limbaje de programare logică, în special Prologul, este utilizat pe scară largă în sistemele de inteligență artificială acoperite în acest tutorial.
Conceptul central în yavlyaetsyaotnoshenie programare logică. Un program este un set de definiții ale relațiilor dintre obiecte (în ceea ce privește condițiile sau restricțiile) și țintă (interogare). Fluxul de program este tratat ca procesul de valabilitate a formulei logice, clorhidric construite în conformitate cu regulile de semantica mulțimilor de program ale limbajului utilizat. Rezultatul calculului este un produs secundar al procesului. În programarea relațională trebuie doar să specifice faptele pe care se bazează algoritmul, dar nu pentru a determina secvența de pași care trebuie efectuate. Aceasta demonstrează declarativă limbajul de programare logică. Ea aptly exprimată în formula R. Kowalski: "Algorithm = Logic + Control". limbaje de programare logică sunt caracterizate prin:
orientare strictă privind calculul simbolic;
posibilitatea de calcul invers, adică variabilele sunt împărțite în intrare și de ieșire în procedurile;
posibil incompletitudine logic, deoarece este adesea imposibil să se exprime într-un anumit program de relație logică și este imposibil de a ieși din programul de toate concluziile sunt corecte.
Programul Logic, în principiu, să aibă o performanță mică, deoarece calculele sunt efectuate prin încercare și eroare, backtracking la pașii anteriori.