Gödel (język programowania)

Gödel
Paradygmat deklaratywny , logiczny
Zaprojektowany przez Johna Lloyda i Patricii Hill
Deweloper Johna Lloyda i Patricii Hill
Po raz pierwszy pojawiły się 1992
Wersja stabilna
1.5 / 11 sierpnia 1995 ( 11.08.1995 )
Dyscyplina pisania mocny
system operacyjny Uniksopodobny
Licencja Tylko niekomercyjne badania/użytek edukacyjny
Dialekty
Gödel z modułami ogólnymi (sparametryzowanymi).

Gödel to deklaratywny język programowania ogólnego przeznaczenia , który jest zgodny z paradygmatem programowania logicznego . Jest to język silnie typowany , system typów oparty na logice wielosortowanej z polimorfizmem parametrycznym . Jej nazwa pochodzi od imienia logika Kurta Gödla .

Cechy

Gödel ma system modułowy i obsługuje liczby całkowite o dowolnej precyzji , liczby wymierne o dowolnej precyzji, a także liczby zmiennoprzecinkowe. Może rozwiązywać ograniczenia dotyczące skończonych dziedzin liczb całkowitych, a także liniowe ograniczenia wymierne. Obsługuje przetwarzanie zbiorów skończonych . Posiada również elastyczną regułę obliczeniową i operator przycinania, który uogólnia zatwierdzanie współbieżnych języków programowania logiki.

Metalogiczne udogodnienia Gödla zapewniają wsparcie dla meta-programów, które wykonują między innymi analizę, transformację , kompilację, weryfikację i debugowanie.

Przykładowy kod

Poniższy moduł Gödla jest specyfikacją największego wspólnego dzielnika (NWD) dwóch liczb. Ma on zademonstrować deklaratywny charakter Gödla, a nie być szczególnie wydajny. CommonDivisor mówi, że jeśli i i j są różne od zera, to d jest wspólnym dzielnikiem i oraz j , jeśli leży między 1 a mniejszą z liczb i i j oraz dokładnie dzieli zarówno i, jak i j . Gcd _ predykat mówi, że d jest największym wspólnym dzielnikiem i i j , jeśli jest wspólnym dzielnikiem i i j , i nie ma e, które byłoby również wspólnym dzielnikiem i i j i byłoby większe od d .

MODUŁ GCD. IMPORTUJ liczby całkowite. PREDYKAT Gcd : Liczba całkowita * Liczba całkowita * Liczba całkowita. Gcd(i,j,d) <- Wspólny Dzielnik(i,j,d) & ~ NIEKTÓRE [e] (Wspólny Dzielnik(i,j,e) & e > d). PREDYKAT Wspólny dzielnik : Liczba całkowita * Liczba całkowita * Liczba całkowita. Wspólny Dzielnik(i,j,d) <- JEŚLI (i = 0 \/ j = 0) TO d = Max(Abs(i), Abs(j)) ELSE 1 =< d =< Min(Abs(i), Abs(j)) & i Mod d = 0 & j Mod d = 0.

Linki zewnętrzne