Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Реально в нативном питоне каждый раз интерпретации не происходит, выполняется байт код.
VD>Вообще-то выполнение байт-кода и есть интерпретация. В компилируемом коде выполняется машинный код.
В общем да, но с другой стороны фаза компиляции (в байт код) тоже присутствует.
FR,
FR>Скорее всего псевдо exe, то есть exe c интерпретатором внутри (для обычного питона такое делает py2exe). Судя по скорости работы точно. Кстати java реализация питона тоже делает class файлы, но интерпретатор внутри остается. Настоящий компилятор питона (нативный) делают тут: http://codespeak.net/pypy/dist/pypy/doc/getting-started.html
Lazy Cjow Rhrr wrote: > FR>Скорее всего псевдо exe, то есть exe c интерпретатором внутри (для > обычного питона такое делает py2exe). Судя по скорости работы точно. > Кстати java реализация питона тоже делает class файлы, но интерпретатор > внутри остается. Настоящий компилятор питона (нативный) делают тут: > http://codespeak.net/pypy/dist/pypy/doc/getting-started.html > А Python Psycho это тоже jit компилятор?
Это хак, а не jit-компилятор
Здравствуйте, VladD2, Вы писали:
E>>Про отладку compile-time вычислений, которую можно делать только отладочными печатями, доступными только при запуске компилятора, я тоже не буду распространяться...
VD>Действительно. Зачем позориться и говорить откровенную фигню. Тут ты прав.
А где написано про отладчик Nemerle, который запускается при компиляции Nemerle-кода и позволяет отлаживать раскрытие макросов и прочего?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
VladD2 wrote: > C>Сам подумай, в Python'е и Ruby можно к объекту динамически подключать > и удалять методы. Как ты себе это представляешь в CLR без интерпретатора? > А в чем проблема? Во втором фрэймворке для этого даже отдельный класс > сделали — DynamicMethod. Да и мало лич, что можно нахимичить?
В .NET CLR _НЕТ_ стандарта на динамические объекты. Ну создам я пару
динамических методов, но как их передать другому несвязаному коду?
И я уж не говорю, что семантика объектов в .NET всего лишь немного
беднее языка Эллы-людоедочки. И различные нетривиальные фичи типа
мультиметодов и динамического вызова отображаются на него только с
большими приседаниями.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>FR,
FR>>Скорее всего псевдо exe, то есть exe c интерпретатором внутри (для обычного питона такое делает py2exe). Судя по скорости работы точно. Кстати java реализация питона тоже делает class файлы, но интерпретатор внутри остается. Настоящий компилятор питона (нативный) делают тут: http://codespeak.net/pypy/dist/pypy/doc/getting-started.html
LCR>А Python Psycho это тоже jit компилятор?
Угу, PyPy как раз его продолжение, делают теже люди что psyco
Здравствуйте, Cyberax, Вы писали:
C>Lazy Cjow Rhrr wrote: >> FR>Скорее всего псевдо exe, то есть exe c интерпретатором внутри (для >> обычного питона такое делает py2exe). Судя по скорости работы точно. >> Кстати java реализация питона тоже делает class файлы, но интерпретатор >> внутри остается. Настоящий компилятор питона (нативный) делают тут: >> http://codespeak.net/pypy/dist/pypy/doc/getting-started.html >> А Python Psycho это тоже jit компилятор? C>Это хак, а не jit-компилятор
FR wrote: > LCR>А Python Psycho это тоже jit компилятор? > Угу, PyPy как раз его продолжение, делают теже люди что psyco
Даже близко не продолжение. PyPy — это динамический JIT-транслятор для
Питона, написаный на Питоне.
Psycho — это патч к CPython, который компилирует несколько версий кода,
в надежде попасть на нужный тип.
Здравствуйте, Cyberax, Вы писали:
C>FR wrote: >> LCR>А Python Psycho это тоже jit компилятор? >> Угу, PyPy как раз его продолжение, делают теже люди что psyco C>Даже близко не продолжение. PyPy — это динамический JIT-транслятор для C>Питона, написаный на Питоне.
C>Psycho — это патч к CPython, который компилирует несколько версий кода, C>в надежде попасть на нужный тип.
Насколько я понял из чтения их документации, PyPy во многом для трансляции будет использовать теже методы что и psyco, хотя конечно это разные вещи, psyco просто тупо пытается угадать что имели в виду, а Pypy сначала пробует превратить большую часть динамики в статику, ну а то что не получится так сделать, отдает psyco подобному механизму.
FR wrote: > C>Psycho — это патч к CPython, который компилирует несколько версий кода, > C>в надежде попасть на нужный тип. > Насколько я понял из чтения их документации, PyPy во многом для > трансляции будет использовать теже методы что и psyco
В том смысле, что все JIT-компиляторы похожи
> разные вещи, psyco просто тупо пытается угадать что имели в виду, а Pypy > сначала пробует превратить большую часть динамики в статику, ну а то что > не получится так сделать, отдает psyco подобному механизму.
Более того, код интерпертатора и JITера в PyPy тоже будет JITиться из
питоновского кода.
Здравствуйте, eao197, Вы писали:
E>А где написано про отладчик Nemerle, который запускается при компиляции Nemerle-кода и позволяет отлаживать раскрытие макросов и прочего?
Запускаешь компилятор из под студии и хоть оботлаживайся.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
VladD2 wrote: > C>.NET-языки это: J#, C#, VB.NET. Все. Ну еще можно туда добавить F#. > http://www.dotnetpowered.com/languages.aspx
Да, много интерпретаторов на .NET написали, не спорю.
Здравствуйте, VladD2, Вы писали:
O>> Полностью согласен с тобой — давай экономить время на этапе компиляции! Миллисекунды на дороге не валяются!! Про удобство использования такой схемы скромно умолчу...
VD>Странный способ экономить время. Большие прокты на С++ компилирются часами, а у Немерла даже есть интерпретатор работающий в реальном времени.
Здравствуйте, Cyberax, Вы писали:
C>В .NET CLR _НЕТ_ стандарта на динамические объекты. Ну создам я пару C>динамических методов, но как их передать другому несвязаному коду?
Инстанс делегата отдашь.
C>И я уж не говорю, что семантика объектов в .NET всего лишь немного C>беднее языка Эллы-людоедочки. И различные нетривиальные фичи типа C>мультиметодов и динамического вызова отображаются на него только с C>большими приседаниями.
Мультиметоды — reflection и атрибуты тебе помогут, если надо красиво. Динамический вызов — тот же reflection. Или VB.NET, где можно делать ad-hoc вызовы прям используя основной синтаксис языка (оно потом скомпилится в вызов через reflection). Так что всё есть.
Здравствуйте, Cyberax, Вы писали:
C>В общем случае — да. В некоторых случаях, когда точно известен тип — C>вызов можно заинлайнить.
C>Сам подумай, в Python'е и Ruby можно к объекту динамически подключать и C>удалять методы. Как ты себе это представляешь в CLR без интерпретатора?
Эти методы просто не будет видно другим языкам (или будет какое-нить хранилице делегатов у каждого объекта). Ну а остальные будет видно.
>> Кстати, он у тебя стоит (судя по словам "судя по скорости работы >> точно")? Можно попробовать скомпилить какую-нить сборку, а потом >> посмотреть Reflector-ом. C>Проще сделать RTFS.
Здравствуйте, vdimas, Вы писали:
V>Нет, на Немерле ты не сможешь спроектировать подобную систему для произвольной получаемой размерности и их произвольных комбинаций.
Здравствуйте, Oyster, Вы писали:
O>Здравствуйте, FR, Вы писали:
FR>>В общем да, но с другой стороны фаза компиляции (в байт код) тоже присутствует.
O>Ну так, значит, IronPython не явзяется просто интерпретатором, раз он генерит CIL-код?...
Так обычный питон тоже тогда не просто интерпретатор
C IronPython я пока не разобрался в документации ничего нет, на сайте написано что динамический компилятор, на простейших тестах чуть быстрее (%10 — 20) чем cpython, но на порядок медленее чем psyco (jit компилятор питона)