2012-04-22 27 views
19

Tôi muốn tạo mã cho một ngôn ngữ khác trong Haskell, nhưng tôi đã phân vân về cách để tiếp cận vấn đề này. Tôi đang tìm kiếm một đại diện trừu tượng và thanh lịch của ngôn ngữ trong Haskell, cũng hữu ích cho việc tạo mã. Ngôn ngữ được đề cập là InstallScript (link đến hướng dẫn tham khảo ngôn ngữ). Có thể ai đó vui lòng cung cấp gợi ý (có thể với các ví dụ?) Về cách nắm bắt các cấu trúc ngôn ngữ được sử dụng trong InstallScript trong các loại Haskell, hoặc trỏ đến các dự án tương tự cho cảm hứng?Tạo mã cho một ngôn ngữ khác trong Haskell

+6

Bạn chỉ cần xác định và triển khai các kiểu trừu tượng để thể hiện cây cú pháp trừu tượng của ngôn ngữ đối tượng (InstallScript) và để có các máy in đẹp thích hợp, v.v. –

+0

@BasileStarynkevitch: bạn có thể trỏ tới các dự án thực hiện điều này không? Tôi đang tìm kiếm các ví dụ và thủ thuật thông minh ... – akosch

+5

Bạn có thể muốn xem [gói nsis] (http://hackage.haskell.org/package/nsis-0.1.2). – bzn

Trả lời

17

Đây là sự cố classic để giải quyết trong Haskell.

  • Xác định một cây cú pháp trừu tượng cho ngôn ngữ của bạn
  • Xác định một máy in khá (để tạo ra mã)

Đối với điểm thưởng:

  • Xác định một phân tích cú pháp
  • Viết một thư viện tổ hợp Haskell đẹp để cho phép bạn nhúng mục tiêu vào Haskell
  • Viết trình tối ưu hóa cho cú pháp trừu tượng của bạn

many, many examples trên Hackage (ví dụ: this one).

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