ALGOL – 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
ALGOL
Bir programlama dili, bir anlambilim ve bir sözdizimi aracılığıyla tanımlanır.
– semantik dilin programlarının anlamını tanımlar. dayanmaktadır
parametreleri olan, bir sonuç veren ve/veya bazı yan etkileri olan ve bir fonksiyonun sonucunun başka bir fonksiyonun parametresi olarak kullanılabileceği bir dizi kompozisyon kuralına sahip bir dizi ilkel fonksiyon (eylem).
– sözdizimi, program temsilleri için araçlar sağlar. Anlambilimin hem ilkel işlevlerini hem de oluşturma kurallarını yansıtan bir program yapısı tanımlar.
Bir derleyici, belirli bir kaynak dilde yazılmış programları, bir nesne dilinde yazılmış ve aynı anlama gelen programlara çevirir. Nihayetinde nesne dili makine kodudur. Genel olarak, dönüşüm iki adımda gerçekleştirilir. En azından kavramsal olarak ayrılmış: sözdizimsel analiz ve uygun çeviri söz konusudur.
TEMEL KONSEPTLER
Sözdizimsel analiz, kaynak programın yapısının açık hale getirildiği bir program dönüşümüdür. Sözdizimsel analizde üç bölümü ayırt edebiliriz, yani:
– kaynak dilde anlamsal olarak önemli bilgi atomlarının tespit edildiği sözcüksel analiz,
– kaynak dilin ilkel işlevlerinin ve bunların bileşim kurallarının açık hale getirildiği bağlamdan bağımsız analiz ve
– beyan edilen nesnelerin beyanlarına bağlandığı beyan işleme.
Kavramsal olarak, sözdizimsel analizin çıktısı aşağıdakileri içeren bir ağaç biçimine sahiptir:
– uç düğümler, sözlük analizcisi tarafından iletilen atomlardır. Bu atomlar değerleri temsil edebilir (değer ifadeleri, tanımlayıcılar) veya sadece kaynak dil sözdizimsel ayırıcıları veya anahtar sözcükler olabilir,
– terminal olmayan düğümler, parametreleri alt düğümlerden kaynaklanan değerler olan işlevleri (eylemleri) temsil eder; sırayla, bu işlevler sonuç olarak bir değer verebilir ve
– ilk düğüm açıkça sözdizimsel birim “belirli program” dır.
Uygun çeviri, makine kodunu üretir. Temel işlevler ve makine kodları tarafından işlenen değerler, üst düzey dillerin ilkel işlevlerinden ve parametrelerinden çok daha ilkeldir.
Çeviri işlemi, kaynak işlevleri ve kaynak değerleri ayrıştırmalıdır. Makine talimatları bağımsız modüller olarak yürütülür: aralarındaki arayüz, detaylandırılma sırasına ve oluşturdukları programın dayandığı depolama tahsis şemasına göre belirlenir. Daha somut olarak, her talimatın sonucu bir bellekte saklanır. hücre ve aynı bellek hücresinin erişiminin (adresinin) belirtildiği başka bir komut tarafından kullanılabilir.
Kabaca söylemek gerekirse, belirli bir program için makine kodu üretimi aşağıdaki bilgilere dayanmaktadır:
– sözdizimsel analizden kaynaklanan program ağacı,
– kaynak dil tarafından tanımlandığı şekliyle kaynak fonksiyonların semantiği ve
– donanım tarafından tanımlandığı şekliyle makine talimatlarının anlamı.
Derleyicinin ana görevi, kaynak işlevleri makine komutlarının eşdeğer dizilerine ayrıştırmayı azaltır. Açıkçası, kaynak dilin kompozisyon kurallarının dikkate alınabilmesi için öncelikle bir depolama tahsis şeması tasarlanmalıdır.
Makine kodunun tek adımda üretilmesi yeniden talep edilmemiştir; çeviri şemamız önce ~ntelwn~diat~ cod~ (IC) adı verilen bir ara program formu üretir. Diğer şeylerin yanı sıra bu, çeviri sürecinin daha önemli bir bölümünde makineden bağımsız kalmaya ve dolayısıyla derleyici taşınabilirliğini artırmaya izin verir.
Kaynak dil ile aynı ilkel işlevlerden oluşan, ancak bu işlevlerin ayrı bağımsız modüller olarak kabul edilmesini mümkün kılan açık parametrelerle sağlanan bir ara kod öneriyoruz.
Makine kodunda olduğu gibi, bu modüller, açık dizi kesintilerinin ortaya çıktığı durumlar dışında sırayla detaylandırılır. Kaynak dilin kompozisyon kuralları, modüllerin sıralı detaylandırılması ve depolama tahsisi stratejisi aracılığıyla dikkate alınır.
Bu bağlamda, soyut değer örnekleriyle ilgilenen kaynak dilin aksine, ara kod, hem soyut değer örneklerine (mod …) hem de bellek konumlarına karşılık gelen statik özelliklerle karakterize edilen depolanmış değerlerle ilgilenir.
Ara kod (nesne) talimatlarının (ICI) parametrelerinde kullanılan bu özelliklerdir; daha kesin olarak, bir ICI’nin parametreleri, karşılık gelen kaynak işlevin her parametresi için bir dizi statik (derleme zamanı) özelliklerden ve bu işlevin sonucu için bir diziden oluşur.
ALGOL programlama dili
COBOL PROGRAMLAMA dili
Windows yazılım dili
Fortran
Lisp
Fortran sistem gereksinimleri
Dart Net
Dart dili syntax
Çeviri şemamıza geri dönersek, belirli bir program için ara kod üretiminin aşağıdaki bilgilere dayandığını söyleyebiliriz:
– sözdizimsel analizden kaynaklanan program ağacı,
– kaynak fonksiyonların semantiği ve
– depolama ayırma şeması.
Makine komutlarının semantiğinin kaybolduğunu görüyoruz, donanımdan sadece depolama tahsisi etkilenebiliyor. Aslında, ara kod düzeyinde yalnızca iki hipotez kurarız:
– hafıza, adreslenebilir birimlerin kesintisiz bir dizisidir, – dolaylı bir adresleme mekanizması mevcuttur. Makineden bağımsız optimizasyonlar, ara kod üretimi seviyesinde gerçekleştirilir. Özellikle
– değerlerin çalışma zamanı kopyaları,
– çalışma zamanı bellek yönetimi ve
– Dinamik kontroller büyük ölçüde minimize edilmiştir.
Ayrıca bir sonraki adımda makineye bağlı optimizasyonları geri alabilmek için önlemler alınır; bu tür optimizasyonlar şunlarla ilgilenir:
– kayıt tahsisi ve
– olası donanım hazır bilgisi ve/veya görüntü adreslemesi.
Şimdi, makine kodu üretimi aşağıdakilere dayalı olabilir:
– programların ara kod biçimi,
– kaynak fonksiyonların semantiği ve
– makine kodunun anlamı.
Her bir ara kod komutunun bağımsız olarak derleyici modülerliğini geliştiren makine koduna çevrilebileceğini unutmayın. Bu çeviri temel olarak kaynak işlevlerin ve verilerin sırasıyla makine yönergelerine ve sözcüklere (baytlar) ayrıştırılmasından oluşur. Nihai makine kodu programını elde etmek için ICI’ler arasındaki arayüzde yalnızca yerel optimizasyonlara (gözetleme deliği) ihtiyaç duyulacaktır.
Bir programı verimli ve otomatik olarak çevirebilmek için bilgi toplamak önemsiz olmayan bir statik (derleme zamanı) bilgi yönetimi gerektirir. Bu çalışmada açıklanan yöntem, bağımsız olarak geliştirilmiş olmasına rağmen, Knuth [6] tarafından açıklanan yöntem ile birçok benzerliğe sahiptir. Bunu Knuth’un terminolojisini kullanarak açıklıyoruz.
Nitelikler, ağaç düğümlerine eklenen statik özelliklerdir; sentezlenmiş ve kalıtsal nitelikler vardır.
Sistemimizde, bir düğümün sentezlenmiş öznitelikleri, düğüme eklenen değerin statik özellikleridir (mod, erişim …), yani bir terminal yapısının değeri (gösterge, tanımlayıcı) veya bir işlevden kaynaklanan değer söz konusudur.
Bu sentezlenmiş nitelikler aşağıdan yukarıya bir şekilde birbirinden çıkarsanır.
Bir terminal düğümü için, terminal yapısının kendisinden (ve beyan edilen bir nesne olması durumunda beyanından) elde edilirler. Termik/son olmayan düğümler için, statik detaylandırma süreciyle hesaplanırlar.
Bir fonksiyonun statik detaylandırılması, fonksiyonun sonucunun statik özelliklerinin, parametrelerinin statik özelliklerinden (yani alt düğümlerin sentezlenmiş özniteliklerinden) ve çeviri için oluşturulan koda göre türetildiği süreçtir.
ALGOL programlama dili COBOL PROGRAMLAMA dili Dart dili syntax Dart Net Fortran Fortran sistem gereksinimleri Lisp Windows yazılım dili