Merhaba e-bergi okurları, bu ilk yazımda Lisp programlama dilinden bahsedeceğim. Lisp(Locator/Identifier Separation Protocol) ilk fonksiyonel programlama dilidir. 1958 yılında yapay zeka(artificial intellingence) teriminin yaratıcısı olan John McCarthy tarafından yapay zeka uygulamalarında kullanılmakla birlikte birçok probleme etkin çözümler bulabilmek için geliştirilmiştir. En eski ve en güçlü programlama dillerinde kabul edilen Lisp bilinenin aksine liste tabanlı bir programlama dili değildir. Lisp structures, çok boyutlu dizeler, nesneler, karakterler gibi diğer dillerinde sağladığı birçok yararlı özelliğe sahiptir. Ayrıca en az sınırlayıcı syntaxlara sahip olması Lisp’in en önemli avantajlarından biridir.
Lisp, bir programlama dilinden çok diller ailesidir ve bu ailenin en bilinen ve kullanılan lehçeleri Scheme ve Common Lisp’tir.Scheme 1970li yılların ortasında MIT profesörleri Guy Lewis Steele ve Gerald Jay Sussman tarafından nesne-yönelimli programlamayı(object-oriented programming) anlamak ve Lisp’e dahil etmek için geliştirilmiştir. Scheme, MIT ve Orta Doğu Teknik Üniversitesinde bir süre programlamaya giriş derslerinde öğretilmiştir.1970li yılların sonlarında, Lisp’in birçok türevi bulunmaktaydı. Bu abartılmış çeşitliliğe çare olarak ortaya çıkan Common Lisp ise türevlerinin avantajlarının birleştirildiği ve dezavantajlarının giderildiği bir Lisp versiyonudur. Ek olarak, Lisp’in Emacs Lisp, AutoLisp ve Lush gibi türevleri de mevcuttur fakat bunlar daha çok sınırlı, belirli alanlara özgü lehçelerdir.
Lisp dillerini öğrenmek diğer C, Java ve Perl gibi dilleri öğrenmekten zor değildir. Lisp diğer diller gibi sınırlayıcı değildir, basit ve esnek bir yazımı vardır. Değişkenleri liste olarak kabul eder ve değişkenleri programın çalışır hale gelmesi için kendisi tanımlar. Ayrıca dinamiktir; bütün girdiler her yönüyle değitirilebilir, beklenmedik bellek hatalarına ve çakışmalara asla iznin vermemekle birlikte geliştirilmiş bir hata tutma sistemine de sahiptir.
Peki Lisp ve türevlerini nerelerde kullanabiliriz? Lisp ve diğer çeşitleri nesne- yöntemli programlamada veya yapay zeka uygulamaları geliştirmek istersek kullanmamız gereken programların arasında yer alır. Özellikle gerçek dünya uygulamaları yapacaksanız Common Lisp’i, akademik çalışmalar yürütmek isteyenlere ise Scheme önerilebilir. Aslında her iki dilde çalışmalarda ve gerçek dünyada kullanılmak için uygun fakat ben size ihtiyaçlarınıza uygun olan dili seçmenizi tavsiye ederim.
Gelelim gerçek dünya uygulamalarına, bunlar Lisp’i tanımlarken de bahsettiğim yapay zeka uygulamalarıdır. Bu uygulamalar, makinelerin karşılaştığı karmaşık problemlere insanlar gibi mantıklı çözümler üretebilmesi için insan zekasının karakteristiği alınıp, bilgisayara algoritma olarak uygulanarak geliştirilir ve bu uygulamaları günlük hayatımızın hemen hemen her anında kullandığımız teknolojik aletlerin hepsinde bulabiliriz; bunlar her an elimizde olan telefonlarımızda, günlük ev işlerinde kullandığımız beyaz eşyaların çoğunda ve hatta savunma ve sağlık alanlarında kullanılan uygulamalardır.
Ve son olarak Lisp dillerini nasıl öğrenilebileceğimizi açıklayıp, yazımı burada sonlandıracağım. Aslında Lisp öğrenirken ihtiyacınız olan tek şey Lisp dillerinden ihtiyacınıza en uygun olanın kurulu olduğu bir bilgisayar diyebiliriz. Geriye kalan herşey kendi keşiflerinizle ve internette ufak çaplı bir araştırmayla hallolmayacak işler değildir. Araştırırken de görebileceğiniz gibi Lisp dilleri hakkında birçok yazılı ve görsel Türkçe-İngilizce kaynak bulabilir ya da videolu anlatımlardan yararlanarak başarılı bir Liper olabilirsiniz. Ve artık size, yeni Lisp uygulamalarınızda başarılar diliyorum.