Bugünlerde hepimiz bir şekilde programlama kelimesini duyduk ve belki de bazılarımız programlama öğrenmek istiyor veya öğreniyor. Tabii ki programlamada birçok platformda geleceğin meslekleri için ihtiyaç duyulan becerilerde yer alıyor ve yazılım mühendisliği de bugünlerde çok popüler mesleklerden biri oldu. Programlama da çok vakit alan bir uğraş olduğu için ve her alana bir şekilde nüfuz ettiği için bu işi nasıl daha üretken yapabiliriz sorusu da önem kazanmaya başladı. Tabii ki burada program yazan insanların yaptığı hataları veritabanlarındaki(information scraping yöntemiyle elde edilen) kodlarla karşılaştırarak gerçek zamanlı kod düzeltmesi yapan DeepCode gibi girişimler ortaya çıktı. Bu programda farklı insanların yaptığı hatal ara nasıl çözüm bulunduğunu görebiliyorsunuz aynı zamanda kendi kodunuzu da iyileştirmiş oluyorsunuz.

Asıl soru kendi kendine program yazabilen programlar(ya da makineler) var mı ya da var olabilir mi? Bu sorunun cevabını bilim adamları ve mühendisler çok uzun süredir arıyor ve bu konuda çalışmalar yapılan alanın adı ise Makine Programlaması(Machine Programming). Makine Programlaması da Justin Gottschlich’e (Intel’de Makine Programlaması Araştırma Lab’ının yöneticisi) göre makine öğrenmesi kullanıyor ve diğer otomasyon metodlarını kullanarak kendi programını oluşturabilen programlar oluşturuyor. 2018’de yayınlanan bir makalede Intel ve MIT’den araştırmacılar makine programlamasının amacını insan yazılımcıların üzerinden doğru ve verimli kod yazma yükünü kaldırmak ve bunun yerine bu yükü makinelere bırakmak olarak yazıyor. Böylece insanların üretmek istedikleri yazılım insan dilinde açıklayarak bir makine onu programlayabileceği bir gelecek umuluyor. Şu anda yeni makine öğrenmesi algoritmaları, yeni ve gelişmiş donanımlarla ve çok büyük kod verileriyle(Github veya Stackoverflow gibi sitelerdeki veriler örneğin) bu alanda bir devrim yaşanıyor, diyor Justin Gottschlich.

Makine Programlaması’yla alakalı çalışmalardan bazıları Facebook’un Aroma adlı kısa programları tamamlayabilen sistemi, DeepMind’ın geliştirdiği insanların oluşturduğu basit algoritmaların daha verimli olanlarını oluşturabilen sinir ağı. Bu çalışmalardan en çok gelecek vaat edenlerden biri MIT, Intel ve Georgia Institute of Technology’den araştırmacıların geliştirdiği Machine Inferred Code Similarity(MISIM) denilen bir kodun anlamını – bilgisayara ne yaptırdığını – çözebilen bir sistem(Bu sistem doğal dili çözebilen NLP(Natural Language Processing) algoritmalarına benziyor).

MISIM bir kodun başka şekillerde nasıl yazılabileceğini de öneriyor ve kodun daha verimli ve doğru olmasını sağlıyor. Bu yaklaşımda programlayabilen programların oluşturulmasında kullanılabilecek bir metod. MISIM önce bir programın ne yaptığını nasıl yazıldığına bakmaksızın anlamaya çalışıyor(çünkü aynı işlevi gören kodlar farklı şekilde yazılabiliyor.) ve bundan sonra sinir ağlarını(neural networks) kullanarak benzer anlamlara sahip kodları buluyor ve bu sistemin önceki sistemlerden 40 kat daha efektif olduğu söyleniyor(Aroma dahil).

Sonuç olarak Gottschlich MISIM’ın NLP(Natural Language Processing – Doğal Dil İşleme) algoritmaları ile beraber kullanılarak insanların tarif ettikleri yazılımı kolayca elde etmesine olanacak sağlayacağını söylüyor ve bunların yakın bir gelecekte yaşanacağını ekliyor.

Kaynakça

https://www.technologyreview.com/2020/07/29/1005768/neural-network-similarities-between-programs-help-computers-code-themselves-ai-intel/

https://singularityhub.com/2020/08/02/this-ai-could-bring-us-computers-that-can-write-software/

https://newsroom.intel.com/news/why-more-software-development-needs-go-machines/#gs.br0o9k

Leave a Reply