İçeriğe atla

ALGOL 68

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.

Genel bakış

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

Kaynakça

  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. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">Pascal (programlama dili)</span> yüksek seviyeli programlama dili

Pascal bilgisayar programlama dili pek çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hâlâ yaygın olarak kullanılmaya devam eden en önemli programlama dillerinden biridir. İlk Macintosh işletim sisteminin çoğu ve TeX Pascal ile yazılmıştır.

Biçimsel dil kuramı, teorik bilişimin temel dallarından biridir. Bir biçimsel dil, abece denilen belli bir küme Σ üzerinde kurulan dizilerden oluşur. Biçimsel dilleri tanımlamak için ifadeler, gramerler ya da tanımlanan dile ait olan dizileri kabul eden otomatlar kullanılır. Bunun yüzünden otomat kuramı ile ilişkisi çok önemlidir.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

Kenneth Lane Thompson Amerikalı bir bilgisayar bilimcisi.Thompson, kariyerinin büyük bir bölümünde orijinal Unix işletim sistemini tasarlayıp uyguladığı Bell Labs'ta çalıştı. Ayrıca C programlama dilinin doğrudan selefi olan B programlama dilini de icat etti. Bununla beraber Plan 9 işletim sisteminin yaratıcılarından ve ilk geliştiricilerinden biriydi. Thompson, 2006'dan beri Go programlama dilini birlikte icat ettiği Google'da çalışmaktadır.

<span class="mw-page-title-main">ALGOL</span> programlama dil ailesi

ALGOL(; adı ALGOrithmic Language'in kısaltmasından gelmektedir), ilk olarak 1958 yılında geliştirilen bir zorunlu bilgisayar programlama dili ailesidir. ALGOL diğer birçok dili büyük ölçüde etkilemiş ve Association for Computing Machinery (ACM) tarafından otuz yıldan uzun bir süre ders kitaplarında ve akademik kaynaklarda kullanılan algoritma tanımlaması için standart yöntem olmuştur.

Yapısal programlama, programlama dilleri kullanılarak yazılan, mantıksal bütünlük gösteren bloklara (bölümlere) bölünebilirler. Bu yolla uzun ve karmaşık programların, bloklara ayırarak daha kolay biçimde yazılabilmesi mümkün olmaktadır.

<span class="mw-page-title-main">Ada (programlama dili)</span> programlama dili

Ada, yapısal, statik tipli, zorunlu, geniş spektrumlu ve nesne yönelimli bir üst düzey bilgisayar programlama dilidir. Pascal ve diğer dillerin genişletilmiş halidir. Gömülü design-by-contract (DbC), güçlü yazımı, açık eşzamanlı, senkronize mesaj geçişi, korunmuş objeli ve belirsiz bir dildir. Ada kod güvenliğini ve sürdürebilirliğini derleyicide hataları bularak geliştirdi.

<span class="mw-page-title-main">Dennis Ritchie</span> Amerikalı bilgisayar bilimci

Dennis MacAlistair Ritchie, uzun süre birlikte çalıştığı arkadaşı Ken Thompson ile birlikte C programlama dilini ve Unix işletim sistemini yazan saygın Amerikalı bilgisayar bilimcisi. 1983'te Turing Ödülü'nü, 1999'de Ulusal Teknoloji Madalyası ödülünü aldı. 12 Ekim 2011'de ölmüştür.

Sözdizim, söz dizimi ya da Fransızcadan ödünçleme biçimiyle sentaks, doğal dillerdeki cümle kurma ilke ve kurallarını inceleyen ve bu dildeki cümlelerin esnekliğini inceleyen dilbilim dalıdır.
Eski Yunanca "birlikte düzenleme, dizme" anlamına gelen sentaks terimi dilbilimde, doğal dillerde nasıl cümle oluşturulacağına dair bir kurallar ve prensipler çalışmasıdır. Bir bilim dalına ait olmasına ek olarak “Modern İrlandacanın Sözdizimi"nde olduğu gibi, sözdizim terimi herhangi bireysel bir dilin cümle yapısına hâkim olan kurallara ve prensiplere de doğrudan ilgili olarak da kullanılır. Sözdizim, dilin yatay, yani satır şeklinde dizilen bir sistem olduğunu gösterir. Bu diziliş, sesten, morfemlere, morfemlerden daha büyük öbeklere dilin her seviyesinde mevcuttur. Sözdizimin yalnız cümle seviyesini gösteren bir terim olarak kullanılması doğru ama eksik bir kullanımdır.

<span class="mw-page-title-main">Düzenli ifade</span> bir arama modeli oluşturan karakter dizisi

Düzenli ifadeler veya kurallı ifadeler, bilgisayar bilimlerinde ele alınan metindeki kimi katarların kısa yoldan ve esnek bir biçimde belirlenmesini sağlar. Bu katarlar belli karakterler, kelimeler veya karakter örüntüleri olabilir. Düzenli ifadeler, bir biçimsel dil kullanarak yazılır ve bir düzenli ifade işleyici tarafından yorumlanır. Bir düzenli ifade işleyicisi ya ayrıştırıcı olarak hizmet eden ya da metni inceleyip verilen tarife uygun kısımlarını belirleyen bir programdır.

Programlama dili teorisi (PDT), programlama dilleri olarak bilinen biçimsel dillerin ve bunların bireysel özelliklerinin tasarımı, uygulanması, analizi, karakterizasyonu ve sınıflandırılması ile ilgilenen bir bilgisayar bilimleri dalıdır. Matematik, yazılım mühendisliği, dilbilim ve hatta bilişsel bilime bağlı ve onu etkileyen bilgisayar bilimi disiplinine girer. PDT'ye adanmış çok sayıda dergide ve genel bilgisayar bilimi ve mühendisliği yayınlarında yayınlanan sonuçlarla tanınmış bir bilgisayar bilimi dalı ve aktif bir araştırma alanı haline gelmiştir.

Bilgisayar biliminde sözdizimsel şeker, alternatif ifade yolları olan bazı ifadelerin kullanımını ve okunmasını kolaylaştıran sözdizimsel ögelere verilen addır. Bu şekilde dilin insanlar tarafından kullanımı kolaylaşır: ifadeler daha net bir şekilde anlatılabilir, bu nedenle bazı insanlar bu alternatif biçimi tercih edebilirler.

<span class="mw-page-title-main">Kalıtım (programlama)</span>

Kalıtım, bir sınıfın üst sınıftan miras almasına denir. Pratikte karışıklıklara sebep olduğundan kimi programlama dilleri, ancak tekli kalıtıma izin verirler. Bu dillerde çoklu kalıtım yerine interface denilen nesnelerden faydalanılarak çoklu kalıtımın verdiği özellikler, yan etkileri olmaksızın kullanılabilmektedir. Çoklu kalıtıma izin veren programlama dillerindeyse doğrudan bir sınıfın birden fazla sınıftan miras alması mümkündür..

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Yapay zekâya yönelik programlama dilleri listesi</span> Vikimedya liste maddesi

Yapay zekâ araştırmacıları yapay zekâya yönelik programlama dilleri geliştirmişlerdir.

<span class="mw-page-title-main">Ayrıştırıcı (yazılım)</span>

Ayrıştırıcı, girdi verilerini alır ve girdinin yapısal bir temsilini vererek, süreçte doğru sözdizimini kontrol eden bir veri yapısı oluşturan bir yazılım bileşenidir. Ayrıştırma öncesinde veya sonrasında başka adımlar izlenebilir veya bunlar tek bir adımda birleştirilebilir. Ayrıştırıcı, genelde girilen karakter dizisinden belirteçler oluşturan ayrı bir sözcük tabanlı analiz motorunu takip eder. Ayrıştırıcılar elle programlanabilir veya bir ayrıştırıcı üreteci tarafından otomatik olarak veya yarı otomatik olarak oluşturulabilir. Ayrıştırma, biçimlendirilmiş çıktı üretimlerini tek bir şablonda tamamlama görevi görür. Bunlar, farklı etki alanlarına uygulanabilir, ancak bir derleyicinin girdi ve çıktı aşamaları gibi genellikle bir arada sunulur.

<span class="mw-page-title-main">Sözdizimi vurgulama</span> programlama, komut dosyası oluşturma ve işaretleme için editör aracı

Sözdizimi vurgulama, bilinen diğer adıyla syntax highlighting, programlama ve işaretleme dilleri için kullanılan metin editörlerinin bir özelliğidir. Bu özellik kaynak kodunu, ifadelerin kategorilerine göre farklı renklerde veya yazı tiplerinde gösterir. Özellik, programlama dillerinin ve işaretleme dillerinin yazımını kolaylaştırır; varsa sözdizimi hatalarını belirgin hale getirir.

ABC, Leo Geurts, Lambert Meertens ve Steven Pemberton tarafından CWI, Hollanda'da geliştirilen zorunlu bir genel amaçlı programlama dili ve programlama ortamıdır. Etkileşimli, yapılandırılmış, üst düzeydir ve BASIC, Pascal veya AWK yerine kullanılması amaçlanmıştır. Bir sistem programlama dili olmaktan ziyade, öğretme veya prototip oluşturma amaçlıdır.

Programlama bilgisayarda, bir altyordam bir birim olarak paketlenmiş belirli bir görevi yerine getiren bir dizi program talimatıdır. Bu birim daha sonra söz konusu görevin yapılması gereken her yerde programlarda kullanılabilir.