γλώσσες προγραμματισμού Λογική ήταν γύρω για περισσότερο από είκοσι χρόνια. Παρά τα αναμενόμενα πλεονεκτήματα ενός πολύ υψηλού επιπέδου γλώσσα προγραμματισμού που βασίζεται σε καλά ανεπτυγμένες θεωρίες της λογικής έναντι των συμβατικών γλώσσες προγραμματισμού (όπως η C, C ++, Pascal και η Ada), δεν είχαν σημαντική επίδραση στην βιομηχανία των υπολογιστών.
Ο υδράργυρος είναι μια νέα λογική / λειτουργική γλώσσα προγραμματισμού, η οποία συνδυάζει τη σαφήνεια και την εκφραστικότητα του δηλωτικού προγραμματισμού με προηγμένα χαρακτηριστικά στατικής ανάλυσης και ανίχνευσης σφαλμάτων.
Ο υδράργυρος είναι ιδιαίτερα βελτιστοποιημένη αλγόριθμο εκτέλεσης παραδίδει την αποδοτικότητα που υπερβαίνουν κατά πολύ τα υπάρχοντα συστήματα λογικού προγραμματισμού, και κοντά με τα συμβατικά συστήματα προγραμματισμού.
Ερμής αντιμετωπίζει τα προβλήματα της μεγάλης κλίμακας ανάπτυξη του προγράμματος, επιτρέποντας σπονδυλωτής, ξεχωριστή μεταγλώττιση, και πολλές βελτιστοποίηση / ώρα συμβιβασμούς
Τι είναι καινούργιο σε αυτή την έκδοση:.
- bugfix διορθώσεις απελευθέρωση χτίσει προβλήματα στο Solaris και το NetBSD και προσθέτει υποστήριξη για την επιλογή του C # compiler κατά το χρόνο διαμόρφωσης.
- Διάφορες άλλες ήσσονος σημασίας σφάλματα έχουν καθοριστεί.
- Υπάρχουν επίσης κάποιες μικρές προσθήκες στην πρότυπη βιβλιοθήκη.
Τι είναι καινούργιο στην έκδοση 13.05:
- Δημιουργία εκτελέσιμων 64-bit των Windows υποστηρίζεται τώρα.
- Σύνταξη φορές για πολύ μεγάλα προγράμματα βελτιώθηκαν.
- έχουν προστεθεί αρκετές νέες βελτιστοποιήσεις τύπου εκπροσώπηση.
- Το πρόγραμμα εντοπισμού σφαλμάτων έχει τώρα καλύτερη υποστήριξη για το χειρισμό κλίκες αμοιβαία αναδρομικές κλήσεις στη στοίβα.
- Η σύνδεση με τη βιβλιοθήκη GLFW έχει προστεθεί με την κατανομή πρόσθετων.
- Συνελεύσεις που δημιουργούνται με την C # backend μπορεί τώρα να υπογραφεί με ένα ισχυρό όνομα.
Οι
Τι είναι καινούργιο στην έκδοση 11.01:
- Έχουμε προσθέσει δύο νέα είδη πεδίων με τη γλώσσα.
- Ένα πεδίο εφαρμογής που θεσπίστηκε με μια από τις νέες λέξεις-κλειδιά require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous και require_failure, όπως υποδηλώνει το όνομα, απαιτεί ο στόχος μέσα στο πεδίο για να έχουν το δεδομένο ντετερμινισμό.
- Ένα πεδίο που εισήγαγε τη λέξη-κλειδί require_complete_switch απαιτεί το σκοπό αυτό εντός του πεδίου εφαρμογής, αν αυτό είναι ένας διακόπτης για τη μεταβλητή που ονομάζεται από το πεδίο εφαρμογής, να είναι μια πλήρης αλλαγή, δηλαδή να έχουν όπλα για όλα τα σύμβολα λειτουργία στο είδος του αναμμένων μεταβλητή.
- Έχουμε προσθέσει semidet τρόπους για hash_table.fold / 4 και version_hash_table.fold / 4.
- Έχουμε προσθέσει νέα κατηγορήματα και λειτουργίες για τη μονάδα assoc_list. Τα κατηγορήματα map_keys_only / 3 map_values_only / 3 και map_values / 3 συμπληρώνουν τις λειτουργίες του το ίδιο όνομα. Τα κατηγορήματα φιλτράρει / 3, negated_filter / 3, φιλτράρει / 4, συγχώνευση / 3, οι οποίες έχουν επίσης εκδόσεις λειτουργία, κάνουν τη δουλειά πολύ παρόμοια με τα κατηγορήματα με το ίδιο όνομα στην ενότητα λίστα, αλλά να κάνει τις σχετικές ενέργειες σχετικά με τα πλήκτρα αντί για ολόκληρο το λίστα στοιχείων.
- Έχουμε προχωρήσει τη μονάδα αξιολόγησης τεμπέλης έξω από την κατανομή πρόσθετων στοιχείων και σε ένα νέο πρότυπο ενότητας βιβλιοθήκη που ονομάζεται `τεμπέληδες». Επίσης, έχει γίνει backend-αγνωστικιστής.
- Κάναμε αλλαγές στην ενότητα λίστα της πρότυπης βιβλιοθήκης:
- Προσθέσαμε ένα νέο κατηγόρημα list.member_index0 / 3. Είναι σαν list.member / 2 εκτός από το ότι παίρνει επίσης μια παράμετρος που αντιπροσωπεύει το μηδέν-με βάση το δείκτη του στοιχείου στη λίστα.
- Προσθέσαμε ένα νέο κατηγόρημα list.map3_foldl / 7, η οποία χαρτογραφεί σε μια λίστα που παράγει τρία ψηφοδέλτια και μία διπλωμένη αξία.
- Προσθέσαμε semidet τρόπους με μοναδικό συσσωρευτές για list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, και list.foldl6 / 14.
- Έχουμε προσθέσει τα κατηγορήματα χωρίζουν / 4 και divide_by_set / 4 στην ενότητα tree_bitset της πρότυπης βιβλιοθήκης.
- Έχουμε προσθέσει τα κατηγορήματα set_ctree234.member / 2 και set_ctree234.non_empty / 1. Έχουμε προσθέσει τη λειτουργία set_ctree234.from_list / 1.
- Έχουμε προσθέσει το το κατηγόρημα set_bbbtree.count / 2 και η λειτουργία set_bbbtree.count / 1. Αυτοί αντικαθιστούν το κατηγόρημα set_bbbtree.size / 2, το οποίο είναι πλέον παρωχημένο.
- Έχουμε προσθέσει το κατηγόρημα set_ordlist.non_empty / 1.
- Έχουμε προσθέσει το κατηγόρημα set_tree234.non_empty / 1 και το set_tree234.from_list λειτουργία / 1.
- Έχουμε προσθέσει τα κατηγορήματα set_unordlist.non_empty / 1 και set_unordlist.count / 2, και το set_unordlist.count λειτουργία / 1.
- Όλες οι ενότητες στην πρότυπη βιβλιοθήκη που εφαρμόζουν το σύνολο ADT, (σετ, set_ordlist, set_unordlist, set_bbbtree, set_tree234, και set_ctree234), τώρα υποστηρίζει την αναδίπλωση σύνολα με μέχρι και έξι συσσωρευτές. Έχουν επίσης προστεθεί λειτουργίες που παρέχουν μοναδικές και ως επί το πλείστον, μοναδική συσσωρευτές για την παύση φορές.
- Έχουμε κάνει τις ακόλουθες αλλαγές στη λειτουργική μονάδα σειρά της πρότυπης βιβλιοθήκης:
- Έχουμε προστίθενται οι λειτουργίες unsafe_elem / 2 και επισυνάπτει / 2.
- Έχουμε προσθέσει τα κατηγορήματα svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, και μέλος / 2.
- Έχουμε προσθέσει τα κατηγορήματα version_array.foldl2 / 6, version_array.foldr / 4, και version_array.foldr2 / 6 στην πρότυπη βιβλιοθήκη.
- Έχουμε προσθέσει semidet τρόπους με μοναδικό και ως επί το πλείστον, μοναδική συσσωρευτές για τα παρακάτω κατηγορήματα:
- bimap.foldl2 / 6
- bimap.foldl3 / 8
- cord.foldl_pred / 4
- cord.map_foldl / 5
- list.map_corresponding_foldl2 / 8
- list.map_corresponding_foldl3 / 10
- list.map_corresponding3_foldl / 7
- map.foldl3 / 8
- Έχουμε προσθέσει το κατηγόρημα unsorted_aggregate2 / 6 στην ενότητα λύσεις της πρότυπης βιβλιοθήκης.
- Έχουμε προσθέσει πολλά κατηγορήματα και λειτουργίες για την ενότητα απαιτεί από την πρότυπη βιβλιοθήκη. Τα κατηγορήματα συγνώμη / 2 και συγγνώμη έκθεση / 3 η απουσία ενός χαρακτηριστικού, ενώ τα κατηγορήματα απροσδόκητη / 2 και απρόσμενη / 3 έκθεση ένα εσωτερικό σφάλμα στο πρόγραμμα? όλα έχουν εκδόσεις λειτουργούν πάρα πολύ. Το κατηγόρημα αναμένουν / 3 κλήσεις απροσδόκητη αν μια κατάσταση δεν είναι ικανοποιημένοι. Έχουμε τώρα αναμένουμε / 4, καθώς περιμένουν / 3. Για αναμένουν / 4, καθώς περιμένουν / 3, η πρώτη και η τελευταία επιχειρήματα είναι η αναμενόμενη κατάσταση και το μήνυμα σφάλματος, αντίστοιχα, αλλά με περιμένουν / 4, υπάρχουν δύο επιχειρήματα στη μέση για να καθορίσετε τη θέση του σφάλματος (συνήθως το όνομα της μονάδας και του κατηγορήματος αντίστοιχα). Προσθέσαμε επίσης expect_not / 3 και expect_not / 4, τα οποία είναι σαν αναμένουν / 3 και αναμένουμε / 4 αντίστοιχα, με εξαίρεση ότι αναμένουν η κατάσταση να είναι ψευδής * *, δεν είναι αλήθεια.
Τι είναι καινούργιο στην έκδοση 10.04.2:
- Αυτή η έκδοση είναι μια απελευθέρωση bug-fix. Μια σειρά προβλημάτων που προκάλεσε ο compiler να εγκαταλείψετε έχουν καθοριστεί, κάποια σπασμένα επιχειρήσεις RTTI στο βαθμό Java έχουν καθοριστεί, και έχουμε προσθέσει μια λύση για ένα πρόβλημα με την έκδοση του GCC 4.4.
Περιορισμοί :
- Η τρέχουσα εφαρμογή δεν έχει ακόμη εφαρμόσει πλήρως τη γλώσσα Ερμή. Οι βασικοί περιορισμοί της τρέχουσας εφαρμογής είναι τα εξής:
- Δεν επιτρέπουμε οριστική aliasing στο σύστημα λειτουργίας. Χωρίς αυτό, εν μέρει υποστασιοποιημένων τρόποι είναι άχρηστα, και έτσι οι ένθετες μοναδικούς τρόπους.
- Ο compiler δεν χρησιμοποιούν ακόμη επαναχρησιμοποίηση δομή ή χρόνο μεταγλώττισης ξεσκαρτάρισμα να εκμεταλλευτεί μοναδικούς τρόπους.
- Τύπος και λειτουργία συμπέρασμα είναι λίγο ατελής.
- Επιπλέον, οι αποφάσεις σχεδιασμού σε αυτό το implemenation έχουν επιβληθεί τα ακόλουθα όρια:
- κατηγορήματα και λειτουργίες μπορούν να έχουν το πολύ περίπου 1000 επιχειρήματα.
- υψηλός-διαταγής μπορεί να έχει το πολύ περίπου 500 επιχειρήματα.
Όροι
Τα σχόλια δεν βρέθηκε