Ciao (programlama dili) - Ciao (programming language)

Ciao
Ciao programlama dili.png logosu
Paradigma Mantıksal , işlevsel , modüler , nesne yönelimli
İlk ortaya çıktı 1984 ; 37 yıl önce  ( 1984 )
işletim sistemi Çapraz platform ( Unix , Mac OS X , Windows )
Lisans GPL , LGPL
İnternet sitesi www .ciao-lang .org
Tarafından etkilenmiş
Prolog

Ciao , mantık , kısıtlama , işlevsel , üst düzey ve nesne yönelimli programlama stillerini destekleyen genel amaçlı bir programlama dilidir . Ana tasarım hedefleri , yüksek ifade gücü , genişletilebilirlik , güvenlik, güvenilirlik ve verimli yürütmedir.

Dil Özellikleri

Ciao, eksiksiz bir Prolog sistemi ( ISO- Prolog'u destekler ), Prolog'un bildirimsel alt kümeleri ve uzantılarını, işlevsel programlama ( tembel değerlendirme dahil ), yüksek dereceli (yüklemli soyutlamalarla), kısıt programlama ve nesnelerin yanı sıra özellik terimleri (kayıtlar) sağlar. ), kalıcılık, birkaç kontrol kuralı ( enine ilk arama , yinelemeli derinleştirme, ...), eşzamanlılık (iş parçacıkları / motorlar), dağıtılmış yürütme (aracılar) ve paralel yürütme. Kitaplıklar ayrıca WWW programlamayı, soketleri, harici arayüzleri ( C , Java , TclTk , ilişkisel veritabanları vb.) Vb. Destekler .

Ciao, dili hem kısıtlamaya hem de genişletmeye izin veren genişletilebilir bir modüler tasarıma sahip bir çekirdek üzerine inşa edilmiştir - bir dil oluşturma dili olarak görülebilir. Bu kısıtlamalar ve uzantılar, her program modülünde ayrı ayrı etkinleştirilebilir, böylece farklı modüller için aynı uygulamada birkaç uzantı bir arada bulunabilir.

Güvenli ve Güvenilir Programlar Geliştirme

Ciao'da büyük programlama şu şekilde desteklenir:

  • Sağlam bir modül / nesne sistemi. Bu, modül tabanlı ayrı / artımlı derleme sağlar (bu, makefiles gerektirmeden otomatiktir).
  • Program özelliklerini (belirtimleri) bildirmek (isteğe bağlı) için entegre bir onaylama dili. Bunlar, türler, modlar, belirlilik, başarısız olmama, maliyet (zaman, bellek) vb. İçerir.
  • Bu tür iddiaların otomatik çıkarımı ve statik / dinamik kontrolü (birim testi dahil).

Ciao ayrıca küçük programlamayı da destekler: derleyici küçük yürütülebilir dosyalar üretebilir (yalnızca program tarafından kullanılan yerleşikler dahil) ve yorumlayıcı komut dosyası oluşturmayı destekler.

Çevre klasik bir üst-seviyesi içerir ve bir gelişmiş emacs gömülebilir kaynak seviyesinde hata ayıklayıcı ve yürütme görselleştirme araçları bir dizi ara yüz.

Ciao ön işlemcisi, statik hata ayıklamayı ve doğrulama onaylama kontrolünü ve kaynaktan kaynağa program dönüşümünü destekleyerek optimizasyonu destekler. Bu görevler, ayrı olarak dağıtılan Ciaopp tarafından gerçekleştirilir).

Otomatik Belgeleme

Ciao, otomatik bir belge oluşturucu olan lpdoc'u içerir. (Ciao) iddiaları ve makine tarafından okunabilir yorumlarla süslenmiş programları işler ve HTML, pdf, texinfo, info, man, vb. Dahil olmak üzere birçok formatta kılavuzlar ve çevrimiçi yardım, ascii README dosyaları, indis girişleri oluşturur. kılavuzlar (bilgi, WWW, ...) ve WWW dağıtım sitelerinin bakımını yapar.

Taşınabilirlik ve Verimlilik

Ciao derleyicisi (en üst düzey kabuğun dışında çalıştırılabilir), genel olarak ve diğer yüksek düzeyli dillerle çok rekabetçi olan hız, verimlilik ve yürütülebilir boyutta çalışan, mimariden bağımsız ve bağımsız yürütülebilir birkaç biçim oluşturur. özellikle ticari ve akademik Prolog / CLP sistemlerinde. Modüller kompakt bayt kodu veya C kaynak dosyaları olarak derlenebilir ve statik, dinamik veya otomatik olarak bağlanabilir.

daha fazla okuma

  • Manuel V. Hermenegildo; et al. (2011). "Ciao ve Tasarım Felsefesine Genel Bir Bakış". arXiv : 1102.5497 [ cs.PL ].
  • Ciao Geliştirme Ekibi. "Ciao Sistemi Ana Sayfası" .
  • Enrico Pontelli (ed.). "CIAO Multiparadigm Dili ve Program Geliştirme Ortamı" .
  • Kei Davis, Jörg Striegnitz. "Nesne yönelimli dillerde multiparadigm programlama: atölye çalışması MPOOL'07 ile ilgili güncel araştırma raporu" . ECOOP'07 2007 Nesne yönelimli teknoloji konferansı bildirileri.

Referanslar