YEREL OPTİMİZASYONLAR – ALGOL Yazılım Dili – ALGOL Analizi Yaptırma Fiyatları – ALGOL Yazılım Analizi Örnekleri – Ücretli ALGOL Analizi Yaptırma – ALGOL Yazılımı Yaptırma
ERİŞİMLERİN GEÇERLİLİĞİ
Kaydedilmiş bir değere erişimin geçerliliği aşağıdaki prensibe dayanmaktadır: saklanan bir değer, bu saklanan değerin üzerine yazılmadığı sürece bir eylemin sonucu olarak kullanılabilir.
Depolanan değerlerin kaybedilebileceği üç çalışma zamanı eylemi vardır:
- Bir bloğun sonu,
- Toplayıcının çağrısı,
- Atama
Bir bloki bırakıldığında, karşılık gelen IDST%i, LGST%i ve WOST%i kaybolur; bu bloğun sonucuna geçerli bir erişimi sürdürmek için hangi çalışma zamanı eyleminin yapılması gerektiğini belirleyen blok değerinin kaynağının incelenmesidir.
Kindo ide____nn,va___rror ~en ise ve bno, bloğun !eft~ olan derinlik sayısından bn küçükse, kapsam kurallarının (T) uygulandığı varsayılarak, erişim geçerliliğini korur. Açıkça, erişim sınıfı dirwost, indwost veya diznoost’ olduğunda, kalan bloğun sonucunun çağıran bloğa iletildiği ve erişimin belirtim alanının buna göre değiştirilmesi gereken bir çalışma zamanı eylemi ima edilir.
Yukarıdaki koşullar yerine getirilmezse, tüm değer çağıran bloğun WOST%’una kopyalanmalıdır, bu da dirwost sınıfının erişimine yol açar.
Not. Yukarıda söylenenler, sonucun genellikle çağıran bloğa kopyalandığı bir prosedüre karşılık gelen bir blok için geçerli değildir ve bu, çağrı ile prosedürün kendisi arasındaki statik bağlantıyı sağlamak içindir.
Öte yandan, prosedür yönelimli uygulamalarda, prosedür dışı blok dönüşlerinde, SWOST% üzerinde saklanan sonuçların statik bölümlerinin kopyalanmasından kaçınılır.
Çöp toplama, erişilebilir tüm değerler hakkında çalışma zamanı bilgileri ile sağlanmalıdır. 1.2.4.3’te açıklandığı gibi, bu çalışma zamanı bilgilerinin güncellenmesi, geçerlilik sorununu çözen erişim mekanizmasının kendisine dayanmaktadır.
Bir atamanın etkisi, şu ana kadar açıklanan erişim yönetimine göre gelecekteki bir eylemin parametresi olarak kullanılabilen saklanan bir değerin üzerine yazılmasıdır. Böyle bir durum, yalnızca yan etkilere izin verilen eylemler için ortaya çıkabilir, bu da kendisini ALGOL 68 [I]’de bir detaylandırma sırasının ima edildiği ~%” üç duruma getirir:
– bir aramanın birincilinin gerçek parametrelerden önce detaylandırılması gerekir.
– bir uygunluk ilişkisinin sağ kısmı, sol kısmından önce detaylandırılmalıdır, eğer bu sol kısım hiç detaylandırılmamışsa,
– rutin bir ifadenin iki resmi parametresi arasında görünen bir noktalı virgül, karşılık gelen gerçek parametrelerin detaylandırılmasında bir sıra anlamına gelir.
Sorun, çağrının birincil değerinin, uygunluk ilişkisinin sağ kısmının ve yukarıdaki koşulları sağlayan gerçek parametrelerin değerinin sistematik olarak kopyalanmasıyla çözülebilir. Açıktır ki, bu tür değerlerin derefo’su sıfır olduğunda, yani kaynaklarından bu yana herhangi bir başvuru iptali gerçekleşmediğinde, bu değerlerin üzerine bir atama asla yazılamaz ve kopyaya gerek yoktur.
YEREL OPTİMİZASYONLAR
Bir bilgisayar, her biri kendi özelliklerine sahip belirli sayıda kayda sahiptir; Kayıtların optimum kullanımı, statik erişim yönetimi sırasında bunların dikkate alınması anlamına gelir. Örneğin; anlamı açık olan, dirre~ister ve ınc~ister gibi ek erişim sınıflarına sahip olmak mümkün olabilir.
Bu tür erişimlerin statik yönetimi, mevcut kullanımlarını yansıtan bir kayıt bilgileri listesinin güncellenmesini varsayar. Bundan yola çıkarak, çevrilmekte olan her eylem için kayıtların kullanımında en uygun stratejiyi seçebiliriz.
Burada açıklanan planın politikası, ya kayıtların varlığını göz ardı ederek ya da sistemi parametrize ederek elde edilebilen makine bağımsızlığını gerektirir. oluşturulan nesne programlarının verimliliğinde bir azalma. Bu ancak ödenecek bedel çok ağır olmadığı sürece kabul edilebilir; bu amaçla basit bir yerel optimizasyon sistemi kullanılır.
Bu sistemin prensibi, esasen, aynı kayıt ve aynı adres parçasına sahip ardışık depolama ve yükleme komut çiftlerinin bastırılmasından oluşur.
Açıkçası, bu yalnızca yüklenecek ve depolanacak değer yalnızca bir kez kullanıldığında geçerlidir; bu, WOST%’de depolanan ara sonuçlar için geçerlidir, yani komutların bir {@OST$adres bölümü olduğunda. Aşağıdaki örneklerde, STA w, LDA w dizisi yerel optimizasyon tarafından iptal edilmiştir.
Optimizasyon ne Demek
Optimizasyon yöntemleri
Optimizasyon dersi
Sürekli optimizasyon
Optimizasyon iktisat
Optimizasyon TDK
Optimizasyon matematik
Optimizasyon türleri
WOSY olmayan bir adres olan STA y, LDA y ile benzer bir dizi göründüğünde, çiftin sadece ikinci talimatı iptal edilebilir. Yukarıdaki örnekte ödenmesi gereken tek bedel, gerçekte hiçbir zaman rnm zamanında kullanılmayacak olan W ve wI bellek hücrelerinin (aslında w ve wI aynı hücre olabilir) ayrılmasıdır.
Daha zor bir durum, seçim eylemleri (yani, koşullu, durum veya tamamlayıcı eylemlerle seri) söz konusu olduğunda verimli makine kodunu alma durumudur.
Bu eylemler için, ara kodda “loadrea (mod~ erişim)” ve “storereF (mod, erişim)” özel nesne talimatları oluşturulur; bu komutlar, komutlarda belirtilen modun değerleri için hiçbir kaydın olmadığı bir makine koduna çevrildiğinde göz ardı edilir, aksi takdirde, bu tür kayıtlar için sırasıyla yükleme ve depolama makine komutları ile değiştirilir.
Örnekte gösterildiği gibi, bu talimatların oluşturulması, yalnızca yerel optimizasyon ilkelerini uygulayarak daha verimli nesne kodu elde etmeyi sağlar.
Bu ara kodda, “kopyala” yönergeleri, d’nin boolean değeri ne olursa olsun, aynı konumdaki “+” operatörünün ilk işleneninin değerini zorlamayı amaçlar. Bu şekilde, “+” eylemi çevrildiğinde w tek erişimi kullanılabilir.
Açıkçası, bu makine koduna uygulanan yerel optimizasyonlar, optimum nesne koduna yol açmaz. Seçim eylemleri durumunda, ara kodda özel talimatların üretilmesi gerekmesinin nedeni budur.
BELLEK GERİ KAZANMA
Bu bölümde işlenen bellek kurtarma sorunları, WOST% üzerindeki ara sonuçlarla ilişkilidir. Bu problemlerin, her biri WOST% değerlerine iliştirilmiş bir statik özellik tarafından kontrol edilen üç yönü vardır (yani, dirwost, dirwost’ ve indwost erişim sınıflarına sahip değerler):
– “statik bellek kurtarma” (smr) statik özelliği, SWOST%’deki bellek kurtarmayı kontrol eder,
– “dinamik bellek kurtarma” (dmr) statik özelliği, DWOST %’sinde bellek kurtarmayı kontrol eder,
– “@arbage collection” (go) statik özelliği, WOST% değerlerine eklenmiş çöp toplama bilgilerinin depolanmasını kontrol eder.
STATİK ÇALIŞMA YIĞINI BELLEK GERİ KAZANIMI
Bir WOST%değerine, SWOST% konumunun statik adresi olan statik bir RANST%address n.p aracılığıyla erişilir; SWOST%’nin her SWOST%i kısmı derleme zamanında tamamen kontrol edilir ve dinamik işaretçi yönetimi gerekmez.
Aşağıda, smr statik özelliğinin SWOST%’un statik kontrolüne nasıl izin verdiği ve aynı zamanda son giren ilk çıkar ilkesini tehlikeye atmadan kopya sayısını en aza indirmeye nasıl izin verdiği birkaç örnek aracılığıyla gösterilmektedir.
Bir SWOST% değeriyle ilişkili Smr, ilişkili değer silindiğinde belleğin SWOST% üzerinde statik olarak nereye kadar kurtarılabileceğini gösteren bir RANST% adresi n.p biçimine sahiptir; classicaA bellek kurtarma yöntemlerinin aksine, ns.p8, değerin erişiminin statik adresi n.p’den farklı olabilir.
Optimizasyon dersi Optimizasyon iktisat Optimizasyon matematik Optimizasyon ne Demek Optimizasyon TDK Optimizasyon türleri Optimizasyon yöntemleri Sürekli optimizasyon