2011-12-17 33 views
6

Mặc dù Tóm tắt đại số Add-on là một gói đẹp cho Mathematica, imo không có gì mà nhịp đập GAP, ít nhất là không cho lý thuyết nhóm. Khi tôi nhìn Sage vài năm trước, tôi thấy rằng có một giao diện với Mma nhưng khi tôi nhìn nó gần hơn, nó hóa ra hơi thô sơ (nhưng hoạt động). Tôi biết rằng công việc đã được thực hiện tại Đại học Kỹ thuật Eindhoven (OpenMath) trên một nền tảng để tích hợp/giao tiếp với các công cụ toán học chính, thậm chí tôi bắt đầu làm việc trên nó. Nhưng công việc đó đã bị mất. Bây giờ cho câu hỏi của tôi:Mathematica và GAP: Có giao diện không?

Có, có ai có và bạn sẵn sàng chia sẻ, một giao diện giữa GAP và Mathematica?

+1

@Sjoerd chỉnh sửa tốt đẹp Tôi đã thực hiện một lúc trước. <: - o –

+0

@ mr.wizard Đêm nay đã muộn rồi. Xin hãy tha thứ cho tôi nếu tôi xuất hiện chậm. Bạn đang giới thiệu chỉnh sửa nào? –

+0

Tôi đã tạo lỗi ngữ pháp mà bạn đã sửa. Xem lịch sử chỉnh sửa cho toàn bộ câu chuyện. –

Trả lời

4

Một tùy chọn là sử dụng Sage làm trung gian. Sage có thể giao diện cả hai với MathematicaGAP.
Tôi tin rằng giao diện Sage với cả hai chương trình bằng cách:
a) chạy giao diện điều khiển của họ trong nền sử dụng pexpect
b) biết làm thế nào để dịch hầu hết các GAP và cú pháp Mathematica vào cú pháp có nguồn gốc của nó.

Lưu ý rằng tôi đã làm điều này một vài lần trước và nó hoạt động ok - nhưng nó có nghĩa là bạn không nhận được để sử dụng giao diện máy tính xách tay Mathematica ....

Một công cụ thực sự hữu ích sẽ được hook Mathematica lên đến expect (hoặc pexpect) để các giao diện tương tự cho các chương trình điều khiển có thể được viết cho Mathematica. Đây là cơ bản những gì trích dẫn thứ hai trong câu trả lời của Sjoerd là gợi ý.

+0

Tôi tìm thấy công việc đã được thực hiện về vấn đề này tại http://www.openmath.org/software/index.html, nhưng tôi nghĩ rằng dự án đã chết. Có lẽ tôi nên theo đuổi từ đó. –

+1

@nilo Có [Pythonika] (http://code.google.com/p/pythonika/) để giao tiếp với Python. Nó có thể làm cho nó dễ dàng hơn để sử dụng pexpect. Tôi đã xem cách Pythonika hoạt động vào ngày khác, và nó không truyền cảm hứng cho sự tin tưởng (ví dụ: sử dụng và loại bỏ các biến Global' và trông lộn xộn nói chung), nhưng nó hoạt động. Ngoài ra, pexpect dường như chỉ là Unix. – Szabolcs

+0

Cảm ơn. @Simon và (Szabolics). Tôi sẽ điều tra thêm, vì tôi sẽ làm một khóa học khác trong Lý thuyết nhóm vào năm tới, tôi có thể tự mình làm việc trên một Giao diện Mathematica/GAP. Với tất cả lời khuyên của chuyên gia của bạn, điều này có thể thực hiện được. –

6

Các GAP FAQ có vẻ là khá bi quan về vấn đề này:

8,1: Tôi có thể gọi các hàm GAP từ một chương trình khác?

Câu trả lời ngắn gọn là không. Để giải thích đầy đủ hơn một chút, về cơ bản, tất cả các chức năng đại số của hệ thống GAP được viết bằng ngôn ngữ GAP và do đó cần trình thông dịch GAP để chạy. Thông dịch viên được viết bằng C, nhưng không cùng tồn tại với mã khác trong cùng một quy trình vì một số lý do, vì vậy không có cách nào hợp lý để kết nối GAP vào C, Java hoặc chương trình khác dưới dạng thư viện con.

Có một số hy vọng, mặc dù:

gì bạn có thể làm là chạy GAP trong một quá trình con và giao tiếp với nó sử dụng đường ống, pseudo-ttys, FIFOs UNIX hoặc một số tương tự thiết bị. Chúng tôi đã thực hiện thành công trong một số dự án và bạn có thể liên hệ với danh sách hỗ trợ để được tư vấn chi tiết hơn nếu bạn muốn đi xuống tuyến đường này.

Cập nhật

Các câu hỏi thường gặp bây giờ cũng đọc:

Tương đối gần đây, một số các SAGE nhà phát triển đã tạo ra libGAP, cho phép toàn bộ hệ thống GAP được nhúng như một thư viện C . Tuy nhiên, người ta vẫn không thể tự mình nhúng các hàm riêng lẻ và lệnh gọi libGAP đầu tiên vẫn phải gọi trình tự khởi động GAP đầy đủ.

Ngoài ra, có một số cách để chạy GAP dưới dạng quy trình máy chủ và gọi nó từ chương trình C của C++. Xem gói SCSCP cho phía GAP. Có một số thư viện C và C++ triển khai phía máy khách.

+0

Tôi đã đi xa như vậy, một vài năm trước đây. Tôi đã sử dụng một chương trình Java làm trung gian. (Mã nằm trên PC cần sửa chữa.) Từ và đến GAP, bạn chỉ có thể đọc và viết chuỗi. http://www.openmath.org/software/index.html đã làm rất nhiều công việc về vấn đề này nhưng tôi nghĩ rằng dự án đã chết. –

+0

Ý tưởng về OpenMath được sử dụng thêm trong [Dự án SCIEnce] (http://www.symcomp.org/). Trang được liên kết chứa danh sách các hệ thống hỗ trợ giao thức SCSCP và cả triển khai GAP lẫn Mathematica đều có sẵn. –

+0

Trong thời gian chờ đợi, Câu hỏi thường gặp GAP được trích dẫn trong câu trả lời đã được cập nhật một chút: vui lòng xem [tại đây] (http://www.gap-system.org/Faq/faq.html#8.1). –

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