Bu yüzden şimdi haskell'de yazılmış oldukça eksiksiz bir LISP (şema) tercümanım var. Sadece eğlence için LLVM'ye derlemeyi denemek istiyorum. Kod oluşturma işleminin çoğu oldukça ileriye doğru görünüyor, ancak bir lambda
ifadesinin (lisp'de önemli bir tür)) nasıl oluşturulacağı ve bir define
ifadesiyle karşılaştığımda yığının nasıl yönetileceği konusunda bir kayıp yapıyorum.'lambda', 'define' için LLVM kodu oluşturma 'define'
Bu ifadeler için nasıl kod üretebilirim?
Not: Lambda ifadesinin gövdesi için kod üretebilirim, Kafamı karıştırmak, bu kodu bir yere nasıl koyabileceğiniz ve kalınabilir hale getirebileceğimizdir.
Kod oluşturmadan önce açık bir lambda kaldırma geçişi uygulamak isteyebilirsiniz (ve Şema olduğundan, bundan önce bir CPS dönüşümü gerçekleştirmiş olmanız muhtemeldir). . Sadece küresel işlevler ve açık bir kapatma envoronments tahsisi ile sizi bırakacaktır. –