Базова мова Python


Відповіді:


122

Не можна сказати, що Python написаний якоюсь мовою програмування, оскільки Python як мова - це лише набір правил (наприклад, правила синтаксису або описи стандартних функціональних можливостей). Тож можна сказати, що це написано англійською мовою :). Однак згадані правила можуть бути реалізовані на деяких мовах програмування. Отже, якщо ви надішлете рядок на зразок "імпортувати це" до тієї програми, яка називається інтерпретатор, це поверне вам "Zen of Python".

Оскільки більшість сучасних ОС написані на C, компілятори / інтерпретатори для сучасних мов високого рівня також написані на C. Python не є винятком - його найпопулярніша / "традиційна" реалізація називається CPython і написана на C.

Є й інші реалізації:

  • IronPython (Python працює на .NET)
  • Jython (Python працює на віртуальній машині Java)
  • PyPy (швидка реалізація python із компілятором JIT)
  • Stackless Python (гілка CPython, що підтримує мікропотоки)

4
Зверніть увагу, що PyPy написаний на RPython.
Marcin


16

Python написаний англійською мовою. Але є кілька реалізацій:

  • PyPy (написаний на Python)
  • CPython (написано на C)
  • IronPython (написано на C #)
  • Jython (написано на Java)

2
Власне PyPy написано на RPython
Якоб Бойєр

Не знаю, але CPython - це якось найповільніша реалізація. blog.dhananjaynene.com/2008/07/…
Dewsworld

@JakobBowyer Ви можете виконати PyPy за допомогою CPython, тому цілком вірно стверджувати, що він написаний на Python. Той факт, що з міркувань продуктивності він використовує лише підмножину Python, є скоріше деталлю реалізації (але дуже цікавою та делікатною деталлю).
Дункан

1
Насправді, python можна писати (або навіть розмовляти) багатьма мовами. Наприклад: الثعبان
Стівен С

😁🤣 ur genius @StephenC
El-Mo


5

Ви отримуєте хорошу ідею, якщо компілюєте python з джерела. Зазвичай це те, gccщо компілює *.cфайли


0

Щоб додати та переробити деякі інші хороші відповіді:

Специфікація для Python (питання) написано англійською мовою, але може бути записана в формальної семантиці , так як Standard ML і Scheme є. Див. Специфікацію мови програмування .

Існує реалізація Python багатьма мовами, як зазначив Гандаро, з яких найшвидшим є не дивно не оригінальний CPython, який написаний на C.


ви маєте на увазі "напрочуд ні" чи "не дивно"?
некромант

@necromancer Я маю на увазі перше, тобто, що я здивований, що найшвидша реалізація не є еталонною реалізацією в C. Але я вважаю, що не дивно, що там є люди, які можуть покращити продуктивність, оскільки вони не обов'язково доводиться мати справу з іншими обмеженнями, які хоче виконати еталонна реалізація.
nealmcb

1
Я вважаю, що мова реалізації буде менш актуальною, ніж (а) вишуканість динамічного компілятора, який перетворює вихідний код python у машинний код. Цей компілятор може бути будь-якою мовою; важливим є якість алгоритмів; (б) машинний код певних бібліотек. Python славиться числовими бібліотеками, які написані не на Python, а просто "приклеєні" до середовища; та (c) еталон; певні програми можуть працювати швидше в одній реалізації, ніж інші.
некромант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.