Προς το περιεχόμενο

Εργασία πανεπιστημίου πάνω σε yacc και lex


PANAGIOTHS_TSR

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Η άσκηση είναι σχετικά απλή. Δεν πρέπει να σε παιδέψει πολύ αν έχεις κατανοήσει σε βασικό επίπεδο τις έννοιες της λεκτικής και συντακτικής ανάλυσης. 

Πρέπει πρώτα να φτιάξεις έναν λεκτικό αναλυτή (χρησιμοποιώντας το flex) ο οποίος μέσω κανονικών εκφράσεων (regular expressions) θα χωρίζει την είσοδό του σε λεκτικές μονάδες (tokens) που είναι αποδεκτά από τη περιγραφή της γλώσσας που υλοποιείς. Αυτά τα tokens θα αποτελούν είσοδο στον συντακτικό αναλυτή (τον φτιάχνεις με bison/yacc) ο οποίος χρησιμοποιώντας γραμματικές χωρίς συμφραζόμενα (context-free grammars) θα πρέπει να αποφασίζει αν η σειρά με την οποία έρχονται είναι σύμφωνη με κάποιον από τους κανόνες της γραμματικής σου.

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

Για παραπάνω πληροφορίες προτείνω:
https://courses.softlab.ntua.gr/compilers/2021a/ - Τα μαθήματα του Παπασπύρου από το ΕΜΠ του μαθήματος Μεταγλωττιστές. Έχει ανεβασμένα τα πάντα, από σημειώσεις μέχρι βιντεο-διαλέξεις. Είναι πολύ πιο σύνθετο μάθημα απ' αυτό που ζητά η εκφώνηση σου. Αρκεί να δεις μέχρι τα πρώτα φροντιστήρια Flex, Bison.

Για θεωρητικό υπόβαθρο στις Τυπικές Γλώσσες το σύγγραμμα του Sipser. Αν και δεν χρειάζεται να εμβαθύνεις πολύ.
Μια απλη κατανόηση της ιεραρχίας τυπικών γλωσσών και συγκεκριμένα της σχέσης ανάμεσα σε κανονικές γλωσσες, πεπερασμένα αυτόματα, κανονικές εκφράσεις και τις γραμματικές χωρίς συμφραζόμενα αρκούν. Υπάρχουν πολλά βίντεο στο yt (στα ελληνικά δες τον Ψούνη).

tl;dr: αν δεις τα βιντεάκια του Παπασπύρου και ιδιαίτερα τα πρώτα φροντιστήρια σε flex/bison πολύ εύκολα θα λύσεις την άσκηση.

Επεξ/σία από hypercube
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

16 λεπτά πριν, PANAGIOTHS_TSR είπε

Ναι . Μπορείτε να βοηθήσετε σας παρακαλώ ; 

Γιατί δεν ρωτάς την Γεωργούλη ή τον Βουλόδημο (υποθέτω ότι αυτοί το έχουν το μάθημα ακόμα) για βοήθεια; Επίσης, στον Discord server σίγουρα κάποιος θα σε βοηθήσει αλλά όχι να σου κάνει και όλη την άσκηση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

On 12/1/2022 at 4:04 ΜΜ, MrRush said:

Γιατί δεν ρωτάς την Γεωργούλη ή τον Βουλόδημο (υποθέτω ότι αυτοί το έχουν το μάθημα ακόμα) για βοήθεια; Επίσης, στον Discord server σίγουρα κάποιος θα σε βοηθήσει αλλά όχι να σου κάνει και όλη την άσκηση.

Μπορείς να μου δώσεις λινκ για τον σέρβερ ;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

11 hours ago, PANAGIOTHS_TSR said:

Μπορείς να μου δώσεις λινκ για τον σέρβερ ;

https://iceuniwa.github.io/page3.html

Εδώ είναι το invite του server μαζί με άλλες χρήσιμες πληροφορίες

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...