Κρασανάκης Εμμανουήλ
TRANSCRIPT
![Page 1: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/1.jpg)
Αυτόματη ΣυγγραφήΚώδικα με χρήσηΛογικής Δευτέρου
ΕπιπέδουΚρασανάκης ΕμμανουήλΕπιβλέπων: Συμεωνίδης Ανδρέας
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή
ΤμήμαΗλεκτρολόγωνΜηχανικών καιΜηχανικώνΥπολογιστών
Εργαστήριο Επεξεργασίας Πληροφοριών καιΥπολογισμών
![Page 2: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/2.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
2
Διάρθρωσηπαρουσίασης
1. Περιγραφή2. Ανάπτυξη θεωρίας3. Παρουσίαση αλγορίθμου4. Δημιουργία βάσης δεδομένων5. Μελλοντικές επεκτάσεις
![Page 3: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/3.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
3
1. Περιγραφή
![Page 4: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/4.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
4
Στόχος
Περιγραφή προβλήματος
Συσχέτιση με σχόλια κώδικα
Παραγωγή νέου κώδικα
Βάση δεδομένων σχολιασμένου κώδικα
![Page 5: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/5.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
5
Παράδειγμαfunction func
return a random positive number
…# get a random numbera = random( )…
…# make b positiveif(b<0):
b = -b;…
def func ( ):temp = random( )if(temp<0):
temp = -tempreturn temp
![Page 6: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/6.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
6
Ανάδραση
Περιγραφή προβλήματος
Συσχέτιση με σχόλια κώδικα
Εισαγωγή κώδικαστην περιγραφή
του προβλήματος
Βάση δεδομένων σχολιασμένου κώδικα
Επιλογή κώδικα ώστεμεγιστοποίηση μετρικής
![Page 7: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/7.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
8
ΣκοπόςΒιβλιογραφία:• Καλώς ορισμένη λογική χαμηλών επιπέδων• Υπάρχουν μόνο proof machines και μέθοδοι
algorithm verification
Κενά:• Δεν υπάρχουν μαθηματικά εργαλεία για λογική
υψηλότερου επιπέδου• Μαθηματική διαχείριση ισοδύναμου κώδικα
![Page 8: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/8.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
9
2. Ανάπτυξη θεωρίας
![Page 9: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/9.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
11
Λογική 2ου (Επιπέδου SOL)
Χαρακτηριστικά:• Μοντελοποιεί ανθρώπινο λόγο
(στη χείριστη περίπτωση ως συλλογή κατηγορημάτων)
• Turing-complete για κατάλληλες συναρτήσεις (θεωρώντας την εκχώρηση ως επιβεβαίωση-assertion)
Μπορεί δηλαδή να χρησιμοποιηθεί για συνδυασμό ανθρώπινου λόγου και κώδικα
![Page 10: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/10.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
13
ΠολυπλοκότηταΠοσοτικοποίηση πληροφορίας SOL έκφρασης
ΠολυπλοκότηταΠλήθος μη ισοτικών συμβόλων (με επανάληψη) που απαιτούνται για την αναπαράσταση μιας έκφρασης.
:Παράδειγμα
• ( ’ )το σύμβολο κατ εξαίρεση δεν υπολογίζεται
![Page 11: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/11.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
14
Ισοτιμία• Διπλή συνεπαγωγή για λογική σύγκριση
(π.χ. )
• Σύγκριση εκφράσεων από προγραμματιστική άποψη:
Ισοτιμία σημαίνει ότι για ισότιμες δεσμευμένες μεταβλητές (δηλ. που υπόκεινται σε ) έχουμε ισότιμες ελεύθερες μεταβλητές.
![Page 12: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/12.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
16
Ισότιμες μεταβλητές• Όχι ακριβής ορισμός
(π.χ. μπορεί να εξαρτάται από το αν η επιστροφή μεταβλητής αντιστοιχίζεται σε ή αν απλά οι ελεύθερες μεταβλητές επιστρέφονται)
• Απαραίτητες ιδιότητες ισοτιμίας μεταβλητών:
( oι ελεύθερες, οι δεσμευμένες και όλες οι μεταβλητές)
![Page 13: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/13.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
17
ΛογικάΜοντέλαΜοντέλα: Σύνολα εκφράσεων• Παράθεση:
Υπομοντέλα: τμήματα αυτοτελούς λογικής(αλγόριθμος μεγίστων συνδεδεμένων υπογράφων στο γράφο μεταβλητών)
![Page 14: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/14.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
19
ΑλγεβροποίησηΣύνδεση ισοτιμίας με διπλή συνεπαγωγή:
ΟρθόAν τότε ώστε
ΑντίστροφοΑν τότε ώστε
![Page 15: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/15.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
20
ΜετασχηματισμοίΟμογενοποίησηΑφαιρεί εμφώλευση από εκφράσεις SOL μοντέλου(π.χ. γίνεται )
Ανεξαρτητοποίηση (independent)Μετονομάζει μεταβλητές ώστε να είναι μοναδικές για κάθε μοντέλο(π.χ. μεταβλητή σε μοντέλο γίνεται ενώ σε μοντέλο γίνεται )
Ισότιμη αφαίρεση δίνει τα στοιχεία του εκτός από αυτά που είναι ισότιμα με κάποιο στοιχείο του
![Page 16: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/16.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
21
Εκτέλεση υποθέσεων• Γενίκευση ορθής αλγεβροποίησης • Δημιουργία λογικών συσχετισμών• Συνδέει τις πράξεις
Εκτέλεση υποθέσεωνΓια τυχαία μοντέλα ώστε
![Page 17: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/17.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
22
3. Παρουσίαση αλγορίθμου
![Page 18: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/18.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
23
Ορισμός
σχόλια και κώδικας
Περιγραφή
![Page 19: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/19.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
24
ΟρισμόςΕπιλογή ακολουθίας ώστε η ακολουθία
με ( περιέχει μόνο ισότητες και ποσοδείκτες)
να έχει
![Page 20: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/20.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
25
ΒελτιστοποίησηΠοσότητα προς βελτιστοποίηση:
όπου το τετριμμένο μοντέλο
Αυτό σημαίνει:
όπου • εκφράσεις του υλοποιημένου κώδικα • εκχωρήσεις • ποσοδείκτες ( έξοδοι, είσοδοι)
![Page 21: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/21.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
26
ΒελτιστοποίησηΕφαρμογή άπληστης μεθόδου στη μέση περίπτωση:
για σταθερά (εξαρτάται αλλά δεν ισούται με ),
• αν και δεν περιέχουν κοινές εκφράσεις, τότε ολικό ελάχιστο σε πεπερασμένο αριθμό βημάτων
• αν εφαρμοστεί ομογενοποίηση στα και το ολικό ελάχιστο έχει τη μικρότερη δυνατή τιμή
![Page 22: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/22.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
27
Υλοποίηση ΙσοτιμίαςΠαραδοχές για ισότιμες εκφράσεις:• Ίδιο πλήθος μεταβλητών• Ίδιο νόημα
– Σχόλια: μεγάλη λεξικογραφική ομοιότητα– Κώδικας: ταυτόσημη έκφραση αν αντικατασταθούν οι μεταβλητές με την
τρέχουσα διάταξή τους
![Page 23: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/23.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
29
4. Δημιουργία βάσης δεδομένων
![Page 24: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/24.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
30
Εισαγωγήαπό βιβλιοθήκες Python
Απλοϊκή αντιμετώπιση:1. Εντοπισμός συναρτήσεων2. Σχόλια , κώδικας
Προβλήματα:• Κατηγορήματα που έχουν αντίστροφο νόημα
(π.χ. table A sorts table B, table B is sorted by A)
• Ελλιπής διατύπωση σχολίων (μπορεί να εννοούνται οι μεταβλητές, π.χ. get random value)
• Εκφράσεις επιστροφής που δεν επιστρέφουν απευθείας μεταβλητές(π.χ. return a+b)
![Page 25: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/25.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
31
Εισαγωγήαπό βιβλιοθήκες Python
Αντιμετώπιση προβλημάτων:• Αντιστροφή δεξιού και αριστερού μέρους για
συγκεκριμένα κατηγορήματα(π.χ. B by A Α Β)
• Προσθήκη όλων των εισόδων και των εξόδων σε σχόλια χωρίς μεταβλητές
• Ομογενοποίηση της έκφρασης επιστροφής (δηλ. επιπλέον μεταβλητές για εξόδους που δεν είναι μεταβλητές)
![Page 26: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/26.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
32
5. Μελλοντικές Επεκτάσεις
![Page 27: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/27.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
33
Επεκτάσειςβελτιστοποίησης
• Order-dependent κώδικας• Χρήση μεθόδων Service Composition• Χρήση τύπου και ονόματος μεταβλητών
(για κατάλληλες γλώσσες προγραμματισμού)
![Page 28: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/28.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
34
Επεκτάσειςβιβλιοθηκών
• Εισαγωγή αντικειμενοστραφή κώδικα• Καλύτερος μετασχηματισμός δεδομένων
(γενικότερα: ‘εξυπνότερος’ εντοπισμός ισότιμων εκφράσεων)
• Δέντρο φυσικής γλώσσας για καλύτερο υπολογισμό πολυπλοκότητας
![Page 29: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/29.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
35
Επίδειξη
![Page 30: Κρασανάκης Εμμανουήλ](https://reader035.vdocuments.mx/reader035/viewer/2022062218/58e4a4dd1a28aba3458b69cb/html5/thumbnails/30.jpg)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
36
?Ερωτήσεις