- Art Gallery -

 

.

Στην επιστήμη των υπολογιστών ένα ονομαστικό σύστημα τύπων (Αγγλικά: Nominal type system) είναι μια βασική ομάδα του συστήματος τύπων όπου η ισότητα και η συμβατότητα μεταξύ τύπων δεδομένων καθορίζεται με τις ρητές δηλώσεις κατά τον ορισμό των ονομάτων των τύπων. Δύο τύποι είναι ισοδύναμοι (ισοδυναμία ονόματος / στα αγγλικά: name equivalence) εάν έχουν το ίδιο όνομα τύπου στο ίδιο πλαίσιο/συμφραζόμενα. Δύο τύποι που έχουν την ίδια δομή αλλά διαφορετικό όνομα τύπου θεωρούνται διαφορετικοί τύποι. Τα συστήματα τύπων χρησιμοποιούνται για να καθοριστούν αν δύο τύποι είναι ισοδύναμοι ή αν ένας τύπος είναι υποτύπος (στα αγγλικά: subtype) από κάποιον άλλον. Σε αντίθεση όταν έχουμε δομημένα συστήματα τύπων, δύο τύποι είναι ισοδύναμοι εάν έχουν την ίδια δομή (ονομάζεται ισοδυναμία δομής / στα αγγλικά: structural equivalence) δεν χρειάζεται να έχουμε ρητή δήλωση ίδιου ονόματος τύπου. [1]

Παράδειγμα

Στο παρακάτω παράδειγμα ορίζουμε την δομή a1 και την δομή b1 σε γλώσσα τύπου C [2]:

struct {
int x;
int y;
} a;

struct {
int x;
int y;
} b;

Ο ορισμός a := b; είναι αποδεκτός (δηλαδή σωστός) σε μια γλώσσα προγραμματισμού με δομημένο σύστημα τύπων ενώ δεν είναι αποδεκτός (δεν είναι σωστός) σε μια γλώσσα προγραμματισμού με ονομαστικό σύστημα τύπων. Για παράδειγμα η γλώσσα προγραμματισμού Pascal χρησιμοποιεί καθαρά ονομαστικό σύστημα τύπων:

a : array[1..10] of Integer;
b : array[1..10] of Integer;

a := b; (* αυτό δεν είναι αποδεκτό! *)

Έτσι η έκφραση x := y δεν είναι αποδεκτή παρόλο που ο τύπος a και b έχουν ακριβώς την ίδια δομή.
Δείτε επίσης

Pierce, Benjamin C. (2002). Types and programming languages. Cambridge, Mass. [u.a.]: MIT Press, σελ. 251-254. ISBN 0-262-16209-1.

Παραπομπές

(ed.), Boris Magnusson (2002). ECOOP 2002 - object-oriented programming 16th European Conference, Málaga, Spain, June 2002 : proceedings. Berlin: Springer, σελ. 474. ISBN 3-540-43759-2.
Gil, Yossi. «Nominal vs. Structural Type Systems». Israel Institute of Technology. Ανακτήθηκε στις 14 Δεκεμβρίου 2014.

Από τη ελληνική Βικιπαίδεια http://el.wikipedia.org . Όλα τα κείμενα είναι διαθέσιμα υπό την GNU Free Documentation License