Ερευνητές της Microsoft και του University of Cambridge ανέπτυξαν ένα σύστημα, ονόματι DeepCoder, το οποίο είναι σε θέση να γράφει τον δικό του κώδικα, ανοίγοντας ίσως τον δρόμο για συστήματα που θα μπορούν να δέχονται «παραγγελίες» για προγράμματα από ανθρώπους και στη συνέχεια να τα δημιουργούν για λογαριασμό τους.
Όπως αναφέρει το New Scientist, το DeepCoder ήταν σε θέση να λύσει βασικά προβλήματα που παρουσιάζονται σε διαγωνισμούς προγραμματισμού. Μακροπρόθεσμα, η προσέγγιση αυτή θα επέτρεπε σε άτομα χωρίς γνώσεις προγραμματισμού να περιγράφουν απλά μια ιδέα για ένα πρόγραμμα και το σύστημα να την υλοποιεί, όπως υποστηρίζει ο Μαρκ Μπρόκσμιντ, ένας από τους δημιουργούς του.
Το DeepCoder χρησιμοποιεί μια τεχνική που ονομάζεται «σύνθεση προγραμμάτων» (program synthesis): Πρόκειται για τη δημιουργία νέων προγραμμάτων με γραμμές κώδικα που «κλέβονται» από άλλα, υπάρχοντα λογισμικά. Παίρνοντας τις κατάλληλες πληροφορίες για το κάθε κομμάτι κώδικα, το DeepCoder έμαθε να αναγνωρίζει ποια κομμάτια κώδικα χρειάζονται για την επίτευξη του κάθε σκοπού. Ένα από τα πλεονεκτήματα σε αυτή την περίπτωση είναι ότι η τεχνητή νοημοσύνη μπορεί να ερευνά πιο εκτενώς και σε μεγαλύτερο εύρος από έναν άνθρωπο προγραμματιστή, δημιουργώντας πηγαίο κώδικα (source code) με τρόπο που ένας άνθρωπος μπορεί να μην σκεφτόταν.
DEEPCODER: LEARNING TO WRITE PROGRAMS
Το Deep Coder χρησιμοποιεί machine learning για να ψάχνει σε βάσεις δεδομένων με πηγαίο κώδικα και να πραγματοποιεί διαλογή ανάλογα με τη χρησιμότητα του κάθε κομματιού. Το σύστημα δημιουργεί λειτουργικά προγράμματα μέσα σε κλάσματα δευτερολέπτου, τη στιγμή που παλαιότερα αντίστοιχα συστήματα χρειάζονταν λεπτά για να δοκιμάσουν διαφορετικούς συνδυασμούς γραμμών κώδικα πριν καταλήξουν σε έναν που λειτουργούσε. Επίσης, το DeepCoder μαθαίνει από τους συνδυασμούς που δοκιμάζει, οπότε βελτιώνεται κάθε φορά που καταπιάνεται με ένα νέο πρόβλημα, βλέποντας ποιοι είναι οι συνδυασμοί που λειτουργούν και ποιοι όχι. Η τεχνολογία αυτή θα μπορούσε να έχει πολλές εφαρμογές, όπως προγράμματα που εντοπίζουν και διορθώνουν αυτόματα προβλήματα στον κώδικα (bugs) αντικαθιστώντας τις ελαττωματικές γραμμές με λειτουργικές από άλλα προγράμματα.
Βεβαίως, από ένα τέτοιο σύστημα προκύπτουν σαφώς ανησυχίες για τεχνητές νοημοσύνες που κάποια στιγμή μπορεί να έβγαιναν εκτός ελέγχου και να έφτιαχναν ανεξέλεγκτα προγράμματα για τους δικούς τους σκοπούς, δημιουργώντας σενάρια περί «επανάστασης των μηχανών». Ωστόσο, προς το παρόν δεν φαίνεται να υπάρχει τέτοια ανησυχία, καθώς αυτή τη στιγμή το DeepCoder μπορεί να λύνει μόνο απλά προγραμματιστικά προβλήματα, που περιλαμβάνουν γύρω στις πέντε γραμμές κώδικα- παρόλα αυτά, όπως σημειώνεται στο δημοσίευμα, με τη σωστή γλώσσα προγραμματισμού, λίγες γραμμές κώδικα αρκούν για τη δημιουργία αρκετά πολύπλοκων προγραμμάτων.