Информация об изменениях

Сообщение Re[19]: 32/64/AnyCPU - что за @$^%$? от 09.10.2016 14:34

Изменено 09.10.2016 14:36 Serginio1

Здравствуйте, AlexRK, Вы писали:

ARK>Здравствуйте, Serginio1, Вы писали:


S>> Ну для примера в вики написано https://ru.wikipedia.org/wiki/.NET_Framework

S>>

S>>Архитектура .NET[править | править вики-текст]
S>>Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-код Common Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается сборка, англ. assembly.
S>>[q]
S>>Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора.

S>> Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.
S>>[/q]

S>> То есть даже NGEN это не виртуальная машина, хотя на самом деле как я уже давал ссылки


ARK>Ничего не понял. Есть такая поговорка — кто ясно мыслит, тот ясно излагает.


ARK>Вас словосочетание "Виртуальная машина CLR" в процитированном вами же тексте ни на что не наталкивает?


Ты выделенное прочитал?

Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора.


То есть NGET это уже не виртуальная машина. Вот и верь после этого Вики.

S>>

S>>NGEN по-прежнему полагается на полную среду CLR для таких сервисов, как загрузка сборок, удаленное и локальное взаимодействие, управление памятью, сбор мусора и, при необходимости, JIT-компиляция. В .NET Native многие из этих сервисов являются либо ненужными (JIT-компиляции), либо разрешаются во время построения и включаются в сборку приложения. Остальные сервисы, наиболее важным из которых является сбор мусора, включены в гораздо более компактную, оптимизированную среду выполнения mrt100_app.dll.

S>> Так, что верь Вики. Она тебя же и опровергает.

ARK>Где и в чем она меня опровергает?


ARK>Еще раз повторяю свою мысль: .NET — это виртуальная машина для выполнения IL, плюс библиотека классов. Что тут неясно? Тот факт, что есть отдельная вещь под названием .NET Native, ничего не доказывает и не опровергает. Любой язык можно компилировать или выполнять в виртуальной машине.


Разделяй .Net и CLR.

https://ru.wikipedia.org/wiki/Common_Language_Runtime

Common Language Runtime (англ. CLR — общеязыковая исполняющая среда) — исполняющая среда для байт-кода CIL (MSIL), в который компилируются программы, написанные на .NET-совместимых языках программирования (C#, Managed C++, Visual Basic .NET, F# и прочие). CLR является одним из основных компонентов пакета Microsoft .NET Framework.


Ну так по твоему компилятор это и есть VM. К чему и пришли
Re[19]: 32/64/AnyCPU - что за @$^%$?
Здравствуйте, AlexRK, Вы писали:

ARK>Здравствуйте, Serginio1, Вы писали:


S>> Ну для примера в вики написано https://ru.wikipedia.org/wiki/.NET_Framework

S>>

S>>Архитектура .NET[править | править вики-текст]
S>>Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-код Common Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается сборка, англ. assembly.
S>>[q]
S>>Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора.

S>> Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.
S>>[/q]

S>> То есть даже NGEN это не виртуальная машина, хотя на самом деле как я уже давал ссылки


ARK>Ничего не понял. Есть такая поговорка — кто ясно мыслит, тот ясно излагает.


ARK>Вас словосочетание "Виртуальная машина CLR" в процитированном вами же тексте ни на что не наталкивает?


Ты выделенное прочитал?

Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора.


То есть NGET это уже не виртуальная машина. Вот и верь после этого Вики.

S>>

S>>NGEN по-прежнему полагается на полную среду CLR для таких сервисов, как загрузка сборок, удаленное и локальное взаимодействие, управление памятью, сбор мусора и, при необходимости, JIT-компиляция. В .NET Native многие из этих сервисов являются либо ненужными (JIT-компиляции), либо разрешаются во время построения и включаются в сборку приложения. Остальные сервисы, наиболее важным из которых является сбор мусора, включены в гораздо более компактную, оптимизированную среду выполнения mrt100_app.dll.

S>> Так, что верь Вики. Она тебя же и опровергает.

ARK>Где и в чем она меня опровергает?


ARK>Еще раз повторяю свою мысль: .NET — это виртуальная машина для выполнения IL, плюс библиотека классов. Что тут неясно? Тот факт, что есть отдельная вещь под названием .NET Native, ничего не доказывает и не опровергает. Любой язык можно компилировать или выполнять в виртуальной машине.


Разделяй .Net и CLR.

https://ru.wikipedia.org/wiki/Common_Language_Runtime

Common Language Runtime (англ. CLR — общеязыковая исполняющая среда) — исполняющая среда для байт-кода CIL (MSIL), в который компилируются программы, написанные на .NET-совместимых языках программирования (C#, Managed C++, Visual Basic .NET, F# и прочие). CLR является одним из основных компонентов пакета Microsoft .NET Framework.


Ну так по твоему компилятор это и есть VM. К чему и пришли