Çalıştığınız dil bazı dildir varsayalım bölüm 4. Structure and Interpretation of Computer Programs bulunabilir, Lisp'i söylüyorlar. (C++, Java, Ruby, bir şey olabilir.)
Lisp uygulamanız var. Bu uygulamayı Imp olarak adlandırın (sadece IMPlementation için kısa ismi yazdı). Imp kendi içinde bir program olduğu için bilgisayarınız bunu çalıştırabilir. Artık Lisp'de Lisp için kendi uygulamanızı yazıyorsunuz ve buna Circ. Circ sadece Lisp kodundan derlenmiş bir programdır (ya da dilerseniz yorumlanır). Kodunuz yazılır, böylece bir dosyada okur, ayrıştırır (anlamlı veriye işler) ve verilerle bir şeyler yapar. Bu ne böyle? Circ durumunda, verileri yürütür.
Ama nasıl yapıyor?
Basit bir durumda, Circ'in okuduğu ve ayrıştırdığı kodun biraz matematik yapmak ve sonucu vermek gibi basit bir durum olduğunu varsayalım. Circ, kodu kullanımı kolay veriye dönüştürür (Lisp gibi bir dil için başlaması kolaydır, ancak bu noktanın ötesinde) ve saklar. Lisp'de kod numaralarını yazmak için kod yazabilirsiniz, böylece Circ için yazılmış olan kod, Lisp'de yazıldığından da bunu yapabilir. Böylece işlenen veriler, bazı ekleme işleme kodlarına takılı ... ve voila! Sayısal sonuca sahipsin! Sonra Circ programınız sonucu verir.
Aynı şey basit matematikten daha karmaşık şeylerle de yapılabilir. Aslında, dilin diğer yönlerini derleyebilir/yorumlayabilirsiniz. Bu 'diğer yönlerini' yeterince yazıp bunları birbirine yapıştırın, Lisp için yazılmış bir derleyiciyi edinin.
Derleyici, Imp tarafından derlendiğinden, makineniz tarafından ve presto! Bitirdiniz.
Bu sadece Rubinius örneğinde mi, yoksa kendi yorumculuğu yapan derleyiciler de, sadece bir şeylerin başlaması için başka bir dil kullanıyorlar mı? – joeellis
Rubinius yalnız değil. Bence daha derin bir konuyla ilgili yorum takiplerinde sorduğun soru. Yani, doğrudan cevaplamak yerine, dergi ile ilgili olarak wikipedia hakkında bu yazıya işaret ederdim. http://en.wikipedia.org/wiki/Compiler Bu soru için, "Derleme" ve "Derleyici Çıktısı" bölümlerine bakınız. – jefflunt