ISWIM Programlama Dili

ISWIM, Peter J. Landin tarafından geliştirilen ve ilk önce 1966'da ACM'nin İletişiminde yayınlanan The Next 700 Programming Languages adlı makalesinde anlatılan soyut bir bilgisayar programlama dili (veya bir programlama dili ailesi). Kısaltma "Eğer siz Ne demek istediğime bak " (aynı zamanda" Ben Ne Dediyeni Görüyorum "anlamına gelmişti, ancak ISWYM ISWIM olarak yanlış yazılmıştı [citation needed]).

Uygulanmasa da, SASL, Miranda, ML, Haskell ve ardılları gibi işlevsel programlama dilleri ve Lucid gibi veri akış programlama dilleri gibi programlama dillerinin geliştirilmesinde çok etkili olduğunu kanıtladı.

ISWIM, değişebilir değişkenler ve atama eklenen lambda taşının sözdizimsel şekerlenmesinden ve güçlü bir kontrol mekanizmasından -J operatöründen oluşan fonksiyonel bir çekirdek içeren zorunlu bir dildir. Lamda hesaplamaya dayalı olmak ISWIM'nin yüksek dereceli fonksiyonları ve sözcük dağılımlı değişkenleri vardır.

ISWIM'in operasyonel semantiği Landin'in SECD makinesini kullanarak tanımlanır ve çağrı-bazlı değer biçimi kullanılır, yani istekli değerlendirmedir. ISWIM'in amacı daha çok matematiksel gösterime benzemekti, bu yüzden Landin ifadeler arasında ALGOL'un noktalı virüslerinden vazgeçti ve bitiş bloklarını başlattı ve onları ters yöne çevrilmiş kuralla ve izlenime dayalı kapsam ile değiştirdi.

ISWIM'in belirleyici özelliği, "nerede" hükümlerini kullanmasıdır. Bir ISWIM programı, "where" cümlecikleri (değişkenler arasındaki denklemleri de içeren yardımcı tanımlar), koşullu ifadeler ve işlev tanımları tarafından niteliklendirilen tek bir ifadedir. CPL ile birlikte ISWIM, "nerede" hükümlerini kullanan ilk programlama dillerinden biriydi.

Dikkat çekici bir semantik özellik, yeni veri tiplerini (muhtemelen özyinelemeli) toplam olarak tanımlama yeteneğiydi - bu, biraz ayrıntılı bir doğal dil stili açıklaması kullanarak yapıldı, ancak notasyon haricinde tam olarak modern fonksiyonel olarak bulunan cebirsel veri tipleri Diller. ISWIM değişkenlerinin açık bildirim bildirimleri yoktu ve Landin'in LISP gibi ve ALGOL'un aksine bu dili dinamik olarak yazması tasarlanmış (1966'da açıkça belirtilmemiş olmasına rağmen) olası görünmektedir; Fakat sadece bir tür çıkarım geliştirmesi akılda tutulması mümkündür.

Yorumlar

Bu blogdaki popüler yayınlar

Wifi Hack (Wpa/Wpa2) Şifre Kırmak

Crunch Kullanımı (Kali Linux Şifre Kırma)

Python ile Hack (Mechanize)