Το Facebook TransCoder AI μετατρέπει κώδικα από μία γλώσσα προγραμματισμού σε άλλη
Ένας μετατροπέας κώδικα καθιστά δυνατή τη μετατροπή ενός πηγαίου κώδικα από μια γλώσσα προγραμματισμού υψηλού επιπέδου σε άλλη. Οι ερευνητές του Facebook έχουν αναπτύξει τον TransCoder AI. Πρόκειται για ένα σύστημα, το οποίο καθιστά δυνατή τη μετατροπή κώδικα μεταξύ γλωσσών προγραμματισμού, όπως οι Java, Python και C ++. Η μετεγκατάσταση μιας υπάρχουσας βάσης κώδικα σε μια πιο σύγχρονη ή αποτελεσματική γλώσσα απαιτεί τεράστιο αριθμό πόρων. Συγκεκριμένα, χρειάζονται τόσο οικονομικοί πόροι όσο και ανθρώπινο δυναμικό. Θεωρητικά, ένας μετατροπέας μπορεί να βοηθήσει στην εξάλειψη του κόστους που απαιτείται για την επανεγγραφή κώδικα από το μηδέν. Ωστόσο, πρόκειται για μια δύσκολη διαδικασία, δεδομένου ότι η γλώσσα προέλευσης και η γλώσσα στόχου έχουν διαφορετική σύνταξη, τύπους μεταβλητών, λειτουργίες τυπικής βιβλιοθήκης και API πλατφόρμας.
TransCoder AI: Μετατροπέας κώδικα για οποιαδήποτε γλώσσα προγραμματισμού
Ο TransCoder AI του Facebook μπορεί να τρέξει χωρίς επίβλεψη με ελάχιστο ανθρώπινο επίπεδο παρέμβασης για να βρει μη ανιχνευμένα μοτίβα σε σύνολα δεδομένων χωρίς ετικέτες και να ξεπεράσει τις βασικές αρχές βάσει κανόνων με ένα “σημαντικό” περιθώριο. Μπορεί να χαρτογραφήσει κομμάτια κώδικα που αντιπροσωπεύουν τις ίδιες οδηγίες σε πανομοιότυπα κομμάτια κώδικα, ανεξάρτητα από τη γλώσσα προγραμματισμού που χρησιμοποιείται. Το καλύτερο μέρος του Facebook TransCoder AI είναι ότι μπορεί να γενικευτεί εύκολα σε οποιαδήποτε γλώσσα προγραμματισμού και δεν απαιτεί καμία εξειδικευμένη γνώση για τη μετατροπή κωδικών από μία γλώσσα προγραμματισμού σε άλλη.
Ακρίβεια του TransCoder AI
Οι ερευνητές του Facebook εκπαίδευσαν τον TransCoder AI πάνω σε έναν δημόσια διαθέσιμο κώδικα σε περισσότερα από 2,8 εκατομμύρια αποθετήρια ανοιχτού κώδικα του GitHub, ώστε να επικεντρώνεται στη μετάφραση κώδικα σε επίπεδο λειτουργίας. Για να αξιολογήσουν την απόδοση του TransCoder AI, επέλεξαν 852 παράλληλες λειτουργίες στις γλώσσες προγραμματισμού C ++, Java και Python από το GeeksforGeeks – μια δημοφιλή πλατφόρμα που διδάσκει κωδικοποίηση μέσω προβλημάτων και προσφέρει λύσεις σε διάφορες γλώσσες προγραμματισμού. Χρησιμοποιώντας αυτά τα δεδομένα, οι ερευνητές ανέπτυξαν μια νέα μέτρηση με την ονομασία “υπολογιστική ακρίβεια”, η οποία ελέγχει εάν οι μεταφρασμένες συναρτήσεις δημιουργούν τις ίδιες εξόδους με τις ίδιες εισόδους, όπως στη γλώσσα πηγής.
Αποτελέσματα του TransCoder AI
Όσον αφορά το επίπεδο ακρίβειας στα αποτελέσματα που λαμβάνονται από τον TransCoder AI κατά τη μετατροπή κωδικών παρατηρούνται τα εξής:
Οι ερευνητές υποστηρίζουν πως ο TransCoder AI έχει “κατανοήσει” τη σύνταξη κάθε γλώσσας (Java, Python και C ++) μαζί με τις δομές δεδομένων τους. Κατάφερε ακόμη και να ευθυγραμμίσει σωστά τις βιβλιοθήκες σε κάθε γλώσσα, ενώ προσαρμόστηκε σε μικρές τροποποιήσεις, όπως η μετονομασία μιας μεταβλητής στην είσοδο.
Παρόλα αυτά, ο Transcoder AI δεν είναι τέλειος, δεδομένου ότι απέτυχε να λάβει υπόψη ορισμένους τύπους μεταβλητών κατά τη δημιουργία κώδικα. Ωστόσο, ξεπέρασε τα πλαίσια τού να ξανά “χτιστεί” ένας κώδικας από το μηδέν χειροκίνητα, με βάση τις γνώσεις εξειδικευμένου ανθρώπινου δυναμικού.
TransCoder AI: Μετατροπέας κώδικα για οποιαδήποτε γλώσσα προγραμματισμού
Ο TransCoder AI του Facebook μπορεί να τρέξει χωρίς επίβλεψη με ελάχιστο ανθρώπινο επίπεδο παρέμβασης για να βρει μη ανιχνευμένα μοτίβα σε σύνολα δεδομένων χωρίς ετικέτες και να ξεπεράσει τις βασικές αρχές βάσει κανόνων με ένα “σημαντικό” περιθώριο. Μπορεί να χαρτογραφήσει κομμάτια κώδικα που αντιπροσωπεύουν τις ίδιες οδηγίες σε πανομοιότυπα κομμάτια κώδικα, ανεξάρτητα από τη γλώσσα προγραμματισμού που χρησιμοποιείται. Το καλύτερο μέρος του Facebook TransCoder AI είναι ότι μπορεί να γενικευτεί εύκολα σε οποιαδήποτε γλώσσα προγραμματισμού και δεν απαιτεί καμία εξειδικευμένη γνώση για τη μετατροπή κωδικών από μία γλώσσα προγραμματισμού σε άλλη.
Ακρίβεια του TransCoder AI
Οι ερευνητές του Facebook εκπαίδευσαν τον TransCoder AI πάνω σε έναν δημόσια διαθέσιμο κώδικα σε περισσότερα από 2,8 εκατομμύρια αποθετήρια ανοιχτού κώδικα του GitHub, ώστε να επικεντρώνεται στη μετάφραση κώδικα σε επίπεδο λειτουργίας. Για να αξιολογήσουν την απόδοση του TransCoder AI, επέλεξαν 852 παράλληλες λειτουργίες στις γλώσσες προγραμματισμού C ++, Java και Python από το GeeksforGeeks – μια δημοφιλή πλατφόρμα που διδάσκει κωδικοποίηση μέσω προβλημάτων και προσφέρει λύσεις σε διάφορες γλώσσες προγραμματισμού. Χρησιμοποιώντας αυτά τα δεδομένα, οι ερευνητές ανέπτυξαν μια νέα μέτρηση με την ονομασία “υπολογιστική ακρίβεια”, η οποία ελέγχει εάν οι μεταφρασμένες συναρτήσεις δημιουργούν τις ίδιες εξόδους με τις ίδιες εισόδους, όπως στη γλώσσα πηγής.
Αποτελέσματα του TransCoder AI
Όσον αφορά το επίπεδο ακρίβειας στα αποτελέσματα που λαμβάνονται από τον TransCoder AI κατά τη μετατροπή κωδικών παρατηρούνται τα εξής:
- Από C ++ σε Python: 67,2%
- Από C++ σε Java:74,8%
- Από Java σε C ++: 91,6%
- Από Java σε Python: 68,7%
- Από Python σε Java: 56,1%
- Από Python σε C ++: 57,8%
Οι ερευνητές υποστηρίζουν πως ο TransCoder AI έχει “κατανοήσει” τη σύνταξη κάθε γλώσσας (Java, Python και C ++) μαζί με τις δομές δεδομένων τους. Κατάφερε ακόμη και να ευθυγραμμίσει σωστά τις βιβλιοθήκες σε κάθε γλώσσα, ενώ προσαρμόστηκε σε μικρές τροποποιήσεις, όπως η μετονομασία μιας μεταβλητής στην είσοδο.
Παρόλα αυτά, ο Transcoder AI δεν είναι τέλειος, δεδομένου ότι απέτυχε να λάβει υπόψη ορισμένους τύπους μεταβλητών κατά τη δημιουργία κώδικα. Ωστόσο, ξεπέρασε τα πλαίσια τού να ξανά “χτιστεί” ένας κώδικας από το μηδέν χειροκίνητα, με βάση τις γνώσεις εξειδικευμένου ανθρώπινου δυναμικού.
Δεν υπάρχουν σχόλια