Εφαρμογές της Λογικής στην Πληροφορική

Σχετικά έγγραφα
var N : SNat. eq (s(n) = 0) = false. και eq (s(n: SNat) = 0) = false.

Εφαρμογές της Λογικής στην Πληροφορική

Εφαρμογές της Λογικής στην Πληροφορική

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Υπολογιστικά & Διακριτά Μαθηματικά

Πληροφορική. Εργαστηριακή Ενότητα 5 η : Μαθηματικοί Τύποι. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Υπολογιστικά & Διακριτά Μαθηματικά

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Υπολογιστικά & Διακριτά Μαθηματικά

Βιομηχανικοί Ελεγκτές

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Υπολογιστικά & Διακριτά Μαθηματικά

Δομημένος Προγραμματισμός

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 11: Λογική πρώτης τάξης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ

Υπολογιστικά & Διακριτά Μαθηματικά

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Μοντέρνα Θεωρία Ελέγχου

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Φροντιστήριο 4: Μορφολογική Παραγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Στατιστική Επιχειρήσεων Ι

Μαθηματικά Ενότητα 11: Θεώρημα Μέσης Τιμής Μονοτονία Συνάρτησης

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Λογικός Προγραμματισμός Ασκήσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εφαρμογές της Λογικής στην Πληροφορική

Θεωρία Πιθανοτήτων & Στατιστική

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Μαθηματικά και Φυσική με Υπολογιστές

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Ηλεκτρονικοί Υπολογιστές I

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προδιαγραφή και Επαλήθευση Πρωτοκόλλων Ασφαλείας Συστημάτων Κινητών Επικοινωνιών με Χρήση Τυπικών Μεθόδων

Σχολή Εφαρµοσµένων Μαθηµατικών και Φυσικών Επιστηµών Εθνικό Μετσόβιο Πολυτεχνείο. Στοχαστικές Ανελίξεις. Ασκήσεις Κεφαλαίου 2. Κοκολάκης Γεώργιος

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανυσματικοί Χώροι (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Θεωρία Πιθανοτήτων & Στατιστική

Εισαγωγή στις Βάσεις Δεδομζνων II

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Ηλεκτρονικοί Υπολογιστές

Υπολογιστικά & Διακριτά Μαθηματικά

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Πληροφορική ΙΙ Θεματική Ενότητα 5

Υπολογιστικά & Διακριτά Μαθηματικά

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 6: Προτασιακός Λογισμός

Εισαγωγή στον Προγραμματισμό με C++

Δομημένος Προγραμματισμός

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Συστήματα Αυτομάτου Ελέγχου

Βιομηχανικοί Ελεγκτές

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Λογικός Προγραμματισμός Ασκήσεις

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.

Ενότητα 1 Διάλεξη 2β

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Θερμοδυναμική - Εργαστήριο

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Μαθηματική Ανάλυση Ι

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Ι

επιµέλεια Θοδωρής Πιερράτος

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Λογικός Προγραμματισμός Ασκήσεις

{ int a = 5; { int b = 7; a = b + 3;

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Ενότητα: Πράξεις επί Συνόλων και Σώµατα Αριθµών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Νέες Τεχνολογίες στην Εκπαίδευση

Αναγνώριση Προτύπων Ι

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Νέες Τεχνολογίες στην Εκπαίδευση

Δομημένος Προγραμματισμός

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Transcript:

Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 5 Πέτρος Στεφανέας, Γεώργιος Κολέτσος

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε Άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναγράφεται ρητώς.

ΑΛΓΕΒΡΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ Τυπικές Μέθοδοι Ο όρος Τυπικές Μέθοδοι (Formal Methods) αναφέρεται σε τεχνικές σχεδιασμού συστημάτων οι οποίες χρησιμοποιούν αυστηρά (τυπικά) μαθηματικά εργαλεία για την κατασκευή μοντέλων λογισμικού και υλικού υπολογιστών (software, hardware).

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

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

Η κυριότερη διαφορά μεταξύ των Τυπικών και άλλων μεθόδων σχεδιασμού συστημάτων είναι η τυπική επαλήθευση του συστήματος. Η ορθότητά του σχεδιασμού και οι ιδιότητες του συστήματος αποδεικνύονται με μαθηματικό τρόπο στις Τυπικές Μεθόδους, ενώ με άλλες μεθοδολογίες σχεδιασμού γίνεται μόνο έλεγχος μέσω πειραμάτων.

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

Σε γενικές γραμμές ο τυπικός σχεδιασμός ενός συστήματος μπορεί να θεωρηθεί ότι αποτελείται από τα τρία παρακάτω βήματα: 1. Τυπική Προδιαγραφή 2. Επαλήθευση 3. Υλοποίηση

ΑΛΓΕΒΡΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ Με τον όρο Αλγεβρικές Προδιαγραφές (Algebraic specification) αναφερόμαστε σε μία από τις μεθοδολογίες των τυπικών μεθόδων η οποία υιοθετεί ως σημασιολογία για τις προδιαγραφές που ορίζει διάφορες άλγεβρες (κυρίως Άλγεβρα με πολλούς τύπους και διάταξη).

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

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

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

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

Η ΟΙΚΟΓΕΝΕΙΑ ΤΩΝ ΓΛΩΣΣΩΝ OBJ Ο όρος γλώσσα (OBJ), αναφέρεται σε μια οικογένεια γλωσσών αλγεβρικού προγραμματισμού και προδιαγραφών οι οποίες βασίζονται στην εξισωτική λογική με τύπους και διάταξη (order sorted equational logic) και είναι συνήθως εμπλουτισμένες με άλλες μορφές λογικής, όπως λογική αναγραφών (rewriting logic), ή πρωτοβάθμια λογική (first order logic).

Τα κυριώτερα μέλη της οικογένειας αυτής είναι οι γλώσσες OBJ), OBJ3, CafeOBJ, και BOBJ. Το τμηματικό σύστημα, των γλωσσών αυτών βασίστηκε σε πρωτοπόρες ιδέες οι οποίες είχαν υλοποιηθεί στη γλώσσα CLEAR από τον Joseph Goguen και τον Rod Burstall στη δεκαετία του 1970.

Κοινά χαρακτηριστικά όλων των γλωσσών OBJ αποτελούν: Η σημασιολογία σε λογικά συστήματα. Υποστήριξη σύνταξης mixfix η οποία μπορεί να οριστεί από το χρήστη, ορισμός τρατηγικών εκτέλεσης οι οποίες ορίζονται από τον χρήστη και αναγραφή των όρων. Παροχή δυνατοτήτων παραμετροποιημένου προγραμματισμού.

Η Γλώσσα CafeOBJ Η CafeOBJ είναι μία νέας γενιάς γλώσσα αλγεβρικών προδιαγραφών η οποία έχει αναπτυχθεί στην Ιαπωνία. Η CafeOBJ διατηρεί πολλά από τα χαρακτηριστικά της OBJ3, όπως η μικτή σύνταξη των τελεστών, ο ορισμός υποτύπων με βάση τη διάταξη σε αυτούς, και τμηματικό σύστημα.

Προσθέτει νέα στοιχεία στην Κρυφή Άλγεβρα hidden algebra), τη λογική των αναγραφών (rewriting logic) και σε συνδυασμούς με την άλγεβρα με πολλούς τύπους και διάταξη. Αυτή η προσέγγιση περικλείει πολλά διαφορετικά λογικά συστήματα και έχει ορισθεί με πολύ κομψό μαθηματικό τρόπο χρησιμοποιώντας εμφυτεύσεις της θεωρίας Θεσμών (Institution Theory).

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

Η Γλώσσα Maude Η Maude συμπεριλαμβάνει τα περισσότερα χαρακτηριστικά της OBJ3, συνήθως με μικρές συντακτικές αλλαγές, και προσθέτει μία υλοποίηση της λογικής αναγραφής, χρησιμοποιώντας μία πολύ δυνατή μηχανή αναγραφών και γενίκευση της σχέσης μέλους της εξισωτικής λογικής (με πολλούς τύπους και διάταξη).

Η ομάδα CoFI και η γλώσσα CASL Η ομάδα CoFI η οποία αποτελείται επι το πλείστον από Ευρωπαίους επιστήμονες της θεωρητικής επιστήμης των υπολογιστών, έχει σχεδιάσει και υλοποιήσει μια κοινή γλώσσα αλγεβρικών προδιαγραφών που ονομάζεται CASL (Common Algebraic Specification Language).

CafeOBJ Είναι μία εκτελέσιμη γλώσσα αλγεβρικών προδιαγραφών βιομηχανικής δύναμης. Είναι απόγονος της OBJ και ενσωματώνει νέες μεθόδους αλγεβρικών προδιαγραφών. Η CafeOBJ αναπτύχθηκε κυρίως για τη προδιαγραφή συστημάτων, για την απόδειξη ιδιοτήτων των συστημάτων αυτών, για προγραμματισμό κτλ.

Μερικά από τα χαρακτηριστικά της γλώσσας είναι: Εξισωτικές προδιαγραφές και προγραμματισμός Συμπεριφοριακές προδιαγραφές Προδιαγραφές με βάση τη λογική των αναγραφών Τμηματικό σύστημα προδιαγραφών Αυστηρός έλεγχος τύπων και μερικότητας αυτών

Μη-ντετερμινισμός Σύνθεση συμπεριφοριακών αντικειμένων Συγχρονισμός αντικειμένων Η CafeOBJ είναι κατα βάση μία δηλωτική γλώσσα με αυστηρά μαθηματικά και λογικά θεμέλια (όπως και όλα τα μέλη της οικογένειας γλωσσών OBJ). Στηρίζεται σε τελευταίας τεχνολογίας τεχνικές αλγεβρικών προδιαγραφών, θεωρίας κατηγοριών και θεωρίας θεσμών.

Οι κυριότερες αρχές με τις οποίες δημιουργήθηκε η γλώσσα είναι οι εξής: [ ] Η ύπαρξη μίας μαθηματικής λογικής με βάση την οποία όλα τα κατασκευάσματα της γλώσσας και οι ιδιότητές της μπορούν να εξηγηθούν αυστηρά [ ] Να παρέχει ένα συνεπή, περιεκτικό και ενιαίο τρόπο για τη σημασιολογία των προδιαγραφών που γράφονται σε αυτή

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

Συντακτικό Θα δούμε το συντακτικό της χρησιμοποιώντας ένα παράδειγμα ορισμού μιας απλής προδιαγραφής των φυσικών αριθμών: mod! SNat{ pr(eql) -- sorts [SNat]

-- operations op 0 : -> SNat. op s : SNat -> SNat. -- variables vars N M : SNat. -- axioms eq (s(n) = 0) = false. ceq (S(M) = S(N)) = true if (M = N) }

Με τη λέξη κλειδί mod δηλώνουμε την αρχή μίας προδιαγραφής που θα βρίσκεται μέσα στο σώμα του mod, δηλαδή ανάμεσα από τα. Ο χαρακτήρας! ή {*} μετά από τη λέξη κλειδί mod δηλώνει ότι η προδιαγραφή που θα ακολουθήσει θα έχει είτε πρωταρχική είτε χαλαρή σημασιολογία (δηλαδή τα μοντέλα που ικανοποιούν την προδιαγραφή και όχι μόνο τα ισομορφικά με το πρωταρχικό μοντέλο).

Tελεστές. Τα ονόματα των τύπων που ορίζει η προδιαγραφή δηλώνονται μέσα σε αγκύλες (π.χ. [SNat]). Ένα σύμβολο <, ανάμεσα στα ονόματα δύο τύπων δηλώνει ότι ο ένας είναι υποτύπος του άλλου.

Εξισώσεις. Η λέξη κλειδί eq σηματοδοτεί την έναρξη του ορισμού μίας εξίσωσης, στην οποία το δεξί της μέρος δηλώνεται πριν από το σύμβολο = ενώ το αριστερό μετά από αυτό. Το τέλος της δήλωσης μιας εξίσωσης σηματοδοτείται από μία τελεία.

Μεταβλητές. Οι μεταβλητές δηλώνονται χρησιμοποιώντας τη λέξη κλειδί var ακολουθούμενη από το όνομα της μεταβλητής, μία άνω και κάτω τελεία και το τύπο της μεταβλητής. Είναι δυνατόν να συμπτύξουμε τους ορισμούς πολλών μεταβλητών ίδιου τύπου σε μία γραμμή χρησιμοποιώντας τη λέξη κλειδί vars.

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

Εξισώσεις υπό συνθήκη. Ακόμα η δήλωση μίας υπό-συνθήκης εξίσωσης γίνεται με τη χρήση της κωδικής λέξης ceq, που ακολουθείται από μία εξίσωση στο τέλος της οποίας βρίσκεται μία έκφραση της μορφής if P, όπου P είναι κάποιο κατηγόρημα.

Ισότητες. Τέλος στη γλώσσα ορίζονται δύο ειδών ισότητες μέσω δύο κατηγορημάτων. Ο πρώτος τελεστής ισότητας ορίζεται ως =, ενώ ο δεύτερος ως ==. Και οι δύο τελεστές επιστρέφουν true αν τα δύο τους ορίσματα μπορούν να αναγραφούν (με βάση το σύστημα αναγραφής της γλώσσας) στον ίδιο όρο.

Σχόλια. Τέλος οι γραμμές που αρχίζουν με -- αποτελούν σχόλια και αγνοούνται από τη μηχανή.

Τμηματικό σύστημα προδιαγραφών (Module System). Το τμηματικό σύστημα της γλώσσας μας επιτρέπει τη χρήση διαφόρων ειδών εισαγωγής άλλων προδιαγραφών στη θεωρία που ορίζουμε (μέσω των λέξεων κλειδιών pr, ex, ) και παραμετρικού προγραμματισμού: πολλαπλές παραμέτρους σε μία προδιαγραφή views για την αρχικοποίηση των παραμέτρων

Σύστημα τύπων. Το σύστημα τύπων της CafeOBJ είναι βασισμένο στην άλγεβρα με πολλούς τύπους και διάταξη (ΑΤΔ) έτσι επιτρέπει τον ορισμό υποτύπων. Αυτό προσφέρει αυστηρό έλεγχο των τύπων της προδιαγραφής καθώς και μία μεθοδολογία για τον χειρισμό σφαλμάτων βασισμένη σε αυτό.

Ακόμα αυτό το σύστημα επιτρέπει συντακτική ευελιξία στη γλώσσα συγκρίσιμη με αυτή των γλωσσών χωρίς τύπους ενώ ταυτόχρονα διατηρεί όλα τα πλεονεκτήματα των τύπων. Η CafeOBJ δεν επιτρέπει τον απευθείας τον ορισμό μερικών τελεστών. Για να μπορέσουμε να ορίσουμε τέτοιους τελεστές μπορούμε να χρησιμοποιήσουμε το σύστημα των υποτύπων που μας προσφέρει η γλώσσα.

Behavioural Specifications. Η CafeOBJ υποστηρίζει απευθείας τις συμπεριφοριακές προδιαγραφές και την θεωρία αποδείξεών τους μέσω ειδικών κατασκευασμάτων της γλώσσας. Πιο συγκεκριμένα ένας κρυφός τύπος ορίζεται μέσα σε αγκύλες περιβαλόμενες από αστερίσκους, δηλαδή [* hiddensortnames*].

Η σημασιολογία ενός τέτοιου τύπου είναι αυτή της κρυφής άλγεβρας δηλαδή αυτή των καταστάσεων ενός συστήματος. Οι συμπεριφοριακοί τελεστές (behavioral operations) που όπως είπαμε περιέχουν στο πεδίο ορισμού τους ένα κρυφό τύπο ορίζονται με τη λέξη κλειδί bop.

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

Η CafeOBJ διευκολύνει τις αποδείξεις που γίνονται με τη μέθοδο της συνεπαγωγής ορίζοντας απευθείας μία σχέση ισοδυναμίας σε κάθε κρυφή προδιαγραφή η οποία συμβολίζεται ώς =*=.

Στη συνέχεια η μηχανή της γλώσσας προσπαθεί να αποδείξει αυτόματα ότι η σχέση αυτή είναι Γ-διατηρητική (χρησιμοποιώντας ώς Γ όλους τους συμπεριφοριακούς τελεστές) και ενημερώνει για το αποτέλεσμα της απόδειξης.

Αν η μηχανή επιτύχει στην απόδειξή της τότε η σχέση $=*=$ μπορεί να χρησιμοποιηθεί σαν κρυφή ισοδυναμία για την απόδειξη συμπεριφοριακών ιδιοτήτων με τη μέθοδο της συνεπαγωγής.

Εκτός από τα ειδικά κατασκευάσματα η CafeOBJ υποστηρίζει τις συμπεριφοριακές προδιαγραφές και την απόδειξη ιδιοτήτων γι' αυτές με διάφορες άλλες μεθοδολογίες και συγκεκριμένα κυρίως μέσω της συμπεριφοριακής αναγραφής (behavioral rewriting).

Δηλαδή η μηχανή υλοποιεί τους κανόνες αναγραφής (ο πιο σημαντικός από τους οποίους είναι η χρήση του κανόνα της ισοδυναμίας μόνο σε συμπεριφοριακά διατηρητικούς τελεστές) εξασφαλίζοντας έτσι την ορθότητα των αποδείξεων που δημιουργούνται χρησιμοποιώντας το σύστημα αναγραφής.

Προδιαγραφές βασισμένες σε λογική αναγραφής Η λογική του συστήματος αναγραφής της CafeOBJ βασίζεται στη λογική αναγραφής (RWL) του Meseguer η οποία δίνει μία μη τετριμμένη επέκταση στις παραδοσιακές αλγεβρικές προδιαγραφές επιτρέποντας έννοιες όπως ο παραλληλισμός των υπολογισμών.

Η RWL ενσωματώνει πολλά διαφορετικά μοντέλα παραλληλισμού με ένα απλό και φυσικό τρόπο και έτσι παρέχει στην CafeOBJ ευρύ πεδίο εφαρμογών. Η γλώσσα επιτρέπει την απόδειξη ιδιοτήτων για την ύπαρξη μεταβάσεων ανάμεσα από καταστάσεις συστημάτων μέσω του τελεστή ==> ο οποίος ενσωματώνει τη θεωρίας αποδείξεων της RWL με την εξισωτική λογική.

Συστήματα Παρατηρήσεων Μεταβάσεων (Observational Transition Systems) - Αναλλοίωτες ιδιότητες (Ιnvariant properties) Τα Συστήματα Παρατηρήσεων Μεταβάσεων (ΣΠΜ) αποτελούν μία γνήσια υπό-κλάση των συμπεριφοριακών προδιαγραφών. Παρόλ' αυτά είναι ικανά να περιγράψουν μία πληθώρα προβλημάτων και για αυτό το λόγο έχουν χρησιμοποιηθεί πολύ στη βιβλιογραφία.

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

Ένα σύστημα περιγράφεται σαν ένα ΣΠΜ παρατηρώντας από κάποιο εξωτερικό ως προς το σύστημα σημείο την κατάσταση του. Δηλαδή, το μόνο που μπορούμε να παρατηρήσουμε είναι οι τιμές κάποιων πειραμάτων που μπορούμε να διεξάγουμε και το πώς αυτές οι τιμές αλλάζουν όταν εφαρμοστούν οι κανόνες μετάβασης του συστήματος.

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

Ένα ΣΠΜ ορίζεται ως μία τριάδα, S=<O, I, T> όπου: 1. O, είναι ένα σύνολο από πειράματα, κάθε τέτοιο πείραμα, o O, ορίζει μία συνάρτηση o: Y D όπου D είναι κάποιος τύπος δεδομένων που μπορεί να είναι διαφορετικός για κάθε πείραμα.

2. I, αποτελεί ένα υποσύνολο του συνόλου όλων των πιθανών καταστάσεων του συστήματος, Y, το οποίο συνήθως ονομάζουμε σύνολο των αρχικών καταστάσεων. 3. T, ένα σύνολο από υπό-συνθήκη κανόνες μετάβασης. Κάθε τέτοιος κανόνας τ T ορίζει μία συνάρτηση πάνω στις κλάσεις ισοδυναμίας του χώρου των καταστάσεων με βάση το ΣΠΜ.

Ακόμα μαζί με κάθε κανόνα μετάβασης ορίζεται και μία συνθήκη που τη συμβολίζουμε συνήθως ως c-τ η οποία είναι ένα κατηγόρημα πάνω στις καταστάσεις του Y τέτοιο ώστε να ισχύει ότι τ(u) = u αν c-τ(u).

Ένα ΣΠΜ μπορεί να περιγραφεί με φυσικό τρόπο στη CafeOBJ. Τα πειράματα αναπαριστώνται από τελεστές παρατήρησης και οι κανόνες μετάβασης με συμπεριφοριακούς τελεστές με κρυφό τύπο. Συνήθως οι παρατηρήσεις αυτές και οι κανόνες μετάβασης είναι παραμετρικοί.

Δεδομένου τώρα ενός ΣΠΜ θα αποκαλούμε εκτέλεση μια άπειρη ακολουθία από καταστάσεις u0,,un, οι οποίες ικανοποιούν τις ακόλουθες συνθήκες: (Αρχικοποίηση) u0 I (Διαδοχή) όλες οι καταστάσεις προκύπτουν από την προηγούμενη κατάσταση της ακολουθίας εφαρμόζοντας κάποιο κανόνα μετάβασης.

Θα λέμε ότι μία κατάσταση είναι προσβάσιμη (reachable) ανν εμφανίζεται ως μέρος κάποιας εκτέλεσης του S. Με RS θα συμβολίζουμε το σύνολο όλων των προσβάσιμων καταστάσεων του S. Μια ιδιότητα θα καλείται αναλλοίωτη (invariant), όσον αφορά το S, ανν ισχύει για όλες τις προσιτές καταστάσεις του S.

Η μέθοδος των Proof Scores Η επαλήθευση ότι ο σχεδιασμός ενός συστήματος (ΣΠΜ) πληρεί κάποιες ιδιότητες ασφαλείας τις περισσότερες φορές ανάγεται στην απόδειξη ότι η προδιαγραφή ικανοποιεί ένα σύνολο από αναλλοίωτες ιδιότητες invariant properties, δηλαδή ιδιότητες που ισχύουν σε κάθε κατάσταση του συστήματος.

Έτσι η απόδειξη αναλλοίωτων ιδιοτήτων για συμπεριφοριακές προδιαγραφές ορισμένες με όρους της CafeOBJ βασίζεται στην μεθοδολογία που ονομάζεται Proof Scores. Η μεθοδολογία των Proof Scores χαρακτηρίζεται ως διαδραστική μεταξύ του χρήστη και του υπολογιστή.

Ο χρήστης γράφει με κατάλληλο τρόπο το πλάνο της απόδειξης και ο υπολογιστής την εκτελεί αναλαμβάνοντας όλους τους κουραστικούς υπολογισμούς και απαντάει με true ή false ανάλογα με το αν επιτυγχάνει το πλάνο της απόδειξης.

Χρηματοδότηση - Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. - Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. - Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικού πόρους.