CPython
Tác giả | グイド・ヴァンロッサム |
---|---|
Khai phát nguyên | Python Software Foundation |
Sơ bản | 1991 năm 4 nguyệt |
Mới nhất bản |
3.12.3
/2024 năm ngày 9 tháng 4 |
Mới nhất bình 価 bản |
3.13.0a6
/2024 năm ngày 9 tháng 4 |
リポジトリ | |
プログラミング Ngôn ngữ | C ngôn ngữ |
プラットフォーム | 42 の プラットフォームBổn văn tham chiếu |
Loại đừng | Python Programming Language Interpreter |
ライセンス | Python Software Foundation License |
Công thức サイト |
www |
CPythonは,Pythonのリファレンス thật trangである. CPython はC ngôn ngữで ghi lại されている. CPython bên ngoài に, chế phẩm として の phẩm chất をもつ Python thật trang はJavaで ghi lại されたJython,Chung ngôn ngữ ランタイムDùng に ghi lại されたIronPythonの 2つがあり, またいくつか の thật nghiệm な thật trang もある.Classic Pythonというバクロニムが, 'C' の đừng の ý vị として đề án されている.
CPython はバイトコードインタプリタである. C を hàm むいくつか の ngôn ngữ で のPhần ngoài quan số インターフェイスを cầm っており, Python bên ngoài の ngôn ngữ のNgôn ngữ バインディングを minh kỳ に thư く trường hợp に sử dụng される.
サポートされているプラットフォーム
[Biên tập]UNIX / Unix hệ
[Biên tập]- AIX
- BSD
- Darwin
- FreeBSD
- HP-UX
- IRIX5 trở lên
- Plan 9 from Bell Labs
- NetBSD
- Linux
- OpenBSD
- Solaris
- Tru64 UNIX
- そ の hắn のUnix
デスクトップオペレーティングシステム
[Biên tập]Đặc thù sử dụng, tổ み込み
[Biên tập]- GP2X
- iPodLinux
- ニンテンドーDS
- ニンテンドーゲームキューブ
- Nokia 770 Internet Tablet
- Nokia N800
- Nokia N810
- Palm OS
- PlayStation 2
- PlayStation 3(Linux)
- PSION
- QNX
- Sharpザウルス
- Xbox/Xbmc
- VxWorks
メインフレームなど
[Biên tập]かつてサポートされていたプラットフォーム
[Biên tập]PEP 11にはPython Software Foundationの CPythonではサポートされていないプラットフォーム の một lãm がある. これら の プラットフォームは hiện tại でも phi công thức の nhổ trồng bản でサポートされている. Hạ nhớ tham chiếu.
- DOS(2.0 lấy hàng phi サポート)
- IRIX4 (2.3 lấy hàng phi サポート)
- Mac OS 9(2.4 lấy hàng phi サポート)
- MINIX(2.3 lấy hàng phi サポート)
Phi công thức の nhổ trồng bản
[Biên tập]Python Software Foundationの công thức bản の CPython に thống hợp されていない nhổ trồng bản が tồn tại する.
Nhổ trồng bản には, PSP dùng の グラフィックスやサウンド API や S60 dùng の SMS やカメラ API など の プラットフォーム cố hữu の cơ năng の ため の 拡 trương モジュールが cung cấp されることが nhiều い.
- Amiga[1]
- AS/400[2]
- DOS(DJGPPを sử dụng )[3]
- PlayStation Portable[4]
- Symbian OS[5]
- Windows CE/Pocket PC[6]
Song song tính に quan する vấn đề
[Biên tập]マルチプロセッサの コンピュータで CPython を dùng いる tế の đại きな vấn đề は, các CPython インタプリタ の プロセスが cầm つグローバルインタプリタロック( GIL ) であり, これがプロセス nội の Python スレッド の song song tính を tổn hại なってしまう[1].
マルチプロセッサ hoàn cảnh で hoàn toàn な song song tính を thật hiện するためには đừng の CPython プロセスを động tác させる tất yếu がある. Giống nhau にプロセス gian の thông tín を thật hiện することは khó khăn な tác nghiệp となるが, CPythonでは tiêu chuẩn ライブラリを sử い dễ dàng に thật hiện させることが khả năng である[2].CPython から GIL を lấy り trừ くことについては thường に nghị luận が hành われている[3].
バイトコード
[Biên tập]Pythonにおけるバイトコード(Anh:bytecode) はCPythonが bên trong に lợi dụng するTrung gian biểu hiệnである[4].
CPythonではPythonコードをバイトコードへコンパイルし, こ の バイトコードをインタープリタによって thật hành する[5].コードからバイトコードへ の コンパイル kết quả は.pyc
ファイルとしてキャッシュされ, nhị độ mục lấy hàng の thật thịnh hành にはリコンパイル vô しにバイトコードが thật hành される[6].
バイトコードはあくまでCPython の bên trong biểu hiện / thật trang kỹ càng tỉ mỉ であり, CPython の バージョン gian や hắn Python thật hành hoàn cảnh と の trao đổi tính は bảo đảm されない[7][8].
Chú thích
[Biên tập]- ^Python/C API Reference Manual: Thread State and the Global Interpreter Lock
- ^PEP 371 -- Addition of the multiprocessing package to the standard library
- ^Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?
- ^"bytecode... the internal representation of a Python program in the CPython interpreter." Python.bytecode - Glossary.Python 3.11.5 Documentation. 2023-09-01 duyệt lãm.
- ^"Python source code is compiled into bytecode... This 'intermediate language' is said to run on a virtual machine" Python.bytecode - Glossary.Python 3.11.5 Documentation. 2023-09-01 duyệt lãm.
- ^"The bytecode is also cached in
.pyc
files so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). "Python.bytecode - Glossary.Python 3.11.5 Documentation. 2023-09-01 duyệt lãm. - ^"Do note that bytecodes are not expected to work between different Python virtual machines, nor to be stable between Python releases." Python.bytecode - Glossary.Python 3.11.5 Documentation. 2023-09-01 duyệt lãm.
- ^"CPython implementation detail: Bytecode is an implementation detail of the CPython interpreter." Python.
dis
— Disassembler for Python bytecode.Python 3.11.5 Documentation. 2023-09-01 duyệt lãm.
Tham khảo văn hiến
[Biên tập]- Martelli, Alex(2006).Python in a Nutshell(2nd edition ed.).O'Reilly.pp. 5?7.ISBN 0-596-10046-9