LINUX.ORG.RU

Трансляторы языков. Python-->Cpp. Есть такое?


0

1

Я вот тут задумался, питон - позволяет создавать приложения гораздо быстрее, чем на плюсах. Но так же питон и выполняет созданные приложения гораздо медленнее чем плюсы. И, учитывая, что код питона «идеально» структурирован - то былобы не плохо иметь транслятер - питон-->плюсы, чтобы после быстрой разработки и отладки проги на питоне взять и перегенирировать весь код в плюсы и наслаждаться быстрой скоростью работы.

★★★★★

И, учитывая, что код питона «идеально» структурирован

Бред. Лисп стуктурирован лучше.

чтобы после быстрой разработки и отладки проги на питоне взять и перегенирировать весь код в плюсы и наслаждаться быстрой скоростью работы.

Не выйдет. Будет так же тормозить.

Гуглить по темам jit и cython. Cython практически то, что ты ищещь.

dizza ★★★★★
()

Если есть определённые критические участки, то лучше попробовать только для них Cython. Сама по себе «компиляция» питиновской программы в бинарник скорее всего не даст существенного прироста, т.к. таким образом не избавишься от «динамичности» языка в узких местах (транлятор сам определить не сможет где и как нужно избавляться от динамики).

mashina ★★★★★
()

А swig для чего умные люди придумали? Хочешь скорость, от с/с++ никуда не денешся.

FractaIL
()
Ответ на: комментарий от dizza

>Бред. Лисп стуктурирован лучше.

Ну может и лучше, только относительно скорости разработки лисп все равно проигрывает питону

Siado ★★★★★
() автор топика
Ответ на: комментарий от mashina

>Сама по себе «компиляция» питиновской программы в бинарник скорее всего не даст существенного прироста

Да да, конечно компиляция в машинный код ничего не дает ага.

И вообще вопрос был про другое.

Siado ★★★★★
() автор топика

если бы все было так просто, то думаю он бы давно появился. Это вам не жабу в сишарп переводить, тут думать надо.

Zubchick
()
Ответ на: комментарий от Siado

>Да да, конечно компиляция в машинный код ничего не дает ага.
если на питоне написать как на C, и оттранслировать и собрать Cython'ом, то все будет работать быстро.
ежели ли оставить всю динамику и тупо сделать трансляцию в C, особого прироста в скорости это не даст, чего непонятного

anon1984
()
Ответ на: комментарий от Siado

> только относительно скорости разработки лисп все равно

проигрывает питону


Совершенно без цели завести какой-либо спор: это не так.

archimag ★★★
()
Ответ на: комментарий от dizza

> Бред: Лисп стуктурирован лучше.

Действительно бред.

balodja ★★★
()
Ответ на: комментарий от zootcat

> Oh, shi~~~ Лисп опять в треде...

и он все чаще появляется в самых разных тредах, скоро LOR переименуют в Lisp.Org.Ru

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

>> Лисп опять в треде...

и он все чаще появляется в самых разных тредах, скоро LOR переименуют в Lisp.Org.Ru

При угрозе этого я завербуюсь в модераторы и начну чистить оффтопик %)

tailgunner ★★★★★
()
Ответ на: комментарий от korvin_

> скоро LOR переименуют в Lisp.Org.Ru

Скорей в lisp-splutter.org.ru ))

archimag ★★★
()
Ответ на: комментарий от tailgunner

> При угрозе этого я завербуюсь в модераторы и начну чистить оффтопик %)

к тому моменту тебя перепишут на лиспе

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

> к тому моменту тебя перепишут на лиспе

а... ну, о том, что будет после смерти, я не думаю

tailgunner ★★★★★
()
Ответ на: комментарий от Siado

И вообще вопрос был про другое.

О чём тогда, оттранслировать в плюсы и потом работать с плюсовым кодом?

mashina ★★★★★
()
Ответ на: комментарий от Siado

Да да, конечно компиляция в машинный код ничего не дает ага.

Ты не веришь, что можно сгенерить тормозной машинный код?

dizza ★★★★★
()
Ответ на: комментарий от dizza

> Как по мне так, то питон вполне себе диалект лиспа

А чо только Питон? Вообще все языки - это диалекты Лиспа. Говорят, на нем ТНБ написал Вселенную.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Вообще все языки - это диалекты Лиспа. Говорят, на нем ТНБ написал Вселенную.

Говорят, что на самом деле на плюсах, так как хрен кто разберется, как оно работает.

fool_anon
()
Ответ на: комментарий от fool_anon

>> Вообще все языки - это диалекты Лиспа. Говорят, на нем ТНБ написал Вселенную.

Говорят, что на самом деле на плюсах, так как хрен кто разберется, как оно работает.

Ты так говоришь, будто на лиспе не пишут быдлокода.

tailgunner ★★★★★
()
Ответ на: комментарий от anon_666

> Всё здесь.

Это шутка? Там последнее сообщение - ~2 года назад.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ты так говоришь, будто на лиспе не пишут быдлокода.

Быдлокода не пишут только на cobol'е.

fool_anon
()
Ответ на: комментарий от dizza

I Love LOR

> Бред. Лисп стуктурирован лучше.

тема топика «Трансляторы языков. Python-->Cpp»
зашел сюда в надежде увидеть лиспотроллинг иии... вуаля :)

Corey
()
Ответ на: комментарий от megabaks

именно!

Странная затея. Я ещё не видел ни одного транслятора, который бы генерировал пригодный для дальнейшего использования код. Особенно между языками совершенно разного уровня.

anonymous
()
Ответ на: I Love LOR от Corey

зашел сюда в надежде увидеть лиспотроллинг иии... вуаля :)

Я не специально ;) А вообще лучшая «структурированность» никак не помогает в трансляции в машинный код. Полюбас type-hinting нужен.

dizza ★★★★★
()
Ответ на: комментарий от anonymous

> Особенно между языками совершенно разного уровня.

И каких же уровней C++ и CL? И в чем разница этих «уровней»?

balodja ★★★
()
Ответ на: комментарий от mashina

Упоролись те, кто считают C++ и CL «языками совершенно разного уровня». Либо срочно выделяй «уровни» C++ и CL, либо GTFO.

balodja ★★★
()
Ответ на: комментарий от mashina

Чукче стоит почетче изъясняться, чтобы было понятно, кого он имеет в виду, говоря «лиспотролли».

balodja ★★★
()

и как перетаскивать динамическую типизацию?
что делать с кортежами, списками, словарями, regexp?
попробуй написать транслятор хотябы для split ;)
вердикт: man cpython

expelled ★★
()
Ответ на: комментарий от balodja

Глупо отрицать, что С++ гораздо ближе к железу (и соответственно дальше от предметной области), чем КЛ.

ugoday ★★★★★
()
Ответ на: комментарий от expelled

и как перетаскивать динамическую типизацию?

man указатели, man наследование, да даже man PyObject в конце концов

что делать с кортежами, списками, словарями, regexp?

man stl, man boost

попробуй написать транслятор хотябы для split ;)

В смысле? Сперва добейся? Или что?

вердикт: man cpython

CPython is the default, most-widely used implementation of the Python programming language. It is written in C. (...) CPython is a bytecode interpreter.

Каким боком?

balodja ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.