Tôi đoán không có công cụ chuyển đổi mã nguồn (C sang Go) nào tồn tại ngày hôm nay. Bạn có thể xem xét để làm cho công cụ chuyển đổi của riêng bạn. Câu hỏi trở thành: liệu nó có xứng đáng không, và làm thế nào để làm điều đó?
Nó có thể không đáng để thử, bởi vì Go và C có thể bằng cách nào đó tương thích với nhau. Ví dụ: nếu bạn sử dụng GCC 4.6 (hoặc sẽ được phát hành 4.7, tức là ảnh chụp nhanh mới nhất), bạn có thể liên kết C & Nhập mã cùng nhau, với một số sự cẩn thận.
Tất nhiên, như thường lệ, điều ác là trong các chi tiết.
Nếu bạn muốn chuyển đổi, bạn có muốn mã Go có thể đọc được và có thể chỉnh sửa được không (do đó nhiệm vụ khó khăn hơn, vì bạn muốn giữ cấu trúc của mã và bạn cũng muốn giữ các nhận xét)? Trong trường hợp đó, bạn có thể cần trình phân tích cú pháp C của riêng bạn (và đó là một nhiệm vụ khó khăn).
Nếu bạn không quan tâm đến khả năng đọc của mã Go được tạo, bạn có thể mở rộng trình biên dịch hiện có để thực hiện công việc. Ví dụ, GCC có thể mở rộng các plugin hoặc thông qua các phần mở rộng MELT, và bạn có thể tùy chỉnh GCC (với MELT, hoặc C của riêng bạn cho GCC) để chuyển đổi biểu diễn Gimple (biểu diễn chính bên trong cho các lệnh bên trong GCC) thành mã Go không đọc được. Điều này bằng cách nào đó đơn giản hơn (nhưng vẫn yêu cầu nhiều hơn một tuần làm việc).
Tất nhiên, chuyển giao diện, kênh và thậm chí quản lý bộ nhớ (bộ nhớ thu thập rác) không có đối sánh C chuẩn.
Nguồn
2012-01-09 13:27:58
Tôi đã không nhìn thấy một công cụ phù hợp với yêu cầu của bạn, và điều này nghe có vẻ giống như một yêu cầu để có một văn bản bạn, có thể không thực sự phù hợp với trang web này. –
@JoachimIsaksson Đã tồn tại các câu hỏi như "C tới Java" hoặc "C tới Perl". Câu hỏi này không khác. –
Tại sao bạn hỏi? Việc kết hợp mã C & Go có đơn giản hơn không? (GCC 4.7 có một giao diện người dùng không hoàn hảo, vì vậy đôi khi có thể) –