ALGOL W - ALGOL W

ALGOL W
ParadigmalarÇoklu paradigma: prosedürel, zorunlu, yapılandırılmış
AileAlgol
Tarafından tasarlandıNiklaus Wirth, Tony Hoare
İlk ortaya çıktı1966; 54 yıl önce (1966)
Yazma disipliniStatik, kuvvetli
DürbünSözcüksel
Uygulama diliPL360
PlatformIBM System / 360
işletim sistemiLinux
Tarafından etkilenmiş
ALGOL 60
Etkilenen
Pascal, Modula-2

ALGOL W bir Programlama dili. Bir teklife dayanmaktadır ALGOL X tarafından Niklaus Wirth ve Tony Hoare halefi olarak ALGOL 60 içinde Uluslararası Bilgi İşleme Federasyonu (IFIP) IFIP Çalışma Grubu 2.1 Algoritmik Diller ve Calculi üzerine, belirtildi, ALGOL 60 dillerini korur ve destekler ve ALGOL 68.[1] Komite, teklifin ALGOL 60'a göre yetersiz avans olduğuna karar verdiğinde, teklif şu şekilde yayınlandı: ALGOL'un gelişimine katkı.[2] Dilde küçük değişiklikler yaptıktan sonra[3] Wirth, yüksek kaliteli bir uygulamayı denetledi. IBM System / 360 -de Stanford Üniversitesi yaygın olarak dağıtıldı.[4]

ALGOL 60'ın nispeten muhafazakar bir modifikasyonunu temsil ediyordu. dizi bit dizesi karmaşık sayı ve referans -e kayıt veri tipleri ve sonuca göre arama geçiş parametreleri, tanıtmak süre ifade, değiştirme değiştirmek ile durum ifadesi ve genellikle dili sıkılaştırmak.

Uygulama yazılmıştır PL360, ALGOL benzeri montaj dili Wirth tarafından tasarlanmıştır. Uygulama, etkili hata ayıklamayı içerir ve profil oluşturma yetenekleri.

Sözdizimi ve anlambilim

ALGOL W's sözdizimi bir alt kümesi üzerine inşa edilmiştir. EBCDIC karakter kodlaması Ayarlamak. İçinde ALGOL 60, ayrılmış sözcükler farklı sözcük öğeleridir, ancak ALGOL W'de bunlar yalnızca karakter dizileridir ve olmaları gerekmez gerilmiş. Ayrılmış sözcükler ve tanımlayıcılar boşluklarla ayrılır.[4] Bu yollarla ALGOL W'nin sözdizimi şu sözdizimine benzer: Pascal ve sonraki diller.

ALGOL W Dil Açıklama[5] ALGOL W'yi bir ek dilbilgisi benziyor Backus-Naur formu (BNF). Bu resmi gramer öncüsüydü Van Wijngaarden dilbilgisi.[2][6]

ALGOL W'nin semantiğinin çoğu dilbilgisi ile tanımlanır:[5]

  • Tanımlayıcılar, mevcut dürbün. Örneğin, bir ⟨Prosedür tanımlayıcı⟩ bir prosedür bildirimi ile tanımlanan bir tanımlayıcıdır, bir "Etiket tanımlayıcı" olarak kullanılan bir tanımlayıcıdır git etiket.
  • türleri nın-nin değişkenler ve ifade ekler ile temsil edilir. Örneğin ⟨Τ işlev tanımlayıcısı⟩ bir tür değeri döndüren bir işlev için sözdizimsel varlıktır τ, eğer bir tanımlayıcı geçerli kapsamda bir tamsayı işlevi olarak bildirilmişse, o zaman bu ⟨Tamsayı fonksiyon tanımlayıcısı⟩.
  • Yazım hataları dil bilgisi hatalarıdır. Örneğin, ⟨Tamsayı ifadesi⟩ / ⟨tamsayı ifadesi⟩ ve ⟨Gerçek ifade⟩ / ⟨gerçek ifade⟩ geçerli ancak ifadeleri temsil eden farklı sözdizimsel varlıklardır, ancak ⟨Gerçek ifade DIV ⟨tamsayı ifadesi⟩ (yani, bir kayan noktalı değer üzerinde gerçekleştirilen tamsayı bölümü) geçersiz bir sözdizimsel varlıktır.

Misal

Bu, ALGOL W'nun kayıt türü tesis.

KAYIT KİŞİ (    STRING(20) İSİM;     TAM YAŞ;     MANTIKLI ERKEK;     REFERANS(KİŞİ) BABA, ANNE, GENÇ BAHAR, ELDERSIBLING);REFERANS(KİŞİ) PROSEDÜR GENÇLİK (REFERANS(KİŞİ) R);    BAŞLA        REFERANS(KİŞİ) P, M;        P := GENÇ BAHAR(BABA(BABA(R)));        SÜRE (P ¬= BOŞ) VE (¬ ERKEK(P)) VEYA (P = BABA(R)) YAPMAK            P := ELDERSIBLING(P);        M := GENÇ BAHAR(ANNE(ANNE(R)));        SÜRE (M ¬= BOŞ) VE (¬ ERKEK(M)) YAPMAK            M := ELDERSIBLING(M);        EĞER P = BOŞ SONRA             M         BAŞKA EĞER M = BOŞ SONRA             P         BAŞKA             EĞER YAŞ(P) < YAŞ(M) SONRA P BAŞKA M    SON

Uygulama

ALGOL W'nin yaklaşık 2.700 kartlık büyük bir kısmı Wirth'in PL360'ında yazılmıştır. IBM için bir arayüz modülü işletim sistemi (OS) kullanımda (OS, DOS, MTS, ORVYL ), 250'den az karta karşılık gelen IBM montaj dilinde yazılmıştır. [1]

Bekletilen girdi ve çıktı dosyalarına sahip 360/67 işletim sistemi ortamında, derleyici kendisini yaklaşık 25 saniye içinde yeniden derleyecektir. Derleyici yaklaşık 2700 kart görüntüsüdür. Böylece, işletim sistemi zamanlayıcı süresi yukarıda verilen yürütme süresinden çıkarıldığında, derleyicinin saniyede 100 kartı aşan bir hızda (yoğun kod için) çalıştığı görülür.

360/30 üzerinde bir DOS ortamında, derleyici yalnızca kart okuyucunun hızıyla sınırlıdır. Derleyici, dakikada 1200 kart hızında (kart okuyucunun hızı) 64K 360 / 30'da kendini başarıyla yeniden derledi. Bu, DOS Assembler'ın 250'nin altında karttan oluşan arayüz modülünü monte etmesi için gereken süre ile karşılaştırıldığında etkileyici. Makro talimatları genişletildiğinde, DOS arabiriminde 972 kart görüntüsü bulunur ve Assembler'ın montaj için 15 dakika sürer.

Referanslar

  1. ^ Swierstra, Doaitse; Gibbons, Jeremy; Meertens, Lambert (2 Mart 2011). "ScopeEtc: IFIP21: Foswiki". Foswiki. Alındı 7 Ekim 2020.
  2. ^ a b Wirth, Niklaus; Hoare, C.A. R. (Haziran 1966). "ALGOL'ün gelişimine katkı". ACM'nin iletişimi. 9: 413–432. Alındı 7 Ekim 2020 - üzerinden Bilgi İşlem Makineleri Derneği.
  3. ^ Wirth, Niklaus (Eylül 1966). ALGOL'un Gelişimine Bir Katkı "üzerine ek notlar""". ALGOL Bülten. 24: 13–17. Alındı 7 Ekim 2020 - üzerinden Bilgi İşlem Makineleri Derneği.
  4. ^ a b Bauer, Henry R .; Becker, Sheldon I .; Graham, Susan L .; Forsythe, George E .; Satterthwaite, Edwin H. (Mart 1968). Teknik Rapor Numarası: CS-TR-68-89. Bilgisayar Bilimleri Bölümü (Bildiri). Stanford Üniversitesi. (Stanford'un 1972'de ALGOL W uygulaması için çeşitli belgeler; bu rapor şunları içerir: ALGOL W Dil Açıklama.
  5. ^ a b Bauer, Henry R .; Becker, Sheldon I .; Graham, Susan L .; Satterthwaite, Edwin H .; Sites, Richard L. (Haziran 1972). ALGOL W Dil Açıklama (PDF) (Bildiri). Arşivlenen orijinal (PDF) 19 Kasım 2012.
  6. ^ van Wijngaarden, Adriaan (22 Ekim 1965). Biçimsel Bir Dilin Ortogonal Tasarımı ve Tanımı: MR76 (PDF) (Bildiri). Amsterdam, Hollanda: Matematik Merkezi. Alındı 7 Ekim 2020 - Ernst-Abbe-Hochschule aracılığıyla Jena, Uygulamalı Bilimler Üniversitesi, Almanya.

Dış bağlantılar