(μήπως οι HTML, XML είναι ; αν όχι, τι είναι αυτές ; )
Μεγάλο θέμα άνοιξες...

Αυτές δεν είναι σίγουρα γλώσσες 4
ης γενιάς αφού δεν είναι καν γλώσσες προγραμματισμού.
Η
HTML είναι markup γλώσσα (γλώσσα σήμανσης), σκοπός της οποίας είναι να περιγράψει πως θα φαίνεται κάποιο περιεχόμενο ή κάποια δεδομένα αν θες, από έναν browser. Τίποτα παραπάνω.
Η
XML είναι ένα επίπεδο πάνω από την html αλλά και πάλι δεν μπορείς να την χαρακτηρίσεις γλώσσα προγραμματισμού. Είναι ένα σύνολο κανόνων (πάλι γλώσσα σήμανσης) με αρχικό σκοπό τη προσθήκη δομής σε κάποιο περιεχόμενο (έγγραφο, εικόνα) στον παγκόσμιο ιστό. Ο χρήστης σε αντίθεση με την html μπορεί να ορίσει δικό του λεξιλόγιο.
<?xml version="1.0" encoding='UTF-8'?>
<painting>
<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
<caption>This is Raphael's "Foligno" Madonna, painted in
<date>1511</date>-<date>1512</date>.
</caption>
</painting>
χρησιμοποιείται για την κωδικοποίηση, αποθήκευση και ανταλλαγή περιεχομένου στον παγκόσμιο ιστό.
Για να μη μπερδευτούμε μέχρι εδώ...
Η HTML εστιάζει στο πως φαίνονται τα δεδομένα ενώ η XML περιγράφει τα δεδομένα.
Θες να το πάω πιο μακρυά; Υπάρχει και το
RDF. Είναι ένα μοντέλο δεδομένων (σαν το E-R) που σου επιτρέπει να γράφεις απλές προτάσεις για περιεχόμενο στον παγκόσμιο ιστό. Χρησιμοποιεί τους όρους resource, property και statement. Δεν ταυτίζεται με την XML αλλά ένας από τους τρεις τρόπους αναπαράστασης του μοντέλου την χρησιμοποιεί:
<?xml version="1.0" encoding="UTF-16"?>
<rdf:RDF xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:mydomain="
http://www.mydomain.org/my-rdf-ns">
<rdf:Description rdf:ID="
http://www.csd.uoc.gr/_dogjohn">
<mydomain:site-owner>
Thomas
</mydomain:site-owner>
</rdf:Description>
</rdf:RDF>
Ακολουθεί η
OWL και μετά οι
γλώσσες λογικής... Αυτά για το semantic web.
Θα έλεγα ότι στις γλώσσες 4ης γενιάς γράφεις κώδικα δηλωτικά, δηλαδή περιγράφεις αυτό που θέλεις και όχι πως θα γίνει.
Δεν ξέρω αν ισχύει αυτό. Για παράδειγμα η PL/SQL που είναι 4
ης γενιάς, δεν είναι διαδικαστική;
Γενικά πάντως οι 4GL γλώσσες ταυτίζονται με τις Domain-Specific δηλαδή αυτές που κατασκευάζονται για ένα συγκεκριμένο πεδίο εφαρμογών και δεν είναι γενικού σκοπού. όπως λέει και στο wiki
A fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software
Στο wiki αναφέρει και τα mathematica/matlab πολύ σωστά κατά τη γνώμη μου.
Συμφωνώ.
Σαν ένα πιο προσιτό παράδειγμα, θα μπορούσα να λέω ότι η Access είναι 4ης γενιάς ?
Δε νομίζω. Η Access δεν ορίζει κάποια νέα γλώσσα. Βασίζεται στην SQL απλά διαθέτει και ένα πιο φιλικό interface για να φτιάξεις ερωτήματα. Αντιθέτως η ORACLE υποστηρίζει την PL/SQL που επεκτείνει την SQL.
5
ης γενιάς πιστεύω είναι οι γλώσσες τεχνητής νοημοσύνης (π.χ. PROLOG) όπου κρύβουν την πολυπλοκότητα υλοποίησης, ακόμα και αναπαράστασης των δεδομένων και χρησιμοποιούν καθημερινές έννοιες όπως γεγονότα, κανόνες και συμπεράσματα. Είναι πιο κοντά στον τρόπο που σκέφτεται ο άνθρωπος.
Στη μεταπτυχιακή μου εργασία, σχετικά με ηλεκτρονικό εμπόριο χρησιμοποίησα μια γλώσσα που βασίζεται στην
Αναιρέσιμη Συλλογιστική (
Defeasible Logic) για να εκφράσω τις προτιμήσεις των αγοραστών για τα προϊόντα και τη στρατηγική τους κατά τη διαπραγμάτευση των προϊόντων με τους πωλητές. Και οι δύο αντιπροσωπεύονταν από ευφυείς πράκτορες οπότε ήθελα τεχνητή γλώσσα, αλλά πολύ υψηλού επιπέδου με πλούσια σημασιολογία και εκφραστικότητα.