Λ-λογισμός με απλούς τύπους: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Polyvios (συζήτηση | συνεισφορές)
μετάφραση από το αγγλικό
(Καμία διαφορά)

Έκδοση από την 14:58, 3 Ιανουαρίου 2012


Ο λ-λογισμός με απλούς τύπους () είναι μια θεωρίας τύπων, είναι μια ερμηνεία τύπων του λ-λογισμού με ένα μοναδικό κατασκευαστή τύπων (type constructor): , ο οποίος κατασκευάζει τύπους συναρτήσεων. Είναι το κανονικό και το πιο απλό παράδειγμα λ-λογισμού με τύπους, και εμφανίζει πολλές επιθυμητές και ενδιαφέρουσες ιδιότητες.

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


Συντακτικό

Για να οριστούν οι τύποι, ορίζουμε ένα σύνολο βασικών τύπων,  . Αυτοί λέγονται και ατομικοί τύποι ή σταθερές τύπων. Με ορισμένο το σύνολο σταθερών, το συντακτικό των τύπων είναι:

 .

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

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

Το συντακτικό του λ-λογισμού με απλούς τύπους είναι βασικά το ίδιο με το συντακτικό του λ-λογισμού. Το συντακτικό όρων που χρησιμοποιεί το παρόν άρθρο είναι:

 

όπου   είναι σταθερά όρων.

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

Συγκριτικά, το συντακτικό του λ-λογισμού χωρίς τύπους είναι:

 

Φαίνεται ότι στο λ-λογισμό με τύπους κάθε συνάρτηση (αφαίρεση) πρέπει να καθορίζει τον τύπο του ορίσματός της.

 
 
Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα Simply Typed lambda calculus της Αγγλικής Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 4.0. (ιστορικό/συντάκτες).