mercury — συγκεντρωτικός οδηγός — DedSec Project
mercury — συγκεντρωτικός οδηγός Mercury Συνήθης χρήση: Λογικός προγραμματισμός. Προτεινόμενη επέκταση αρχείου: .m . Εκτέλεση / περιβάλλον: mmc --make hello (εργαλεία Mercury). Αρχικό…
Mercury
Συνήθης χρήση: Λογικός προγραμματισμός.
Προτεινόμενη επέκταση αρχείου: .m.
Εκτέλεση / περιβάλλον: mmc --make hello (εργαλεία Mercury).
Αρχικό παράδειγμα
:- module hello.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
main(!IO) :- io.write_string("Hello, Ada!\n", !IO).
Πώς διαβάζεται
Λογική γλώσσα με αυστηρούς τύπους και δηλώσεις τρόπου.
Συνηθισμένο λάθος
Λογική γλώσσα με αυστηρούς τύπους και δηλώσεις τρόπου. Έλεγξε την έκδοση διερμηνευτή/μεταγλωττιστή και μην εκλαμβάνεις το δείγμα ως έτοιμη εφαρμογή παραγωγής.
Mercury — Αναλυτικός οδηγός εξάσκησης
Μικρή αφετηρία πηγαίου κώδικα
:- module hello.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
main(!IO) :- io.write_string("Hello, Ada!\n", !IO).
Περιβάλλον: mmc --make hello (Mercury toolchain).. Κράτησε αντίγραφο του αρχικού κώδικα και σημείωσε έκδοση εργαλείου. Ξεχώρισε αν η εκτέλεση επιστρέφει τιμή, εμφανίζει κείμενο ή αλλάζει state. Για τις πρώτες δοκιμές χρησιμοποίησε απομονωμένο περιβάλλον, όχι πραγματικούς λογαριασμούς ή δεδομένα.
Ανάλυση του ιδιαίτερου μηχανισμού
Φτιάξε deterministic predicate και multi-solution predicate πάνω σε μικρή relation. Δήλωσε modes/determinism και εντόπισε λάθος declaration μέσω compiler.
Διάγνωση κρίσιμου ορίου
Η Mercury θεωρεί determinism και instantiation μέρος του interface. Η σύνταξη Prolog μοιάζει αλλά δεν μεταφέρεται αυτούσια.
Mercury — Διαδρομή ουσιαστικής εξάσκησης
Πρακτικές εργασίες
- Όρισε σχέση γονέα/προγόνου στο κατάλληλο περιβάλλον.
- Δείξε πώς επιπλέον γεγονός αλλάζει το σύνολο αποτελεσμάτων.
- Εξήγησε τον τερματισμό και τις επιδράσεις της σειράς αναζήτησης.
Ερωτήσεις ουσίας
- Η εκτέλεση αναζητά λύσεις ή ακολουθεί βήματα;
- Ποια εργαλεία εκτελούν ή ελέγχουν το παράδειγμα και σε ποια έκδοση;
- Ποιο είναι το μικρότερο ελεγμένο πρόγραμμα; Ποιες είναι οι παρενέργειες;
- Πώς γίνεται διάκριση μεταξύ σφάλματος σύνταξης, λογικής και περιβάλλοντος;
- Πώς δοκιμάζονται άκυρα δεδομένα χωρίς βλάβη σε αρχεία ή σύστημα;