2012-02-26 35 views
25

Trăn ngôn ngữ cơ sở được viết bằng gì? Trên thực tế tôi đã làm một tìm kiếm google nhưng không tìm thấy bất kỳ kết quả thỏa mãn.Ngôn ngữ cơ sở của python

+0

https://wiki.python.org/moin/ PythonImplementations – jfs

Trả lời

50

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ì Python là một ngôn ngữ chỉ là một tập hợp các quy tắc (như các quy tắc cú pháp, hoặc mô tả của s 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 bằng một số ngôn ngữ lập trình. Do đó, nếu bạn gửi một chuỗi như 'import this' vào chương trình đó được gọi là interpreter, nó sẽ trả về cho bạn "Zen of Python".

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

có hiện thực khác:

  • IronPython (Python chạy trên NET)
  • Jython (Python chạy trên Java Virtual Machine)
  • PyPy (A python thực hiện nhanh chóng với một trình biên dịch JIT)
  • Stackless Python (Chi nhánh Công CPython microthreads hỗ trợ)
+0

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

15

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

3

nó được viết bằng C, còn được gọi là CPython.

9

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

+1

Thực ra PyPy được viết trong RPython –

+0

Tôi không biết nhưng CPython là bằng cách nào đó việc thực hiện chậm nhất. http: //blog.dhananjaynene.com/2008/07/performance-so sánh-c-java-python-ruby-jython-jruby-groovy/ – Dewsworld

+0

@JakobBowyer Bạn có thể thực thi PyPy bằng CPython vì vậy 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 thực hiện hơn (nhưng một chi tiết xoắn rất thú vị và tâm trí). – Duncan

0

Bạn nhận được một ý tưởng tốt nếu bạn biên dịch python từ nguồn. Thông thường nó gcc rằng biên dịch *.c file

-2

Để thêm vào và điều chỉnh lại một số trong những câu trả lời tốt khác:

Các specification for Python (question) được viết bằng tiếng Anh, nhưng có thể được viết bằng một formal semantics, như Standard MLScheme đang có. Xem Programming language specification.

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

+0

bạn có nghĩa là "đáng ngạc nhiên không" hoặc "không đáng ngạc nhiên"? – necromancer

+0

@necromancer Tôi có nghĩa là trước đây, tức là tôi ngạc nhiên khi triển khai nhanh nhất không phải là việc thực hiện tham chiếu trong C. Nhưng tôi cho rằng không có gì ngạc nhiên khi có những người ở đó 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 thực hiện 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 tế của một trình biên dịch động chuyển đổi nguồn python thành mã máy. Trình biên dịch này có thể bằng 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 là "dán" vào môi trường; và (c) điểm chuẩn; một số chương trình có thể chạy nhanh hơn trong một triển khai hơn các chương trình khác. – necromancer

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