Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Что мешает создать компилятор для python-программ и тем самым сделать Python компилируемым языком в том числе?

ТехнологииПрограммирование+1
Иван Мельников
  ·   · 13,5 K
По образованию Автоматизатор производств. По...  · 18 дек 2016

Что мешает создать компилятор для python-программ и тем самым сделать Python компилируемым языком в том числе?

Первое, что необходимо понять: “Питон” – это интерфейс. Существует спецификация, описывающая, что должен делать Питон, и как он должен себя вести (что справедливо для любого интерфейса). И существует несколько имплементаций (что также справедливо для любого интерфейса).

Второе: “интерпретируемый” и “компилируемый” это свойства имплементации, но не интерфейса.

Так что сам вопрос не совсем корректен.

В случае с самой распространенной реализацией (CPython: написанный на C, часто называемый просто “Python”, и, конечно, именно тот, который вы используете, если понятия не имеете о чем я толкую) ответ: интерпретируемый, с некоторой компиляцией. CPython компилирует* исходный код на Питоне в байткод, а затем интерпретирует этот байткод, запуская его в процессе.

Так же есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции).

Детальнее вот сдесь:
www.toptal.com

Разработчик  · 19 дек 2016
Язык программирование это в первую очередь спецификация, его формальное описание. Так уж вышло, что в спецификации языка Python есть фичи свойственные интерпретируемым языкам программирования, например eval. Т.е. в питоне можно... Читать далее
Программист, разработчик ПО.  · 19 дек 2016
Одна из главных проблем - динамическая типизация. Приведу пример, допустим есть некоторая функция: def some_function(a): --if (a == 3): ----return a --else: ----return "ololo" а потом: number = random(какой-то диапазон) result... Читать далее

Спасибо за ответ. Как я понял, наоборот, создать интерпретатор для компилируемых языков ничто не мешает?

Образовательная платформа Хекслет  · 25 мая 2023  · ru.hexlet.io
Отвечает
Roman
Python уже имеет компилятор, и в некотором смысле является компилируемым языком, но в отличие от языков, которые компилируются до машинного кода (например, C или C++), Python компилируется в байт-код, который затем исполняется... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars