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

Google AI Yarışması Birincisi: Gábor Melis (ve Common Lisp)

FZ

Bir süreliğine dünyanın çeşitli yerlerindeki programcılara uykusuz ve adrenalin dolu geceler geçirten, eğlendirirken öğreten ve sosyal içerikli mesajlar içeren Google AI yani Google Yapay Zeka programlama yarışmasının birincisi Macar programcı Gábor Melis oldu. Melis yarışmayı Common Lisp dilinde geliştirdiği sistem ile kazandı.

Kor Bilişim'den DOM Programlama Araçları

aycanirican

DOM modelinin kısmi bir gerçekleştirimi artık Core Server projesi ile beraber geliyor. Bu araçla, birinci dereceden DOM nesneleri yaratabiliyor, parametrik DOM üreten fonksiyonlar tanımlayabiliyorsunuz. Öyle ki, tanımladığınız DOM yapısını javascript betiğine çevirip, web tarayıcının kullanabileceği bir hale getirebiliyorsunuz. Örnekler için Dom Programming belgesine bakabilirsiniz.

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ış.

Core Uygulama Sunucusu Kurulumu

anonim

Common Lisp tabanlı uygulama sunucumuzu ücretsiz olarak deneyebilirsiniz. Bunun için yapmanız gerekenlerin anlatıldığı belgeye göz atabilirsiniz.

Günümüzde üretilen yazılımların çoğu web uygulamaları şeklinde ya da web servisleri olarak hizmet vermektedir. Web uygulamaları, erişilebilir, birden fazla kişinin kullanımına elverişli ve merkezi olarak güncellenebilir servislerdir.

Gelecekte oldukça fazla web uygulaması ve web servisi yazacağımız düşünüldüğünde bu konuda bize yardımcı olacak araçlar üretmek iyi bir yatırım olacaktır. Bu nedenle yazımda sizlere Common Lisp dili ile yazılmış bir web uygulama sunucusu olan Kor Web Uygulama Sunucusu'nu tanıtacağım.

More Lisp—For Free ve Birkaç Lisp Makalesi

FZ

O'Reilly her ne kadar Lisp kitabı basmak istemese de O'Reilly yazarları Lisp'ten daha sık bahsetmeye başladı. En son Christopher Roach, More Lisp—For Free başlıklı bir yazı yazmış.

Lisp ile ilgili bir başka makale: Generating HTML with Lisp - a tutorial for new programmers. Gene Michael Stover'ın diğer Lisp makaleleri de okunmaya değer.