Hangi Ortak Lisp uygulamasını kullanmak? [kapalı]


45

Common Lisp'te gelişmeye başlamanın hemen bir sorunu var gibi görünüyor: bir uygulamanın seçilmesi. Biri ne dikkate almalı ve bir CL uygulaması düşünüldüğünde ne kadar ağırlık almalıdır?

ANSI standardına uymalı mı? SLIME tarafından desteklenmeli mi? Bazı uygulamalarda iyi kütüphaneler, belgeler vb. Eksik midir?


İlginç soru: Şu anda "Practical Common Lisp" okuyorum ve CLISP'deki örnekleri deniyorum, ancak herhangi bir uygulamanın standartlara uygun olduğunu tahmin ediyorum: Common Lisp bana çok olgun ve istikrarlı bir dil gibi görünüyor.
Giorgio

Yanıtlar:


25

Özel gereksinimlerinize ve belirli uygulamaların güçlü ve zayıf yanlarına bağlıdır. Bununla birlikte, farklı uygulamalar hakkında düşünürken aklıma ilk gelen şey şudur:

SBCL oldukça hızlı ve numara sıkma konusunda iyidir. Bu nedenle, sayısal sayısal hesaplamaya güveniyorsanız, bu sizin için doğru bir uygulama olabilir. Ayrıca, iyi bir tür çıkarımı vardır (Lisp uygulaması için).

CLISP, komut dosyası için ilginç olabilecek nispeten küçük bir bayt derleme uygulamasıdır.

Birkaç yıl önce CCL'yi denedim ve onunla bağlantı kurdum, çünkü hata mesajlarını tercih ettim ve izlerini diğer uygulamaların yanı sıra nispeten düşük derleme sürelerine ayırdım. Benim için, etkileşimli kullanım kolaylığı çok yüksek öncelikli bir şeydir. Hızı gerekiyorsa, konuşlandırılmış program için hala SBCL'ye geçebilirim. (Buna rağmen asla gerek yoktu.) Ayrıca, ticari destek seçeneği var.

JVM'de konuşlandırmak istiyorsanız, ABCL var.

Gömülü kullanım için ECL.

Allegro AllegroGraph, AllegroStore, kullanımı kolay bir görsel GUI oluşturucu ve daha fazlası, ancak herkes lisans koşullarını sevmiyor.

LispWorks, son kullanıcı uygulama programlaması için güzel bir platformlar arası GUI araç seti ve Allegro'dan daha iyi olan küçük takımlara ve tek programcılara uyabilecek lisanslama terimleriyle oldukça iyi ödünç veriyor. (En azından tercih ettiğim şey bu.)

Tabii ki, bunlar sadece geniş kategoriler ve izlenimlerdir. SBCL, CCL ve CLISP'ye daha yakından bir göz atmanızı öneriyorum, çünkü bunlar IMHO en çok kullanılan ve en iyi desteklenen açık kaynak kodlu uygulamalar. Diğer bir deyişle, ihtiyaçlarınız ABCL veya ECL'nin sunduğu ile uyuşmuyorsa.

ASNI standardına uymalı mı?

Olmasaydı CL uygulaması olmazdı. (Elbette pratikte birkaç sapma olabilir, ancak uygunluk en azından amaç olmalıdır.)

SLIME tarafından desteklenmeli mi?

Tabii - SLIME kullanıyorsanız. (Benim düşünceme göre, şu anda mevcut en iyi Lisp ortamı, ancak her biri kendi başına.)

Bazı uygulamalarda iyi kütüphaneler, belgeler vb. Eksik midir?

En azından SBCL, CCL, Allegro ve LispWorks, yaygın olarak kullanılan kütüphanelerin çoğu tarafından iyi bir şekilde desteklenmelidir. CLISP oldukça hoş bir kütüphane koleksiyonuyla birlikte gelir ve ayrıca çoğunlukla desteklenmesi gerekir.


22

Dan Weinreb (ne yazık ki geçen yıl vefat etti) bir genel bakış yazdı:

Lisp Anketi

CL uygulamaları arasında birçok fark vardır. Bir uygulamada bir Lisp sistemi için kullanıcıların tüm farklı ihtiyaçlarını (hız, boyut, lisans, fiyat, uyumluluk, işletim sistemi desteği, ...) karşılamak mümkün değildir. İnsanın, belirli bir felsefeyi izleyen mevcut uygulamalardan birini veya daha fazlasını kullanarak yerel bir optimum bulması gerekir:

  • ücretsiz, ücretsiz, C tabanlı (bu nedenle yaygın şekilde taşınır): ECL , CLISP

  • ücretsiz, ücretsiz, JVM tabanlı: ABCL

  • ücretsiz, hiçbir maliyetli, geniş yerli uygulanması: SBCL , CCL , CMUCL

  • tescilli, ticari, çok kapsamlı yerel uygulama, GUI tabanlı uygulamalar için mükemmel destek: Allegro CL , LispWorks

OS / Platform tarafından:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.