Δευτέρα, 29 Οκτωβρίου 2007

Prolog sucks...

Ε ναι. Εντάξει, είναι γλώσσα προγραμματισμού που χρησιμοποιείται στη Τεχνητή Νοημοσύνη, αλλά είναι ΤΟΣΟ διαφορετική απ' τις γλώσσες που κάναμε ως τώρα, που είναι αρκετά δύσκολο να συνηθίσεις. Για παράδειγμα, ένα "πρόγραμμα" σε Prolog μπορεί να είναι το εξής:

father(cronus,zeus).

Και μετά κάνεις την ερώτηση "Ποιός είναι ο πατέρας του Δία;" γράφοντας : ?- father(X,zeus)..

Και το δύσκολο είναι στις συσχετίσεις ανάμεσα στ' αντικείμενα όπως zeus, cronus, hera, hestia κλπ. Λόγω του ότι δεν έχει μεθόδους όπως η Java, C++ κλπ πρέπει να φτιάξεις κανόνες για τις συσχετίσεις μεταξύ των αντικειμένων. Για να κάνεις τον κανόνα του grandparent(Χ,Υ) για παράδειγμα, πρέπει να βάλεις στο παιχνίδι και μι' άλλη μεταβλητή. Αστα να πάνε.

Κατεβάζεις το SWI-Prolog που έχει ενσωματωμένο compiler. Το μόνο που έχεις να κάνεις είναι ν' αποθηκεύσεις τον κώδικα με κατάληξη .pl και μετά διπλοκλικάρεις το αρχείο, κάνει compile και τρέχει. Το καλό είναι ότι η γλώσσα δουλεύει και σε Vista.

Αλλά επειδή δυστυχώς κάναμε μόνο ένα εργαστήριο, λογικό είναι να έχουμε προβλήματα. Και πριν που πήγα να ολοκληρώσω την άσκηση, βλέπω ότι το πρόγραμμα τρέχει εντελώς λανθασμένα. Κααααλή φάση. Αύριο στο εργαστήριο θα δούμε τί παίζει...

Πάντως απ' την πρώτη ματιά δε μου πολυαρέσει αυτός ο τρόπος προγραμματισμού. Εγώ θέλω να ξεκινάω έτσι:

import java.io.*;
class Metal {
   public static void main(String args[]) throws IOException {
      BufferedReader input = new BufferedReader(new InputStreamReader(System.in); 
      System.out.println("Heavy Metal is the Law!!!");
      System.out.println("Dwse symvoloseira: ");
      String var = input.readLine();
      System.out.println(var);
   }
}

Αυτό μάλιστα. Απλό πρόγραμμα Java. Και τις κλάσεις μου έχω, σύνθεση χρησιμοποιώ, κληρονομικότητα...

Δεν υπάρχουν σχόλια: