Kaleidoscope (programlama dili) - Kaleidoscope (programming language)

Kaleydoskop programlama dili bir kısıt programlama dil yerleştirme kısıtlamalar Içine zorunlu nesne odaklı dil. Anahtar kelimeler ekler her zaman, bir Zamanlar, ve iddia etmek..sırasında (vakti zamanında süre..iddia etmek) İlişkisel değişmezler hakkında açıklamalar yapmak. Nesnelerin, kullanıcı tanımlı veri türlerinin anlamlarını zorlamak için yöntem olmayan kısıt oluşturucuları vardır.

Kaleidoscope'un bildirimselden giderek daha zorunlu bir stile doğru bir evrimi gösteren üç versiyonu vardır. Aralarındaki farklar aşağıdaki gibidir.[1]

Kaleydoskop'90Kaleydoskop'91Kaleydoskop'93
Kısıt DeğerlendirmesiTembelİstekliİstekli
DeğişkenlerAkışları bekletAkışları bekletZorunlu
Eşzamanlı KısıtlamalarKatıKatıKatı olmayan
SözdizimiSmalltalk benzeriAlgol benzeriAlgol benzeri
Kısıtlama ModeliAyrıntılandırmaAyrıntılandırmaTedirginlik
Yöntem GönderimiTekÇokluÇoklu
GörevKısıtlama olarakKısıtlama olarakYıkıcı

Misal

Her ikisi de kullanıcının cıva seviyesini fare ile basit bir grafik termometrede sürüklemesine izin veren iki kod segmentini karşılaştırın.

Kısıtlamalar olmadan:

mouse.button = aşağı iken eski <- mercury.top; mercury.top <- mouse.location.y; sıcaklık <- civa. yükseklik / ölçek; eski  mercury.top sonra delta_white (mercury.top, eski); display_number (sıcaklık); biterse; bitince;

Kısıtlamalarla:

her zaman: sıcaklık = cıva.yükseklik / ölçek; her zaman: beyaz dikdörtgen (termometre); her zaman: gri dikdörtgen (cıva); her zaman: ekran numarası (sıcaklık); mouse.button = aşağı ise mercury.top = mouse.location.y ; bitince;

Referanslar

  • Lopez, Gus; Bjorn Freeman-Benson; Alan Borning (1994). "Kaleidoscope: A Constraint Imperative Programlama Language". Kısıt Programlama. Springer-Verlag. sayfa 313–329.
  • Marriott, Kim; Peter J. Stuckey (1998). Kısıtlamalarla programlama: Giriş. MIT Basın. ISBN  0-262-13341-5