Meta-programlama sanatı

0
tongucyumruk
IBM DeveloperWorks'te yayınlanan makalesinde Jonathan Barnett meta-programlama ve makro işleme konularını incelemiş. Yazının içinde CPP ve M4 gibi çeşitli makro dillerinden örnekler ve son olarakta Scheme ile yazılmış makrolardan bahsediliyor. Özellikle diğer dillerdeki makrolar ile Lisp ailesindeki dillerin makroları arasındaki farkı anlayabilmek için okunması gereken bir makale.

İlgili Yazılar

PL/scheme: PostgreSQL için Scheme

FZ

cs-lisp e-posta listesinde Volkan Yazıcı tarafından geliştirilen PL/scheme projesinin duyurusu bugün yapıldı.

eXtreme Programming ve Bir Başarı Öyküsü

FZ

Bill Clementson son blog girdilerinden birinde birkaç gün önce gerçekleştirdikleri etkinlikte sunum yapan ve bir başarı öyküsü aktaran Ken Dickey'e yer vermiş.

Avustralya kökenli başarılı bir start-up olan Memetrics'in öyküsünü çarpıcı bir dille anlatan Dickey, eXtreme Programming metodolojisi ve Common Lisp'ten faydalanarak geliştirdikleri sistemi anlatan güzel bir sunum hazırlamış.

Keskin rekabetten ve gizli silahların gücünden hoşlananlar için incelenesi bir örnek. Afiyet olsun.

Fonksiyonel Geometri, Lisp, Escher, Postscript: Sanat ve Bilgisayarlar

FZ

Daha önce FM'de bir Mars programlama projesi yarışması bağlamında adı geçen Frank Buss bu sefer de gündemimizi Peter Henderson'ın makalelerinden uyarladığı ve Common Lisp kullanarak gerçekleştirdiği bir fonksiyonel geometri uygulaması ile meşgul ediyor. Fonksiyonel programlamanın grafik uygulamalarını kullanarak anlaşılması bakımından çarpıcı bir örnek. Program çıktısını Postscript olarak üretiyor.

Söz konusu grafik yapılar pek çok matematikçinin ve diğer bilim insanlarının da hayranlığını kazanan Hollandalı meşhur sanatçı M. C. Escher'in yapıtlarından esinlenerek hazırlanmış.

Lisp - Asla Ölmeyecek Olan Dil

FZ

ESR bir oyun ile ilgili grafik işlerini halletmek için GIMP kullanmaya başlamış ve bazı şeyleri otomatikleştirmesi gerekince GIMP'in nasıl programlanabileceğine göz atmış. Karşısına çıkan Script-Fu ortamında Scheme ile karşılaşınca kendini evinde gibi hissetmiş ve LISP — The Language That Will Not Die başlığı altında düşüncelerini ve yazdığı kodu paylaşmış.

Not: cs-lisp listesinde haber verdiği için için Recai Oktaş'a teşekkürler.

Common Lisp ve Bir Optimizasyon Tekniği: Memoization

FZ

"Memoization" tabiri bilgisayar bilimlerinde ilk kez Donald Michie'nin 1968 yılında Nature dergisinde yayımlanan Memo functions and machine learning (Memo fonksiyonları ve makina öğrenimi) makalesi ile gündeme gelmiştir.

Memoization tekniği bir fonksiyonu hesaplarken önceden hesaplanmış değerleri hesaplamadan kullanmak, dolayısı ile işlemi hızlandırmak olarak tarif edilebilir. Sözcük olarak "memorization"ı yani "ezberleme" eylemini çağrıştırmakla birlikte daha genel bir anlamı kapsamaktadır.

Programlama dilinden bağımsız olmakla birlikte, bu yazıda "memoization" tekniğinin Common Lisp'te nasıl kullanılacağına bakacağız. Bunun için Peter Norvig'in PAIP kitabı ana eksenimizi oluşturacak.