Neden bir derleyici yazmanın işlevsel bir dil daha kolay?
Bu soru çok uzun bir süredir düşünüyorum, ama gerçekten Google cevap olarak Stackoverflow benzer bir soru bulamadım. Eğer bir çift varsa, bunun için özür dilerim.
Bir sürü insan Bunun ve Haskell gibi fonksiyonel dillerde Compiler ve diğer dil araçları yazmak çok daha verimli ve kolay olduğunu söylemek sonra zorunlu dilde yazmak gibi görünüyor.
Bu doğru mu? Ve eğer öyleyse, neden bu kadar etkili ve zorunlu bir dil, C gibi fonksiyonel dillerde yerine onları yazmak kolay mı? Ayrıca, işlevsel bir dil daha yavaş daha sonra C gibi düşük seviyeli bir dil bazı dil bir araç değil mi?
CEVAP
Bir kez derleyici sık ağaçlarla birlikte çok çalışıyor. Kaynak kodu sözdizimi ağacı ayrıştırılır. Bu ağaç yazın denetimi gerçekleştirmek için tür ek açıklamaları ile başka bir ağaca dönüşmüş olabilir. Şimdi sadece ağaç içeren temel dil elemanları (şeker gibi unsugared bir forma gösterimler sözdizimi dönüştürme) ağaca dönüştürmek olabilir. Şimdi temelde ağaç dönüşümleri çeşitli iyileştirmeler gerçekleştirebilir. Bundan sonra muhtemelen bazı normal şeklinde bir ağaç oluşturmak ve bu ağaç (derleme) hedef kodu oluşturmak için üzerinde yineleme sonra.
İşlevsel dil desen eşleştirme ve bu genellikle Derleyiciler yazmak için iyi bir dil olarak kabul ediyorlar bu yüzden ağaçları ile iş yapmak verimli özyineleme için iyi bir destek gibi özellikleri var.
Neden Lambda daha düz fonksiyonları da...
Neden ve Mercurial daha kolay Subversi...
Neden sıralanmamış bir dizi daha hızlı...
Neden baskı "B" baskı " ...
Neden bir döngü iki döngü daha yavaş g...