2010-01-14 39 views
15

Tôi đang nghiên cứu thương mại để phát triển Ada trên Linux. Bạn có bất kỳ đề xuất trình biên dịch/HĐH nào tốt không?Trình biên dịch Ada cho Linux

Cho đến nay, tôi đã có GNAT từ AdaCore chạy trên CentOS 5.4 và tôi có các yêu cầu cấp phép cho Rational Apex và Aonix ObjectAda.

Đây là nỗ lực chuyển vùng. Codebase gốc là Apex 3.0 trên OSF1 4.0d.

Bất kỳ điều gì khác mà tôi cần xem xét? Lý tưởng nhất, nó sẽ là một môi trường được hỗ trợ.

+5

Viết lại không phải là một tùy chọn. Đó là 1,5 triệu dòng mã. – Dave

+1

GNAT chạy trên Linux, nói chung, vì vậy bạn không cần phải lo lắng nhiều về một phân phối cụ thể. Trên thực tế, phiên bản FSF của GNAT được phân phối như là một phần của tất cả các bản phân phối Linux chính. Một hỗ trợ AdaCore GNAT có thể phân phối hạn chế hơn một chút, bạn phải kiểm tra với chúng. –

+1

Ồ, và tôi đã một mình chuyển 1.2 MSLOC of Ada (GNAT) và khoảng 200 KSLOC của C (gcc) từ Silicon Grahics/IRIX sang PC/Linux trong khoảng thời gian 4 tháng một vài năm trước. Các Ada mất khoảng 2 tuần, tôi bị mất nhiều tóc hơn phần còn lại ... (:-) –

Trả lời

12

Một vấn đề bạn cần cân nhắc là xác định mức độ hệ thống của bạn đang được chuyển sử dụng các gói do nhà cung cấp cung cấp để thực hiện chức năng của nó. Những gì tôi đã thấy với các hệ thống lớn hơn, đặc biệt là Apex, là một xu hướng cho các chuyên gia ngôn ngữ trong thời gian phát triển đã quyết định rằng vanilla Ada không đủ tốt và liên kết với tất cả các gói do nhà cung cấp cung cấp. Nếu đó là những gì hệ thống của bạn làm ngay bây giờ, đó là một lập luận mạnh mẽ để nâng cấp trong nhà cung cấp và gắn bó với Apex (tất cả những thứ khác chủ yếu bằng nhau).

Bất cứ khi nào tôi đã thực hiện cổng của các hệ thống như vậy, nếu có cơ hội tốt nhất để xé tất cả các công cụ do nhà cung cấp cung cấp - chín lần trong số mười thay thế công cụ của nhà cung cấp cụ thể với việc triển khai vanilla Ada cũng làm việc tốt, và bạn không còn phải đối phó với những điều kỳ quặc của một gói trình biên dịch cụ thể. Thêm vào đó, bạn tăng tính di động và khả năng bảo trì của hệ thống, cho phép nó thích nghi tốt hơn với những thay đổi trong tương lai.

trình biên dịch
+0

Cảm ơn bạn, đây là lời khuyên tuyệt vời để xem xét. Ngoại trừ bất kỳ đề xuất biên dịch mới đáng giá nào trong vài ngày tới, tôi sẽ đánh dấu đây là câu trả lời. – Dave

+0

P.S Tôi thấy hồ sơ của bạn ở Alabama và bạn trả lời câu hỏi của Ada. Bạn phải ở Hunstville, phải không? – Dave

+0

OK trong 1 :-) Bạn muốn thuê ngoài cổng? –

4

Luôn có SPARK, nhưng tôi tin rằng đây là phiên bản chuyên biệt/subsetted của ngôn ngữ Ada. Bạn có thể muốn liên hệ với SigAda hoặc nhóm Ada usenet để xem có ý tưởng nào khác không.

Thành thật mà nói, GNAT là một bộ công cụ tuyệt vời. Bạn có thể sử dụng GNATBench, một giao diện Eclipse, hoặc GPS, một GTK + IDE trọng lượng nhẹ, để giao tiếp với các công cụ GNAT.

+0

Có, GNAT đang tìm kiếm tốt cho đến nay. Tôi sẽ xem SPARK, cảm ơn. – Dave

+0

Bạn nói đúng; SPARK là một tập hợp con hoặc phần phụ của Ada. Dù sao cũng cảm ơn bạn. – Dave

+1

SPARK về mặt kỹ thuật là một hệ thống xác minh và phát triển phần mềm thống nhất sử dụng một tập hợp con Ada làm ngôn ngữ làm việc của nó. –

1

khác tôi biết là Green Hills AdaMULTI (ví RTOSes khác nhau), và DDC-I's SCORE (cũng cho RTOSes khác nhau)

+0

Vâng, tôi đã tìm thấy chúng, nhưng không có hỗ trợ Linux mà tôi có thể nhìn thấy. Điều đó gây ngạc nhiên cho tôi. – Dave

+0

Không hỗ trợ Windows thực, ngoại trừ mô phỏng đích. Hệ điều hành hàng hóa không phải là thị trường của họ, tôi không nghĩ vậy. –

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