2010-07-25 39 views
39

Tôi nghĩ rằng tiêu đề là tự giải thích.Ngôn ngữ lập trình Go được viết bằng ngôn ngữ nào?

+14

Ý của bạn là "Trình biên dịch của Google cho ngôn ngữ lập trình Go được viết bằng ngôn ngữ gì?" Ngôn ngữ không được viết bằng ngôn ngữ. Triển khai là. –

+6

Có, tôi xin lỗi vì sự mơ hồ nhưng tôi nghĩ chúng tôi biết câu trả lời cho câu trả lời được chấp nhận làm rõ tất cả những gì bạn đang nói. – digiarnie

+2

Thay vì tự giải thích, tiêu đề bị nhầm lẫn về khái niệm. –

Trả lời

102

ngôn ngữ lập trình không phải là các chương trình, do đó họ không "viết" bằng ngôn ngữ nào. Chúng thường được mô tả bằng các ngữ pháp chính thức (ví dụ: BNF).

Thông dịch viên và trình biên dịch cho các ngôn ngữ lập trình chương trình và vì vậy phải được viết bằng một số loại ngôn ngữ lập trình.

Go có ít nhất hai trình biên dịch, gcgccgo. Cái cũ được viết bằng chữ C, nhưng bây giờ được viết bằng chính nó. Trong khi sau này là một lối vào gcc được viết chủ yếu bằng C++. Thư viện của Go được viết bằng Go.

+1

Họ sẽ đưa ra một trình biên dịch được viết bằng assembly? Tôi biết C là gần lắp ráp, nhưng từ một quan điểm hiệu suất, sẽ không hoàn toàn viết nó trong hội từ mặt đất lên là tốt nhất? – Cocksure

+5

@Cocksure Hiệu năng được thêm vào sẽ không đáng để đạt được trong khả năng duy trì. Và bất kỳ cách nào, điều duy nhất sẽ tăng tốc là thời gian biên dịch. – litelite

87

Look at the source and C for yourself, nếu tôi có thể nói.


EDIT Đội Go công bố vào tháng 12 năm 2013 rằng they will be transitioning the compiler to Go. Tính đến tháng 2 năm 2015, trình biên dịch độc quyền tự lưu trữ, khi triển khai C là deleted. Trình biên dịch mới được xuất xưởng lần đầu tiên với Go 1.5.

+21

+1 hoặc -1 cho groaner? –

+9

+1 cho groaner. Không ngần ngại. –

+0

thế nào ai đó có thể viết đi đi – shortCircuit

8

Nó được viết bằng C. Các thư viện được viết bằng Go chính nó.

Edit: Bây giờ các trình biên dịch đã được viết lại bằng Go, vì vậy nó có thể hoàn toàn tự lưu trữ.

+0

Tôi đã thực sự mong nó được viết bằng Go, sau khi được biên soạn lần đầu tiên. – cregox

+1

@Cawas Biên soạn lần đầu tiên bằng cái gì? Trước khi bạn có thể biên dịch bất kỳ chương trình nào được viết bằng X, bao gồm trình biên dịch cho X, bạn phải có trình biên dịch cho X được viết bằng một ngôn ngữ khác. Trong trường hợp này, ngôn ngữ đó là C. Cho một trình biên dịch cho Go được viết bằng C, tại sao viết một trình khác trong Go, đặc biệt khi trình biên dịch đó phải được sửa đổi khi ngôn ngữ được thay đổi? Go vẫn là một ngôn ngữ thử nghiệm, không ổn định và không đầy đủ - không tốt cho một ngôn ngữ để viết các bản ghi. –

+0

@Jim ý của bạn là gì? Đó là tất cả như bạn đã nói! Bạn vừa trả lời câu hỏi của riêng bạn cho tôi. Nhưng tôi không biết Go là một đứa trẻ như vậy. Tôi không bao giờ sử dụng nó và chỉ đơn giản là một người đam mê của bất cứ điều gì google. – cregox

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