Γλώσσες 4ης γενιάς

Ξεκίνησε από gthal, 05 Μαρ 2010, 10:49:02 ΠΜ

« προηγούμενο - επόμενο »

gthal

Χρειάζομαι βοήθεια.
Κάπου έχει ξαναπροκύψει το θέμα αλλά δεν βρήκα απαντήσεις.
Και κάθε φορά που έχω να μιλήσω για ανακατεύομαι   :-\
Γιατί το μόνο παράδειγμα που υπάρχει είτε στο βιβλίο είτε σε βοηθήματα είναι η SQL ;
Ε, βέβαια, η SQL. Το προφανέστερο παράδειγμα. Μια γλώσσα που δεν απευθύνεται μόνο σε προγραμματιστές. Την ξέρει ο κάθε χρήστης και για την πλάκα του πετάει και μια query σε μια database !!   :o
Τι να πω !  Υπάρχει κανένα άλλο παράδειγμα ;   (οι MARK-IV και MAPPER που αναφέρονται στο Wiki μου είναι εντελώς άγνωστες)
(μήπως οι HTML, XML είναι ; αν όχι, τι είναι αυτές ; )
Φιλικά,
Γιώργος Θαλασσινός

dpa2006

κοίταξε στη wikipedia,έχει ένα καλό άρθρο:
Fourth-generation programming language
η SQL ανήκει στις  Database query languages,υπάρχουν και άλλα παραδείγματα όπως η Matlab.
ελπίζω να βοηθήσει.
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

evry

ο gthal από ότι κατάλαβα το είδε το wiki και δεν του αρκεί αυτό. Θέλει κάποια σχετικά γνωστή γλώσσα για παράδειγμα.
  Ας πούμε η/το PowerBuilder είναι τέτοια γλώσσα. Όσοι έχουν τελειώσει το Πληροφορικής Πειραιά θα την έχουν κάνει. Δεν θυμάμαι γιατί στο τμήμα αυτό είχαν φάει κόλλημα με αυτό το σύστημα.
  Επίσης η PROLOG σίγουρα δεν είναι γλώσσα 3ης γενιάς ότι και να λέει το βιβλίο. Για την ακρίβεια θεωρείται  5ης !!!  Το ίδιο ισχύει και για τις Lisp, Haskell, ML, Scheme που δεν θα μπορούσες εύκολα να της χαρακτηρίσεις 3ης γενιάς αλλα ούτε και 4ης , είναι ένα κλικ παραπάνω.
   Θα έλεγα ότι στις γλώσσες 4ης γενιάς γράφεις κώδικα δηλωτικά, δηλαδή περιγράφεις αυτό που θέλεις και όχι πως θα γίνει. Αυτό το κάνει και η prolog φυσικά.
  Στην ίδια κατηγορία λογικά θα μπορούσαμε να βάλουμε και τα εργαλεία συγγραφής γλωσσών προγραμματισμού όπως Lex, yacc, Flex, Bison, ANTLR, coco, sablecc, javacc κλπ
    Γενικά πάντως οι 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

Δηλαδή η αχώνευτη UML θα μπορούσε να θεωρηθεί 4GL? Στο wiki αναφέρει και τα mathematica/matlab πολύ σωστά κατά τη γνώμη μου. Με το σκεπτικό αυτό και η OpenGL θα μπορούσε να θεωρηθεί γλώσσα 4ης γενιάς.  Το ίδιο και το LaTeX ή TeX. Το χρησιμοποιεί κανένας? Αυτό σίγουρα μπορεί να θεωρηθεί γλώσσα 4ης γενιάς.
   Οπότε με το σκεπτικό αυτό ένα πολύ καλό παράδειγμα θα μπορούσε να είναι η Visual Basic, τι λες, εδώ που τα λέμε δεν είναι ακριβώς γλώσσα προγραμματισμού 3ης γενιάς και την χρησιμοποιούν αρκετοί που δεν ξέρουν προγραμματισμό ( >:D) άρα θα μπορούσε να θεωρηθεί 4ης.

  Όπως και να έχει εγώ ακόμα περιμένω τις γλώσσες 5ης γενιάς. Άντε να δούμε, παραθέτω και ένα λινκ με τους υπολογιστές 5ης γενιάς για όσους θυμούνται το πρόγραμμα αυτό των ιαπώνων που έληξε άδοξα
http://en.wikipedia.org/wiki/Fifth_generation_computer
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gthal

Ευχαριστώ για τις απαντήσεις σας.
Πράγματι, είχα κοιτάξει στο wiki αλλά η αλήθεια είναι ότι δεν είχα δει αυτή τη μακριά λίστα γλωσσών !
Ίσως και να πανικοβλήθηκα περισσότερο... τόσο πολλές είναι? κι εγώ έχω δει μόνο SQL και MATLAB κάποια στιγμή και, άντε έχω ακουστά το Mathematica  :-\   Αυτά !

Ευριπίδη, η ανάπτυξη που κάνεις με βοηθάει να προσεγγίσω λίγο περισσότερο το θέμα. Σίγουρα καταλαβαίνω ότι είναι ένας πολύ σχετικός χαρακτηρισμός. Θα μπορούσαμε να πούμε ότι όλες οι Γλώσσες Οπτικού Προγραμματισμού είναι και 4ης γενιάς, αφού κι εκεί περιγράφεις τι θες να γίνει και δε χρειάζεται να ξέρεις το πώς... (καλά, δεν θα ακυρώσουμε το βιβλίο, αλλά μπορεί να το δούμε κι έτσι ?)

Σαν ένα πιο προσιτό παράδειγμα, θα μπορούσα να λέω ότι η Access είναι 4ης γενιάς ?

(ΥΓ  και σαν να έσπασε ο διάολος το ποδάρι του, χτες με ρώτησε μια μαθήτρια να εξηγήσω λέει την παράγραφο για τις 4GL γιατί δεν την καταλαβαίνει. -  Αυτάαααα. Τι άλλα ?  ::) )
Φιλικά,
Γιώργος Θαλασσινός

tom

Παράθεση από: gthal στις 05 Μαρ 2010, 10:49:02 ΠΜ
(μήπως οι 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.

Παράθεση από: evry στις 06 Μαρ 2010, 09:01:37 ΠΜ
Θα έλεγα ότι στις γλώσσες 4ης γενιάς γράφεις κώδικα δηλωτικά, δηλαδή περιγράφεις αυτό που θέλεις και όχι πως θα γίνει.

Δεν ξέρω αν ισχύει αυτό. Για παράδειγμα η PL/SQL που είναι 4ης γενιάς, δεν είναι διαδικαστική;

Παράθεση από: evry στις 06 Μαρ 2010, 09:01:37 ΠΜ
Γενικά πάντως οι 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 πολύ σωστά κατά τη γνώμη μου.
Συμφωνώ.

Παράθεση από: gthal στις 06 Μαρ 2010, 11:51:26 ΠΜ
Σαν ένα πιο προσιτό παράδειγμα, θα μπορούσα να λέω ότι η Access είναι 4ης γενιάς ?

Δε νομίζω. Η Access δεν ορίζει κάποια νέα γλώσσα. Βασίζεται στην SQL απλά διαθέτει και ένα πιο φιλικό interface για να φτιάξεις ερωτήματα. Αντιθέτως η ORACLE υποστηρίζει την  PL/SQL που επεκτείνει την SQL.

5ης γενιάς πιστεύω είναι οι γλώσσες τεχνητής νοημοσύνης (π.χ. PROLOG) όπου κρύβουν  την πολυπλοκότητα υλοποίησης, ακόμα και αναπαράστασης των δεδομένων και χρησιμοποιούν καθημερινές έννοιες όπως γεγονότα, κανόνες και συμπεράσματα. Είναι πιο κοντά στον τρόπο που σκέφτεται ο άνθρωπος.

Στη μεταπτυχιακή μου εργασία, σχετικά με ηλεκτρονικό εμπόριο χρησιμοποίησα μια γλώσσα που βασίζεται στην Αναιρέσιμη Συλλογιστική (Defeasible Logic) για να εκφράσω τις προτιμήσεις των αγοραστών για τα προϊόντα και τη στρατηγική τους κατά τη διαπραγμάτευση των προϊόντων με τους πωλητές. Και οι δύο αντιπροσωπεύονταν από ευφυείς πράκτορες οπότε ήθελα τεχνητή γλώσσα, αλλά πολύ υψηλού επιπέδου με πλούσια σημασιολογία και εκφραστικότητα.   
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

dpa2006

μια σύγκριση των γλωσσών προγραμματισμού μπορεί να βρεθεί και παρακάτω(αν δεν είναι ήδη γνωστό το λινκ)
Comparison of programming languages
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

gthal

Ευχαριστώ,
Υπερ-καλυμμένος !!  :)
Φιλικά,
Γιώργος Θαλασσινός

Καρκαμάνης Γεώργιος

Παράθεση από: gthal στις 05 Μαρ 2010, 10:49:02 ΠΜ
Χρειάζομαι βοήθεια.
Κάπου έχει ξαναπροκύψει το θέμα αλλά δεν βρήκα απαντήσεις.
Και κάθε φορά που έχω να μιλήσω για ανακατεύομαι   :-\
Γιατί το μόνο παράδειγμα που υπάρχει είτε στο βιβλίο είτε σε βοηθήματα είναι η SQL ;
Ε, βέβαια, η SQL. Το προφανέστερο παράδειγμα. Μια γλώσσα που δεν απευθύνεται μόνο σε προγραμματιστές. Την ξέρει ο κάθε χρήστης και για την πλάκα του πετάει και μια query σε μια database !!   :o
Τι να πω !  Υπάρχει κανένα άλλο παράδειγμα ;   (οι MARK-IV και MAPPER που αναφέρονται στο Wiki μου είναι εντελώς άγνωστες)
(μήπως οι HTML, XML είναι ; αν όχι, τι είναι αυτές ; )

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