Hangi Common Lisp?

0
zekzekus
Daniel Weinreb, buradan erişilebilecek şekilde, Common Lisp gerçekleştirimleri (implementasyonları) ile ilgili bir inceleme yapmış. İncelemeye konu olan Common Lisp gerçekleştirimlerinin sorumluları kendi gerçekleştirimlerini anlatmışlar. "Nedir bu Lisp? Ortada bir sürü Lisp var, hangisini seçmeliyim?" diyenler için özellikle az bilinen Common Lisp gerçekleştirimlerini de içermesi açısından güzel bir kaynak.
Not: Her ne kadar Common Lisp bir ANSI standardına sahip olsa da (ANSI standardı X3.226-1994) bu standardı uygulayan ticari ve özgür CL platformu üreticileri kendileri pek çok ek yapabiliyorlar.

Görüşler

0
FZ
zekzekus'a bu güzel haber için teşekkürler. Hiç fena bir inceleme değil. Türkçeye çevirmek için gönüllü olan var mı?
0
Tarık
GNU Clisp : GPL lisanslı ve Windows, Linux, Mac, Unix platformları için kullanılır durumda. Bunlar yeni başlayan benim için gnu clisp i seçmem konusunda bir kıstas olabilir mi? Yazıdaki kütüphane desteği tablosunda iki adet kütüphanenin gnu clisp tarafından kullanılamadığı belirtilmiş, bu benim için ne anlam ifade eder? saygı, sevgi...
0
FZ
Ben daha çok SBCL (Steel Bank Common Lisp) ve Allegro CL (Allegro Common Lisp) kullandım. GNU CLISP'i en son MS Windows'da Common Music ile Csound kontrol etmek için kullanmıştım ama pek deneyimim yok CLISP ile. Başlangıç için fena bir seçim değil gibi görünüyor. Daha sonra başka bir CL implementasyonuna geçerseniz zaten işler %99 aynı olacaktır.

Bu arada hangi kütüphaneleri desteklemiyormuş CLISP implementasyonu? Eğer sizin için kritik değilse şu anda kaale almaya değmez o eksikliği diye düşünüyorum.
0
Tarık
Bordeaux ve Hunchentoot tabloda 'No' olarak işaretlenmiş.

Bordeaux: Bordeaux, by Greg Pfeil, is a standard API for threads in Common Lisp.
Hunchentoot: Hunchentoot, by Edi Weitz, is a full-featured HTTP server.

Aslında ikinci(Hunchentoot) eksik "http sunucu" kütüphanesiymiş. yeni başlayan biri için pek bir ehemmiyet arzetmiyor sanırım.

Gerçi diğeride "threads" lerle ilgili ileri seviye bir konu. Onunda yeni başlayan için önemi yok gibi.
Bu durumda GNU Clisp uygunmudur sizce?
0
FZ
Bence uygundur. Daha sonra "thread" lazım olursa SBCL'e geçiş yapabilirsiniz. Onun kendi gelişmiş thread desteği var bildiğim kadarı ile. Keza Hunchentoot da SBCL ile çalışıyor olmalı. Dolayısı ile şimdi CLISP ile başlamak istiyorsanız başlayabilirsiniz. Adı üzerinde ANSI standardı olduğu için zaten Common Lisp spesifikasyonundaki her şey CLISP'te de uygulanmıştır, o bakımdan bir sorun yok yani.
0
Tarık
O halde win/lin üzerinde Emacs+Slime+CLISP uygundur deyip ortamı kuralım. teşekkürler...
0
FZ
Olur da bir sorun yaşar ve uğraşmak istemezseniz anahtar teslim paket çözüm var LispBox diye, ona da bakabilirsiniz.
0
Tarık
Bende tam apt ile 2 dk da nasıl common lisp çalışma ortamı kurulur makalesi hevesine girmiştim :D LispBox' a da bakalım.
0
FZ
Debian kullanıyorsanız herhangi bir zorluk ile karşılaşacağınızı sanmam Emacs, CLISP, SLIME, ve pek çok CL kütüphanesi apt-get ile kolayca kurulabilir. Kütüphane listesine bakmak için apt-cache search cl- gibi bir şey yazıp bakabilirsiniz cl- ile başlar hemen hepsi.
0
butch
Benim için yıllar önce hazırladığınız ama hakkını vermediğim bir belgeyi yapıştırayım buraya:

1- GNU Emacs


apt-get install emacs21


2-  Lisp ile ilgili paketler, sbcl  lisp derleyicisi, vs.:


 apt-get install cl-clx-sbcl

 apt-get install cl-uffi

 apt-get install sbcl

 apt-get install cl-faq

 apt-get install cl-mcclim

 apt-get install cl-mcclim-doc

 apt-get install cl-mcclim-examples

 apt-get install cl-ppcre


3- Dokümantasyon:


apt-get install cltl

apt-get install hyperspec


4- SLIME: Superior Lisp Interaction Mode for Emacs


Normal kullanici olarak:


$ export CVSROOT=:pserver:anonymous@common-lisp.net:/project/slime/cvsroot

$ cvs login


Parola sordugunda:


   anonymous


(eger olmazsa bir daha dene) Sonra da:


$ cvs checkout slime


Artik cok az kaldi. ~ yani home dizinine git, misal /home/boran ve bir .emacs dosyasi olustur normal kullanici

olarak:


$ emacs .emacs


ve icine sunlari yaz:


(setq inferior-lisp-program "/usr/bin/sbcl")

(add-to-list 'load-path "/home/fz/slime")

(require 'slime)

(slime-setup)


Tabii /home/fz/slime yerine slime dizinin neresi ise orayi yaz, ona dikkat et.


Kaydetmek icin:


C-x C-s


Sonra emacs'ten cik:


C-x C-c


Tekrar emacs calistir, sonra emacs icinde iken:


M-x slime


yaz. Burada M-x, Meta-x yani Meta tusu ile x tusu ayni anda basilacak manasinda.

Tarihi nedenlerden ötürü israrla ve inatla META key diyorlar, bizim PC klavyesinde

bu ALT tusuna karsilik geliyor yani M- gördügün her seyi ALT-  diye okuyabilirsin.


Neyse, slime bir süre calisir, kendini derler sbcl ile filan. Sonra da en altta böyle


*


yazar bekler, asagida da connecting filan der. Biraz bekle, sonra emacs'ten yine cik.

Tekrar gir:


emacs deneme.lisp


diye. Ardindan yine


M-x slime


de. Senin acmis oldugun hello.lisp bir yere kaybolmaz icin rahat olsun. Karsina


CL-USER>


seklinde Lisp interpreter satiri cikacak. hello.lisp'i görmek icin:


C-x b


yaz yani önce C-x bas, ardindan elini CTRL'den cekip b bas. Orada zaten

default olarak hello.lisp'e mi gecmek istiyorsun diye sorar. Enter basip gecebilir

ya da uzun uzun hello.lisp yazabilirsin. Simdi artik SLIME aktiftir ve hello.lisp

dosyani tam ekran görüyor olmalisin.


Full syntax highlighting icin Emacs'in Options menüsüne git ve $unlari sec:


Syntax Highlighting

Active Region Highlighting

Paren Match Highlighting


Sonra da yine ayni Options menüsünden Save Options de ki bir daha ki lisp oturumunda

gerekli özellikler acik gelsin, bir daha bunlari set etmek zorunda kalmayasin. Simdi

basit bir Lisp programi yazalim:


(defvar *my-global*)

(setf *my-global* 12)


gibi bir seyler yaz. Yani bir miktar gecerli Common Lisp kodu. C-x C-s ile kaydet. Simdi bu yazdigin kodu

calistirmak istiyorsun, nasil yapacagiz? Lisp dosyanin icinde calisirken:


C-c C-k     (load and compile file)


yazdigin anda Emacs ikiye bölünür, altta Lisp interpreter cikar, derledim, buyur senin girdini

bekliyorum der.


CL-USER>


iken mesela *my-global* yazip enter basarsan bunu EVALUATE eder, sana sonu

döndürür, sonra yukariki pencereye gidip (pencereler arasinda C-x o ile gecis yapabilirsin)

Lisp kodu yazip C-c C-k ile derleyip test edebilirsin.


Emacs ile isin bitince, yine alt kisma gec, ve virgül ba:


,


Command:


sorunca da en altta, o zaman quit de, SLIME'i durdur, sonra da C-x C-c ile emacs'tan cik.


Tabii


C-h t


ile Emacs tutorial'i mutlaka en az bir kez oku ve bir iki pratik yap, takildigin

bir sey ya da bir rahatsizligin olursa sakin ama sakin bana sormaktan cekinme.


Akabinde Practical Lisp'in ilk iki bölümünü oku ve uygula: Takildigin en ufak bir

sey bile olursa benim basimin etini yemekten cekinme, elimden geldigince yardimci olurum.


0
Tarık
:) Bu yazıya girilen tüm yorumlar ve önerilerle birlikte iyi bir makale ortaya çıktı. saygılar...
0
FZ
Bir ekstra tavsiye: CLISP ya da SBCL ya da CMU CL, sakın ola ki doğrudan komut satırından kullanmak gibi bir işkenceye katlanmayın. Mutlaka Emacs içinden SLIME ile entegre olarak kullanın (Çok az kullanılsa da VIM ve Eclipse alternatifleri de var ama pek tavsiye edilmez).
0
myavuzselim
Tabii ki emacs kullanin da, yeri gelmisken bir guzel programin adini vereyim: rlfe. Readline destegi olmayan programlari varmis gibi kullanabiliyorsunuz.

$ rlfe sbcl
0
realist
Bir de Linedit var, Emacs'a alışamayanların ilacı.
0
FZ
Bu arada bu tür sorularınıza daha detaylı cevap alabileceğiniz cs-lisp e-posta listesine abone oldunuz mu?

http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp
0
erhanbaris
merhabalar
benim lisp hakkinda ufak bir sorum olucakti.
bana kisaca lispi tam olarak hangi alanda kullanabilecegimi vede diger programlama dillerine gore farkinin ne oldugunu aciklarsaniz sevirim.
iyi gunler
0
FZ
Soru ufak lakin cevap büyük. Kısaca: Common Lisp'i aklınıza gelen hemen her alanda kullanabilirsiniz çünkü genel amaçlı yüksek seviyeli (ancak düşük seviyeli işler için de kullanılabilen) bir programlama dilidir. Diğer programlama dillerine göre farkına gelince, sorunuz yeterince açık değil, çok çeşitli diller var, Lisp'i ne ile kıyaslamak istiyorsunuz?

Sorunuza uzun cevap: Practical Common Lisp Tutorial
0
erhanbaris
mesela karsilastirmam c ile olabilir.
birde lisp ile yazilmis programlardan ornekte verebilirseniz cok makbule gecer :))

aslinda benim bunlari sorma amacim benim gibi diger kullanicilarinda akillarindaki sorularin azda olsa giderilmesi...
0
FZ
Diğer kullanıcıların bir kısmının benzer soruları Google'a soracaklarını ve mesela http://www.cliki.net/Application, http://common-lisp.net/, http://www.cliki.net/index ve http://planet.lisp.org/ gibi adresleri bulabileceklerini tahmin ediyorum.

C ile kıyaslamaya gelince, hangi açıdan kıyaslanması gerektiğini belirtirseniz belki bir kıyaslama yapılması mümkün olabilir.
0
erhanbaris
ben o bakimdan biraz tembelim galiba :)) hazir bilen varken sormak daha kolay geldi :)
neyse o zaman soyle sorayim.
lisp ile ayni c deki gibi bellek yonetimi yapabilirmiyiz. pointer kavrami varmi ?

isletim sistemleri arasinda tasinmasi mumkunmu. yani yazilan bir lisp kodunu ufak degisikliklerle her sistemde kullanma sansimiz varmi?
buyuk capli projelerde kullanilabilirmi?(yada su anda kullaniliyormu?)
aslinda karsilastirma ile benim aklima ilk bunun gibi sorular geliyor.
neyse baska soru yok :)
oburlerini ben arastiricam artik :)
tesekkurler
0
FZ
lisp ile ayni c deki gibi bellek yonetimi yapabilirmiyiz. pointer kavrami varmi ?

Yok.

isletim sistemleri arasinda tasinmasi mumkunmu. yani yazilan bir lisp kodunu ufak degisikliklerle her sistemde kullanma sansimiz varmi?

Evet.

buyuk capli projelerde kullanilabilirmi?(yada su anda kullaniliyormu?)

Evet.

aslinda karsilastirma ile benim aklima ilk bunun gibi sorular geliyor. neyse baska soru yok :) oburlerini ben arastiricam artik :)

Takıldığınız bir yer olursa Usenet'teki comp.lang.lisp alanında (şimdiki gençler burayı Google Groups olarak da bilir) yahut irc.freenode.net IRC sunucusundaki #lisp kanalında sorabilirsiniz.
0
thorin
Merhabalar arkadaşlar.
Çok uzunca bir cevap yazmıştım ama ne yazık ki yollayamadan dikkatsizlik eseri kaybettim. Sadece şunu eklemek istiyorum ; CLtL1 uyumlu olan ancak GCC ile mükemmel bir performans yakalayan GCL'nin bu araştırmada ele alınmamasına bozuldum. Maxima gibi kocaman bir sistemin asıl yapıtaşı olan GCL'dir. Benim kaybettiğim yorumum yeni başlayanlar için CL'de derlenme ile ilgili merak ettiklerinize değiniyordu ama artık bir comp.lang.lisp 'e bir göz atarsınız. Yeni başlayanlar Emacs+Slime+CMUCL(SBCL) veya Emacs+Ilisp+GCL öneriyorum. Ama dediğim gibi GCL'nin ANSI uyumluluğunda bir sıkıntı var ve şu an aktif geliştiricilerinden ses çıkmıyor (hatta gcl-dev listesinde Gentoo Lisp grubunun GCL'den desteğini çekeceğini bile yazdılar). Bu kadar kaliteli açık kaynak kodlu ve özgür implementasyonlar var ancak en aktif şu anda SBCL görünüyor. Umarım CMUCL ve GCL sessizliğe gömülmez. Çok yaşa Common Lisp!
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Barack Obama'yı Semantik Web Üzerinden Lisp ile Sorgulamak

FZ

Öyle bir veri tabanı düşünün ki şu sorunuza doğru cevaplar veriyor: "Barack Obama nerede doğmuştu? (Nerede dünyaya gelmişti diye de yazabilirsiniz) Doğduğu yere 15 km uzaklıktaki şehirler ve kasabalar hangileri idi? 2000 yılında bu yerleşim yerlerindeki ortalama fakirlik seviyesi ne idi?"

Bunu tek bir ilişkisel veri tabanı ile kolayca yapabilir misiniz? Yahut daha doğru soru: Neden tek bir veri tabanı olsun ve bu neden ilişkisel olsun? Buyrun semantik web ve RDF kullanın. Nasıl mı?

Core-Server GNU/Linux Installer

anonim

Hemen herkesin bir miktar güçlük yaşadığı Common Lisp tabanlı web sunucu kurma problemini halledeceğini umdugum yazılımı sizlerle paylaşmak isterim.

http://www.core.gen.tr/projects/core-server-installer-latest.tar.gz*

Hata bildirilerinizi evrim _at_ core.gen.tr adresine gonderebilirsiniz.

*: Gentoo, Debian ve Ubuntu GNU/Linux dağıtımları için test edildi

Lisp Resource Kit: Canlı Canlı Lisp ;-)

FZ

LispNYC ve ALU tarafından geliştirilmiş olan The Lisp Resource Kit boot edebilen Debian GNU/Linux tabanlı Knoppix kullanılarak hazırlanmış bir Lisp tanıtım, eğitim öğretim CDsi. Her türlü deneyimden insana Common Lisp programlama dilini ve teknolojilerini tanıtmak amacı ile hazırlanmış ve ekran görüntülerine buradan ulaşabileceğiniz bu CDdeki yazılımların birkaçına örnek vermek gerekirse:

Object Persistence ve Lisp - Dabble ve Smalltalk

FZ

Şimşekleri üstüme çekmek pahasına böyle bir başlık atıyor ve diyorum ki Bill Clementson yine yapacağını yapmış ve acayip videolar hazırlamış.

Konu bu aralar pek bir revaçta olan ve "e peki nasıl yapacağız biz bu object persistence, serialization işini?" sorusu ile gündeme gelen konu. Bill Clementson en son gerçekleştirdikleri Vancouver Lisp Kullanıcıları Grubu Toplantısı çerçevesinde AllegroCache ile ilgili bir video hazırlamış.

Paul Graham’ın Startup Destek Şirketi İlk Meyvelerini Veriyor

FZ

Paul Graham'ın startup şirketlere destek olma amacı ile kurduğu Y Combinator* ilk meyvelerini vermeye başladı.

Y Combinator'dan aldıkları destekle bir şirket kuran iki genç üniversite mezunu http://reddit.com sistemini devreye soktular.

Hedeflerinde kısaca şunu diyorlar: "Her Internet kullanıcısının ana sayfası olmak istiyoruz." İnsanda Google çağrışımı yapan bir cümle, öte yandan sitenin sadeliği ve işlevselliği de Google'ı hatırlatmıyor değil. Fikir çok özgün değil, yeni Internet siteleri, haberler, yazılar, kısaca URLsi verilebilecek herhangi bir şey. Gönderdiğiniz haberin popülaritesi diğer üyeler tarafından belirleniyor. Buna göre sizin popülariteniz, vs. de belirleniyor. Kullanılan "karma" sözcüğü de doğrudan Slashdot'u çağrıştırmakla birlikte /. editör kaprislerinden ve yorum kirliliğinden uzakta, yepyeni bir kavramı hayatımıza katabilir.