Global Mod
Global Mod
RTFM #5: Bilgisayar Programlarının Yapısı ve Yorumlanması (SICP)
RTFM serisi, düzensiz aralıklarla geliştiriciler için zamansız ve tavsiye edilen kitaplar içerir. Bunlar çoğunlukla ders kitaplarıdır, ancak bazen romanlara da yer verilir. Bugünün konusu Hal Abelson, Gerald Jay Sussman ve Julie Sussman’ın “Bilgisayar Programlarının Yapısı ve Yorumlanması”.
Bu format, genellikle genel olarak daha iyi bir geliştirici veya genel olarak daha iyi bir geliştirici olmaya katkıda bulunabilecek kitaplarla ilgilidir. Odak noktası, kavramsal ve metodolojik bilgiyi ele alan zamansız kitaplardır. Bu tür bilgiler, mevcut dil kitaplarından ve sürümlerinden çok daha uzun bir yarı ömre sahiptir.
Zamansız kabul edilen kitaplardan biri Hal Abelson, Gerald Jay Sussman ve Julie Sussman tarafından yazılan “Structure and Interpretation of Computer Programs” (kısaca “SICP”). 1979’dan kalmadır ve kapağı nedeniyle genellikle saygıyla “büyücü kitabı” olarak anılır. Kitap ne hakkında?
Desene giriş
Bu sorunun cevabı şaşırtıcı derecede karmaşıktır. İlk bakışta bu, Lisp’in bir lehçesi olan Scheme’ye bir giriş niteliğindedir. Bununla birlikte, odak noktası programlamanın arkasındaki kavramlardır ve bu konular çok önemlidir.
İlk bölüm, programlamada temel olarak üç seviyeyle uğraştığınız teziyle başlar: birinci seviye bireysel küçük yapı taşlarıdır, ikinci seviye bu yapı taşlarının birleşimidir ve üçüncü seviye soyutlamadır – ki bu da soyutlamadır. daha yüksek bir seviyede başka bir yineleme oluşturmak için temel. Bu desen, kitap boyunca kırmızı bir iplik gibi ilerliyor ve farklı bakış açılarından kendini tekrar ediyor.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
RTFM #5: SICP
İlk olarak, ifadeler, birleştirilebilen ve işlevler halinde özetlenebilen yapı taşları olarak tanıtılır. İşlevler, yalnızca işlevsel-matematiksel perspektiften ele alınır; bu da sonuçta özyineleme, yineleme ve karmaşıklık yoluyla daha yüksek düzeyli işlevler aracılığıyla soyutlamaya yol açar.
Yaklaşık 100 sayfalık bu ilk bölümde ele alınan konular, çok yüksek bilgi yoğunluğuyla ayırt edilir: diğer kitaplar, aynı içerik için daha az ayrıntıyla çok daha fazla sayfa gerektirir. SICP, nispeten kompakt ve aynı zamanda ayrıntılı olmayı mükemmel bir şekilde dengelemeyi başarıyor.
kod… ve veri
Birinci bölüm fonksiyonlarla ilgilenirken, ikinci bölüm yapılar ve veri tipleriyle ilgilidir. Bu amaçla önce rasyonel sayılar için ayrı bir veri tipi tanıtılmış, ardından üzerinde aritmetik işlemler tanımlanmıştır. Bu işlevler başlangıçta verilerden ayrılmıştır ve henüz birlikte kapsüllenmemiştir.
Yine yapı, daha karmaşık yapılar oluşturmak üzere birleştirilen basit yapı bloklarıyla (yani veri değeri çiftleri) başlar ve veriler nihayet soyutlanana kadar: bu amaçla SICP, “Doğrudan verilerden programlama” denen şeyi sunar. “Etiketli Veri” terimi, işlemlerin genel bir şekilde nasıl uygulanabileceğini, her bir kombinasyonu ayrı ayrı programlamak zorunda kalmadan farklı türlerin birlikte kullanılabileceğini gösterir.
Değişkenler, Atamalar ve Durum
Son olarak, üçüncü bölüm değişkenleri ve atamalarını tanıtıyor, ancak aynı zamanda bunlara eşlik eden sorunu, yani zaman içindeki değişikliklerin artık dikkate alınması gerektiğinden ifadelerin değerlendirilmesinin çok daha karmaşık hale gelmesi sorununu doğrudan ele alıyor. Sadece ilk bölümü değerlendirmek artık yeterli değil, bunun yerine Scheme’ın sözlüksel kapsamı ile yakından ilgili yeni bir çerçeve tabanlı modele ihtiyaç var.
Bu, listeler, sıralar ve tablolar gibi daha karmaşık veri türleri ve durumları için temel oluşturur. Tüm bu yapılar, paralel yazma erişimlerinin çakışmalara yol açabileceği değişken veriler olarak ele alınır. Bu nedenle, bölüm aynı zamanda veri hücumları, kilitlenmeler vb. ile nasıl başa çıkılacağı sorusunu da ele almaktadır.
Gecikmeli listeler olarak uygulanan akışlar bölümü tamamlar. Değerlendirilme biçimleri nedeniyle, JavaScript’teki oluşturucu işlevlerini veya Haskell’deki tembel değerlendirmeyi çok anımsatırlar.
Şema için bir tercüman…
Dördüncü bölüm, üstdilsel soyutlamayı ele alır ve Scheme for Scheme tarafından yazılan bir tür yorumlayıcı olan Metacircular Evaluator’ı tanıtır. Scheme’de yazılan kod, daha yüksek soyutlama katmanına giden yolda veri haline gelir, bu da sonuçta kodun ve verilerin bir olduğunu çok iyi gösterir: neyin yalnızca perspektife bağlı olduğu.
Yol boyunca, Şema daha sonra bölümün geri kalanında da yapılan küçük alana özgü diller gibi ek özellikleri içerecek şekilde genişletilebilir. Tembel değerlendirme için bir uzantı geliştirildi, biri deterministik olmayan davranış için ve son olarak da mantıksal programlama için Prolog’a benzer.
Tüm bu konular kesinlikle bir “Şemaya giriş” kapsamı dışındadır. Oldukça karmaşık ve zorlayıcıdırlar, ancak son derece ilginç ve öğreticidirler.
… ve bir derleyici
Beşinci ve son bölüm ise taçlandıran zaferdir: Burada, Scheme’de kendi birleştirici lehçesini anlayan bir derleyici içeren bir kayıt makinesi geliştirilir ve ardından bu sanal makine üzerinde kod çalıştırılır. Beşinci bölüm, dördüncüyü yorumlayıcıdan derleyiciye yükseltir.
Derleyiciler oluşturma, sanal makineler geliştirme, bellek yönetimi ve benzeri konular hakkında çok şey öğreniyorsunuz; bunlar prensip olarak hemen hemen her programlama dilinin temelini oluşturur, ancak bunlarla herhangi bir dilde neredeyse doğrudan temas kurmazsınız.
Gerçek içeriğe ek olarak, kitap binlerce olmasa da yüzlerce alıştırma içerir. SICP ile ciddi bir şekilde çalışmak istiyorsanız çok zamana ihtiyacınız var ama buna değer çünkü inanılmaz miktarda öğreniyorsunuz. Bir programlama dili olarak şema neredeyse önemsiz hale gelir – kitabın gerçek değeri daha derindir.
Çözüm
SICP kesinlikle programlama üzerine yazılmış en iyi kitaplardan biridir. Her geliştirici, en sevdiği programlama dili ne olursa olsun, en azından bir kısmını okumuş olmalıdır.Özellikle ilk üç bölüm, bir dizi önemli konuya ilişkin kompakt bir içgörü biçimi sunar.
Kitabı gerçekten anlamak için hala birden çok kez okumanız gerektiğinden, uygulamalı alıştırmaları doğrudan yapmadan önce onu okumak mantıklıdır, böylece ne bekleyeceğiniz konusunda bir fikir ve genel bir bakış elde edersiniz. ikinci koşunun egzersizleri üzerinde çalışın.
Sonuç olarak, SICP çok net bir satın alma ve okuma tavsiyesidir: Satın almaya alternatif olarak, yayıncının web sitesinde HTML biçiminde ücretsiz okuma için de bulabilirsiniz.
()
Haberin Sonu