CodeNet, ένα έργο IBM για συστήματα μηχανικής μάθησης 

Λογότυπο της IBM

Η IBM αποκάλυψε πρόσφατα το νέο του έργο ονομάζεται "CodeNet" το οποίο στοχεύει να παρέχει στους ερευνητές ένα σύνολο δεδομένων για να πειραματιστούν με τη χρήση τεχνικών μηχανικής μάθησης για τη δημιουργία μεταφραστών από τη μια γλώσσα προγραμματισμού στην άλλη, καθώς και γεννήτριες κώδικα και αναλυτές.

Το CodeNet περιλαμβάνει μια συλλογή από 14 εκατομμύρια παραδείγματα κώδικα. που λύνουν 4053 κοινά προβλήματα προγραμματισμού. Συνολικά, η συλλογή περιέχει περίπου μισό δισεκατομμύριο γραμμές κώδικα και καλύπτει 500 γλώσσες προγραμματισμού, τόσο σύγχρονες γλώσσες όπως C++, Java, Python και Go, όσο και γλώσσες παλαιού τύπου, συμπεριλαμβανομένων των COBOL, Pascal και FORTRAN.

«Το λογισμικό κατατρώει τον κόσμο», έγραψε ο διάσημος Αμερικανός επιχειρηματίας Marc Andreessen το 2011. Γρήγορα στο σήμερα: Το λογισμικό βρίσκεται σε χρηματοοικονομικές υπηρεσίες και υγειονομική περίθαλψη, smartphone και έξυπνα σπίτια. Ακόμη και τα αυτοκίνητα έχουν πλέον πάνω από 100 εκατομμύρια γραμμές κώδικα.

Οι εξελίξεις του έργου διανέμονται υπό την άδεια Apache 2.0 και τα σύνολα δεδομένων αναμένεται να διανεμηθούν στο δημόσιο τομέα.

Τα παραδείγματα σχολιάζονται και εφαρμόζουν πανομοιότυπους αλγόριθμους σε διαφορετικές γλώσσες προγραμματισμού.. Η προτεινόμενη σουίτα υποτίθεται ότι θα βοηθήσει στην εκπαίδευση συστημάτων μηχανικής μάθησης και στην ανάπτυξη καινοτομιών στον τομέα της αυτόματης μετάφρασης και ανάλυσης κώδικα, κατ' αναλογία με τον τρόπο με τον οποίο η βάση δεδομένων ImageNet με σχολιασμένες εικόνες βοήθησε στην ανάπτυξη της αναγνώρισης εικόνων και της τεχνητής όρασης. Διάφοροι διαγωνισμοί προγραμματισμού αναφέρονται ως μία από τις κύριες πηγές σχηματισμού συλλογής.

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

Σε αντίθεση με τους παραδοσιακούς μεταφραστές που βασίζονται σε κανόνες μετάφρασης, Τα συστήματα μηχανικής εκμάθησης μπορούν να συλλάβουν και να λάβουν υπόψη το πλαίσιο της χρήσης κώδικα. Κατά τη μετατροπή από μια γλώσσα προγραμματισμού σε άλλη, το πλαίσιο είναι εξίσου σημαντικό με τη μετάφραση από μια ανθρώπινη γλώσσα σε μια άλλη. Είναι η έλλειψη συνείδησης που εμποδίζει τη μετατροπή κώδικα από γλώσσες παλαιού τύπου όπως η COBOL.

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

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

Συμπεριλαμβάνοντας το σύστημα μπορείτε να εκτελέσετε αμφίδρομους μετασχηματισμούς. Για παράδειγμα, οι τράπεζες και οι κρατικοί φορείς συνεχίζουν να χρησιμοποιούν έργα COBOL παλαιού τύπου. Ένας μεταφραστής μηχανικής εκμάθησης μπορεί να μετατρέψει τον κώδικα COBOL στην αναπαράσταση Java και προαιρετικά να μεταφράσει ένα απόσπασμα Java σε κώδικα COBOL.

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

Συγκεκριμένα Τα παραδείγματα που παρουσιάζονται στο CodeNet παρέχονται με μεταδεδομένα που περιγράφουν τα αποτελέσματα των δοκιμών απόδοσης, το μέγεθος του προκύπτοντος προγράμματος, η κατανάλωση μνήμης και η κατάσταση που επιτρέπει τη διάκριση του σωστού κωδικού από τον κωδικό σφάλματος (για να διακριθεί ο σωστός κωδικός από τον λανθασμένο κωδικό, παραδείγματα με σφάλματα περιλαμβάνονται ειδικά στη συλλογή, το κοινόχρηστο στοιχείο εκ των οποίων είναι 29,5, XNUMX%).

Ένα σύστημα μηχανικής μάθησης μπορεί να λάβει υπόψη αυτά τα μεταδεδομένα για να δημιουργήσει τον βέλτιστο κώδικα ή να ανιχνεύσει παλινδρομήσεις στον αναλυόμενο κώδικα (το σύστημα μπορεί να κατανοήσει ότι ο αλγόριθμος δεν εφαρμόζεται βέλτιστα στον μεταδιδόμενο κώδικα ή περιέχει σφάλματα).

Τελικά Εάν ενδιαφέρεστε να μάθετε περισσότερα για το CodeNet, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.