2010-01-14 21 views
9

Tôi muốn viết C trong biểu thức s và sử dụng các macro biên dịch. Có ai biết gì về điều này không? Nó nên dịch các s-biểu thức vào tiêu chuẩn C.Viết C làm biểu thức s

+3

Tại sao? ............ –

+0

Bạn có thể cho ví dụ về những biểu thức mà bạn muốn mã không? vatine đã đưa ra một ví dụ, nhưng bạn nói rằng nó không hoàn toàn là những gì bạn muốn. Nếu định dạng không quan trọng, thì bạn có thể giải thích tại sao bạn muốn viết nó như là các biểu thức không? –

+0

Trả lời

7
+0

Liên kết scexp không hoạt động nữa. Sử dụng http://super.para.media.kyoto-u.ac.jp/~tasuku/sc/index.html – whoplisp

+0

francogrex trên #lisp khuyên sử dụng http://www.isi.edu/isd/LOOM/Stella/ – whoplisp

+0

Liên kết đến kyoto-u.ac.jp không giống với dự án scexp (Nó cũng tạo ra C và khá lớn). Đây là một liên kết đến scexp: http://tenkan.org/~tim/scexp-0.9.tar.gz – whoplisp

2

Làm thế nào để bạn nghĩa là gì? Nội dung nào đó dọc theo dòng:

 
(c-expression 
    (int main ((int argc) ((array (pointer char)) argv) 
    (block 
     (printf "%d arguments\n" argc) 
     (if (argc >= 1) 
     (printf "The first arg is %s\n" (ref argv 1))) 
     (return 0)))) 
=> 
"int main (int argc, char *argv[]) 
{ 
    printf("%d arguments\n", argc); 
    if (argc >= 1) 
    printf(The first arg is %s\n", argv[1]); 
    return 0; 
} 

Nếu có, chắc chắn là có thể thực hiện được. Tuy nhiên, nó không hoàn toàn tầm thường.

+0

Sắp xếp như thế. Mặc dù tôi không nghĩ rằng phiên bản s-biểu hiện sẽ trông giống như một số trong những điều bạn đã làm ở đó. –

2

Có lẽ bạn muốn một cái gì đó giống như ECL, mà biên dịch Common Lisp để C.

0

Có một cái nhìn tại SC Tasuku Hiraishi của. Các giấy tờ Hội nghị Lisp Quốc tế của ông từ 20052007 được lưu trữ tại archive.org.

Xem source repo của mình, cụ thể là examples.

Để hiểu biết của tôi, đó là cách tốt nhất trong số nhiều nỗ lực để mang các thực hành mã hóa kiểu S-Expression để chịu đựng một dự án khác vani.

Các vấn đề liên quan