MİT sistemi (diğer yazılımlarla borçlanmayla) kendi yazılım hataları düzeltebilirsiniz

Yeni yazılım özerk kaynak koduna erişim gerektirmeden, farklı programlama dilleri diğer programlardan ve karşısında borçlanma ile yazılım hataları onarmak mümkün kanıtlamaktadır MIT'de geliştirilen. Bu çok daha istikrarlı bir yazılım programlama zaman ve kurşun saatlik geliştiricileri binlerce kurtarabilir. Bugs yazılım geliştiricinin hayatının felaketidir. bunları düzeltmek için yapılması gereken değişiklikler, genellikle kod sadece birkaç satır değişen kapsayan genellikle önemsiz, ama hatlar düzeltilmesi gereken tam belirlenme süreci, özellikle de çok zaman alıcı ve genellikle çok sinir bozucu bir süreç olabilir Büyük projeler.

Ama şimdi, MIT yeni yazılım bu dikkat ve daha fazla sürebilir. CodePhage lakaplı sistem, değişken kontroller ile yapmak zorunda hataları düzeltmek ve yakında hataların daha birçok çeşit düzeltmek için genişletilebilir. Dikkate değer, MİT araştırmacı Stelios Sidiroglou-Douskos göre, yazılım dinamik kod çeviri ve nakli bu tür yapabilirim (dan "yatay kod nakli" lakaplı benzer süreç kaynak koduna gerek erişimi olmayan ve farklı programlama dilleri arasında genetik olarak) doğrudan yürütülebilir dosyayı analiz ederek.

Örneğin, diyelim ki ikinci bölü ilk sayıyı girişi iki sayıdan için kullanıcıya sorar ve çıkışları basit bir bilgisayar programı yazdım diyelim. En de kodunuzda, ikinci sayı olmadığını kontrol unuttum diyelim sıfır değil (sıfıra bölme matematiksel tanımsız). CodePhage bir (dinlenmişti) uygulama ve iki giriş ile başlar - hiçbir hata tetikleyen bir ("güvenli giriş") ve does biri ("güvensiz girdi"). Uygulamalar büyük bir veritabanı kullanarak, okumak ve doğru her iki girdileri işleyebilir bir bulur. Bizim durumumuzda, sistem için büyük bir depo aramak istiyorsunuz fonksiyonu güvenle iki numara bölebilirsiniz. "Biz açık kaynak depolarda mevcut kaynak kodu ton, projelerin milyonlarca var ve bu projelerin bir sürü benzer özelliklere uygulamak," Sidiroglou-Douskos diyor. "Bu programın temel işlevi olmayabilir olsa da, onlar sık ​​sık projelerin çok sayıda genelinde işlevsellik paylaşımı alt bileşenleri var." Düzeltme ödünç edilecek olan yazılımları - - ve bir "alıcı" programı - MIT sistemi düzeltmek için çalışacaktır böcek basmış kod sistemi "donör" programı birbirinden ayırır.

İlk adım donör koduna "güvenli" girişi beslemek ve dinamik kısıtları giriş değişkenleri empoze edildiği takip etmektir. Ardından, yazılım, ikinci, "Güvenli olmayan" girişi ile aynı işi yapar ve kısıtlamalar iki takım karşılaştırır. Bu ikisi arasındaki farklılık noktaları değil, güvensiz biri tarafından güvenli giriş tarafından karşılandı bir kısıtlama belirlemek ve böylece alıcı koddan eksik bir güvenlik denetimi olması muhtemeldir. Bizim örneğimizde, güvenli giriş sıfır olmayan herhangi bir sayı olmak bölen olacak ve güvensiz giriş bölen sıfır olması olurdu. MİT sistemi bu özel durum için onay alıcı kodu eksik ve muhtemel nedeni olduğunu tanımlayan durum "bölen sıfırdan farklı olmalı" doğru, güvensiz biri tarafından güvenli giriş ile bir araya geldi, ama olmadığını tespit ediyorum hata. Bu noktada, CodePhage donör yazılımı giriş kontrolleri tüm tutarsızlıkları alacak ve alıcı yazılım programlama diline çevirir. Sistem daha sonra güvensiz giriş doğru olarak işlendi (ve program hala bir karşı kontrol beklendiği gibi davranır kadar kodun farklı yerlerinde alıcının programın kaynak koduna yeni kontroller eklemek için çalışacağız test paketi ).

"Uzun vadeli vizyon Eğer başkası daha önce yazmış olduğu bir kod parçası yazmak zorunda asla ise," Çalışmanın bir parçası olarak MİT profesör Martin Rinard diyor. "Sistem kod parçası bulur ve otomatik olarak programın çalışmasını yapmak gerekir kod ne olursa olsun parçaları ile birlikte koyar."

Rinard ve takım bir geliştirici, örneğin, yasadışı girişler için çek atlayarak geliştirme ve test çaba azaltmak ve daha sonra otomatik olarak kapanır kaynak, özel uygulamalar da dahil olmak üzere daha sağlam bir yazılım, gelen çekleri aktarmak için kendi aracını kullanabilirsiniz söylüyorlar.

Programlama zamanında üzerindeki etkisi, en azından teoride, oldukça önemli olabilir bu yüzden - Araştırmacılara göre, modern ticari yazılımı, güvenlik kontrolleri kod yüzde 80 kadar sürebilir. Sistem şu anda değişken kontrolleri analiz sınırlı iken Dahası, araştırmacılar sisteminin doğru değişkenlere atanan değerleri belirlemek mümkün olduğu gibi, aynı teknikler de sürece, izlemek ayıklamak ve herhangi bir hesaplama eklemek için tasarlanmış söylüyorlar Donör yazılımı.

MİT sistemi de denemek ve yeni böcek koymaktan yeni yayımlanan yazılım yamaları ve güncellemeleri önlemek için, aynı uygulamanın farklı sürümleri arasında çekleri aktarmak için kullanılabilir.