Sızdıran Noktalı Virgül
Author
Venue
ACM Programlama Dilleri Bildirileri 2021
Abstract
Program mantığı ve semantiği, sıralı bileşim hakkında hoş bir hikaye anlatır: (S1; S2) komutunu yürütürken, önce S1'i, ardından S2'yi yürütürüz. Ancak performansı artırmak için işlemciler komutları sırasız olarak yürütür ve derleyiciler programları çok daha dramatik bir şekilde yeniden sıralar. Tasarım gereği, tek iş parçacıklı sistemler bu yeniden sıralamaları gözlemleyemez; ancak çoklu iş parçacıklı sistemler bunu yapabilir, bu da hikayeyi oldukça daha az hoş hale getirir. Ortaya çıkan karmaşayı anlamaya yönelik resmi bir girişim, "gevşek bellek modeli" olarak bilinir. Önceki modeller ya sıralı bileşimi doğrudan ele almakta başarısız olur, ya da işlemcileri ve derleyicileri aşırı derecede kısıtlar, ya da pratikte gözlemlenemeyen anlamsız, hayali davranışlara izin verir. Modern donanımı hedeflerken sıralı bileşimi desteklemek için, standart olay tabanlı yaklaşımı önkoşullar ve yüklem dönüştürücü aileleriyle zenginleştiriyoruz. (S1;S2) ifadesinin anlamını hesaplarken, S2'den gelen bir olay e'nin önkoşuluna uygulanan yüklem dönüştürücü, e'nin bağlı olduğu S1'deki olaylar kümesine göre seçilir. Bu yaklaşımı mevcut iki bellek modeline uyguluyoruz.
