Ngôn ngữ cơ sở của Python


Câu trả lời:


122

Bạn không thể nói rằng Python được viết bằng một số ngôn ngữ lập trình, vì ngôn ngữ Python là một ngôn ngữ chỉ là một tập hợp các quy tắc (như quy tắc cú pháp hoặc mô tả về chức năng tiêu chuẩn). Vì vậy, chúng tôi có thể nói, rằng nó được viết bằng tiếng Anh :). Tuy nhiên, các quy tắc đã đề cập có thể được thực hiện trong một số ngôn ngữ lập trình. Do đó, nếu bạn gửi một chuỗi như 'import this' tới chương trình được gọi là thông dịch viên đó, nó sẽ trả về cho bạn "Zen of Python".

Vì hầu hết các hệ điều hành hiện đại được viết bằng C nên các trình biên dịch / thông dịch cho các ngôn ngữ cấp cao hiện đại cũng được viết bằng C. Python không phải là một ngoại lệ - cách triển khai "truyền thống" phổ biến nhất của nó được gọi là CPython và được viết bằng C.

Có các cách triển khai khác:

  • IronPython (Python chạy trên .NET)
  • Jython (Python chạy trên Máy ảo Java)
  • PyPy (Triển khai python nhanh với trình biên dịch JIT)
  • Stackless Python (Nhánh CPython hỗ trợ vi luồng)

4
Lưu ý rằng PyPy được viết bằng RPython.
Marcin

36

Các nguồn được công khai . Python được viết bằng C (thực tế việc triển khai mặc định được gọi là CPython).


16

Python được viết bằng tiếng Anh. Nhưng có một số cách triển khai:


2
Trên thực tế PyPy được viết bằng RPython
Jakob Bowyer

Tôi không biết nhưng CPython bằng cách nào đó là cách triển khai chậm nhất. blog.dhananjaynene.com/2008/07/…
Dewsworld

@JakobBowyer Bạn có thể thực thi PyPy bằng CPython nên hoàn toàn đúng khi nói nó được viết bằng Python. Thực tế là vì lý do hiệu suất, nó chỉ sử dụng một tập con của Python là một chi tiết triển khai nhiều hơn (nhưng là một chi tiết rất thú vị và đáng chú ý).
Duncan,

1
Trên thực tế, python có thể được viết (hoặc thậm chí nói) bằng nhiều ngôn ngữ. Ví dụ: الثعبان
Stephen C

😁🤣 thiên tài của bạn @StephenC
El-Mo


5

Bạn sẽ có một ý tưởng hay nếu bạn biên dịch python từ nguồn. Thông thường đó là gccbiên dịch các *.ctệp


0

Để thêm vào và sắp xếp lại một số câu trả lời hay khác:

Đặc tả cho Python (câu hỏi) được viết bằng tiếng Anh, nhưng có thể được viết theo ngữ nghĩa chính thức , như ML tiêu chuẩnScheme . Xem Đặc tả ngôn ngữ lập trình .

Có nhiều cách triển khai Python bằng nhiều ngôn ngữ, như Gandaro đã lưu ý, trong đó tốc độ nhanh nhất đáng ngạc nhiên không phải là CPython gốc, được viết bằng C.


ý bạn là "đáng ngạc nhiên là không" hay "không ngạc nhiên"?
Necromancer

@necromancer Tôi có nghĩa là trước đây, tức là tôi ngạc nhiên rằng việc triển khai nhanh nhất không phải là triển khai tham chiếu trong C. Nhưng tôi cho rằng không có gì đáng ngạc nhiên khi có những người ngoài kia có thể cải thiện hiệu suất, vì họ sẽ không nhất thiết phải đối phó với các ràng buộc khác mà việc triển khai tham chiếu muốn thực hiện.
nealmcb

1
Tôi nghĩ rằng ngôn ngữ của việc triển khai sẽ ít liên quan hơn (a) sự tinh vi của một trình biên dịch động có thể chuyển đổi nguồn python thành mã máy. Trình biên dịch này có thể ở bất kỳ ngôn ngữ nào; điều quan trọng là chất lượng của các thuật toán; (b) mã máy của một số thư viện. Python nổi tiếng với các thư viện số không được viết bằng Python mà chỉ đơn thuần được "dán" vào môi trường; và (c) điểm chuẩn; các chương trình nhất định có thể chạy nhanh hơn trong một lần triển khai so với các chương trình khác.
Necromancer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.