İçeriğe atla

ALGOL 68

Vikipedi, özgür ansiklopedi
ALGOL 68

ALGOL 68 (Algorithmic Language 1968'in ifadesinin kısaltması), çok daha geniş bir uygulama kapsamı ve daha titiz bir şekilde tanımlanmış sözdizimi ve anlambilim hedefiyle tasarlanmış, ALGOL 60 programlama dilinin halefi olarak tasarlanan programlama dilidir.

Standart olmayan terminolojiyle dolu birkaç yüz sayfaya kadar çalışan dil tanımının karmaşıklığı, derleyici uygulamasını zorlaştırdı ve "hiçbir uygulaması ve kullanıcısı olmadığı" söylendi. Bu kısmen doğruydu; ALGOL 68, özellikle International Computers Limited (ICL) makinelerinde ve öğretim rollerinde popüler olduğu Birleşik Krallık'ta olmak üzere bir dizi niş pazarda kullanım buldu. Bu dairelerin dışında kullanım nispeten sınırlıydı.

Bununla beraber, ALGOL 68'in bilgisayar bilimi alanına katkıları derin, kalıcı ve geniş kapsamlı olmuştur, ancak bu katkıların çoğu ancak sonradan geliştirilen programlama dillerinde yeniden ortaya çıktıklarında halka açık olarak tanımlanmıştır. Çoğu dil, dilin algılanan karmaşıklığına yanıt olarak özel olarak geliştirildi, en dikkate değer olanı Pascal'dı veya Ada gibi belirli roller için yeniden uygulamalardı.

1970'lerin birçok dili, tasarımlarını özellikle ALGOL 68'e kadar izler, bazı özellikleri seçerken, verilen roller için çok karmaşık veya kapsam dışı olduğu düşünülen diğerlerini terk eder. Bunlar arasında, özellikle güçlü yazımı ve yapıları nedeniyle ALGOL 68'den doğrudan etkilenen C dili de var. Çoğu modern dil, sözdizimlerinin en azından bir kısmını C veya Pascal'a ve dolayısıyla doğrudan veya dolaylı olarak ALGOL 68'e izler.

ALGOL 68 özellikleri, ifade tabanlı sözdizimi, kullanıcı tanımlı türler ve yapılar / etiketli birleşimler, değişkenler ve referans parametreleri için bir referans modeli, dizi, dizi ve matris dilimleme ve eşzamanlılığı içerir.

ALGOL 68, Uluslararası Bilgi İşlem Federasyonu (IFIP) IFIP Çalışma Grubu 2.1 tarafından tasarlanmıştır. 20 Aralık 1968'de, dil grup tarafından resmi olarak kabul edildi ve ardından IFIP Genel Kurulu tarafından yayınlanmak üzere onaylandı.

ALGOL 68, Adriaan van Wijngaarden tarafından icat edilen iki seviyeli bir biçimsel gramer olan bir biçimcilik kullanılarak tanımlandı. Van Wijngaarden gramerleri, belirli bir ALGOL 68 programını tanıyacak sonsuz sayıda prodüksiyon oluşturmak için bağlamdan bağımsız bir gramer kullanır; özellikle, diğer birçok programlama dilinde teknik standartların anlambilim olarak etiketlendiği ve belirsizliğe yatkın doğal dil düzyazı ile ifade edilmesi ve daha sonra derleyicilere biçimsel dil ayrıştırıcısına eklenmiş geçici kod olarak uygulanması gereken türden gereksinimleri ifade edebilirler. .

ALGOL 68'in tasarımının temel amaçları ve ilkeleri:

  1. Açıklamanın eksiksizliği ve netliği
  2. Tasarımın dikeyliği
  3. Güvenlik
  4. Verimlilik:
    • Statik mod kontrolü
    • Moddan bağımsız ayrıştırma
    • Bağımsız derleme
    • Döngü optimizasyonu
    • Temsiller - minimum ve daha büyük karakter kümelerinde
  • . . . C tarafından benimsenen tip kompozisyon şeması, Algol 68'e hatırı sayılır miktarda borçludur, ancak bu belki de Algol'un taraftarlarının onaylayacağı bir biçimde ortaya çıkmamıştır. Algol'dan yakaladığım ana fikir, atomik türlere (yapılar dahil) dayalı, diziler, işaretçiler (referanslar) ve işlevler (prosedürler) şeklinde oluşan bir tür yapısıydı. Algol 68'in sendika ve alçı kavramı da daha sonra ortaya çıkan bir etkiye sahipti. Dennis Ritchie Nisan 1993.[1]
  • . . . C Algol 68'den gelmiyor doğrudur, ancak etkisi o kadar ince ki, çok düşündüğümde bile iyileşmesi zor. Özellikle, sendika türü (C'ye geç bir ekleme), herhangi bir ayrıntıda değil, ancak böyle bir türe sahip olma fikrinde A68'e borçludur. Daha derin bir şekilde, genel olarak tip yapısı ve hatta, garip bir şekilde, bildirim sözdizimi (tip-yapıcı kısmı) A68'den esinlenmiştir. Ve evet, tabii ki "uzun". Dennis Ritchie, 18 Haziran 1988[2]
  • "Tebrikler, Ustanız başardı" - Niklaus Wirth[3]
  • Ne kadar çok görürsem o kadar mutsuz oluyorum - EW Dijkstra, 1968[4]
  • [...] A68'in popülaritesinin [...] Amsterdam - Guido van Rossum'a olan uzaklığıyla ters orantılı olduğu söylendi[5]
  • [. . . ] Yapabileceğimizin en iyisi, onunla birlikte bir azınlık raporu göndererek, "... karmaşık programların güvenilir bir şekilde oluşturulması için bir araç olarak, dilin bir başarısızlık olduğu" görüşümüzü belirtmekti. [. . . ] - CAR Hoare, Ekim 1980 Turing Ödülü Dersinde[6]
    • Gerçek azınlık raporlarının 1970'ten alıntıları: "[. . . ] Yeterli bir programlama aracından, programcıya işinin en zor yönlerinde yapısal olarak yardımcı olması her zamankinden daha fazla istenecektir, yani. karmaşık programların güvenilir şekilde oluşturulmasında. Bu bakımdan, burada dilin nasıl önerildiğini göremiyoruz. [Algol68] ileriye doğru atılmış önemli bir adımdır: tam tersine, programcının görevine ilişkin örtük görüşünün, diyelim ki on yıl önceki ile hemen hemen aynı olduğunu hissediyoruz. Bu, bir programlama aracı olarak kabul edildiğinde, dilin modası geçmiş olarak görülmesi gerektiği sonucunu bize zorlar. [. . . ] " İmza: Dijkstra, Duncan, Hoare, Randell, Seegmueller, Turski, Woodger . Jan V. Garwick[7] ile 23 Aralık 1968'de.

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  1. ^ "The Development of the C Language" (PDF). Nisan 1993. 6 Kasım 2005 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 26 Nisan 2007. 
  2. ^ "C and Algol 68". Haziran 1988. 27 Ağustos 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Eylül 2006. 
  3. ^ C. H. A. Koster (1993). "The Making of Algol 68". 
  4. ^ "To the EDITOR ALGOL 68 Mathematische Centrum". 21 Nisan 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2007. 
  5. ^ "Python-Dev Wishlist: dowhile". Haziran 2005. 13 Kasım 2005 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2007. 
  6. ^ Hoare (Şubat 1981) [based on his 1980 Turing Award Lecture]. "The emperor's old clothes". Communications of the ACM. 24 (2): 75-83. doi:10.1145/358549.358561. 8 Mayıs 2013 tarihinde kaynağından arşivlendi.  Alt URL 2 Ekim 2017 tarihinde Wayback Machine sitesinde arşivlendi.
  7. ^ "ALGOL Bulletin (referred to in AB30.1.1.1)". Mart 1970. 30 Eylül 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Mart 2007.