Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2010, 17:41   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию CLR - «общеязыковая исполняющая среда»

Здравствуйте, уважаемые программисты.
Есть вопрос относительно CLR . В книжке читаю -
Цитата:
Код
приложения
наС#
Последовательность действий
Прежде чем двигаться дальше, давайте сведем воедино все обсуж-
давшиеся шаги, необходимые для создания .NET-приложения:
Код на С#
1. Код приложения записывается на языке программирования,
совместимом с .NET, например на С# .
2. Полученная программа компилируется на язык
MSIL и помещается в модуль .
3 . Прежде чем этот код начнет выполняться
(сам по себе, если он является выполняемым,
или при вызове из другой программы), он
должен быть откомпилирован в родной код
с помощью ЛТ-компилятора .

4. Родной код выполняется в контексте управляемого
CLR совместно с другими приложениями или
процессами .
вопрос - 1)как может родной код
Цитата:
(2) кстати, что это - нолики и единицы или опять какой-то язык ?)
чем-то кроме железок или процессора управляться или выполняться? - получается , что CLR - это "виртуальная машина" , но тут же выходит, что эта самая CLR должна быть в операционной системе (иначе код не выполниться) - то есть /exe-файлы - выполняются только при наличии CLR ?
3) CLR всегда входит в операционную систему? (иначе программы работать не смогут, так как -
Цитата:
д. Код, написанный с помощью .NET Framework, является управляемым
на этапе выполнения (данный этап зачастую называется временем выполнения
(runtime)). Это означает, что CLR отслеживает выполнение приложений, управляя
памятью, межъязыковой отладкой, обеспечением безопасности и т. п. Напротив,
приложения, которые выполняются не под контролем CLR, называются неуправ-
ляемыми, и в них можно использовать определенные языки программирования,
такие как C++, для получения, например доступа к функциям нижнего уровня
операционной системы.
4) что же тогда "управляет" exe-шниками созданными, например, на С++ ?

------------------------
Заранее благодарю за ответы)
)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 25.10.2010, 17:46   #2
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

В свое время нам на курсах объясняли как-то так:
CLR(Common Language Runtime) - общая среда для исполнения всех .NET языков.
Т.е. сначала написанный код транслируется в CLR, а CLR уже транслирует в машинный код. Отчасти да, он похож на виртуальную JAVA машину. Ну и собственно, сама CLR ставится в комплекте с .NET Framework


В правильности изложенного не вполне уверен, но насколько я помню - это так
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 17:52   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
Ну и собственно, сама CLR ставится в комплекте с .NET Framework
то есть обе эти "штуки" присутствуют в любой версии Windows? _))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 25.10.2010, 17:54   #4
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

В старых версиях XP и ниже - не было, надо было отдельно качать с сайта мелких. А висту и семерку не юзал, не знаю, возможно уже включено
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 17:55   #5
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

А, ну и конечно же этот фреймворк ставится при установке вижуал студии
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 18:02   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)да виртуальная машина
2)это все опкоды виртуальной машины, в общем то так есть всегда, машинные кода процессора x86 тоже опкоды, а не тупо 01...
3)в общем случае нет, она ставится с .NET FrameWork, правда, последний порой входит в ОС по умолчанию.
4)если скомпилирована программа в машинные коды процессора, то напрамую проц её и исполняет, без интерпритации(JIT-компиляция в CLR, если точнее)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.10.2010, 18:20   #7
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
в общем случае нет, она ставится с .NET FrameWork, правда, последний порой входит в ОС по умолчанию.
то есть если у человека на компе нет .NET FrameWork - то и программа работать не будет ?
Цитата:
.NET Framework — программная платформа от компании Microsoft, предназначенная для создания обычных программ и веб-приложений.
+
Цитата:
Платфо́рма (компьютерная) — совокупность компьютеров, совместимых между собою в том или ином смысле.
2.1)правильно ли утверждение
Цитата:
".NET Framework - это.........мммммммм......метод (концепция) перевода кода языков высокого уровня в код языков уровняя более низкого , с последущим доведением до кода машинного (для проца) . Применяется NET Framework , например , в Visuai Studio. NET"

2.2) Выражение
Цитата:
"разработано для платформы"
подразумевает - что устройство (железка) на котором будет работать программа имеет в своей операционной системе некую виртуальную машину (компилятор для exe) , которая и обеспечит понятность уже "скомпилированного" (в некий промежуточный язык, понятный виртуальной машинке) кода "процессору " устройства.
Это так?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 25.10.2010, 18:22   #8
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
машинные кода процессора x86 тоже опкоды, а не тупо 01...
мммм.....что-то это не особо понятно - разве в конечном итоге программа - это не 0101001 - расположенные но столько-то штук в "ячейке" ?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 25.10.2010, 18:37   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

Цитата:
метод (концепция) перевода кода языков высокого уровня в код языков
Нет. Это именно платформа = среда исполнения, виртуальная машина, набор классов (либ)...

Цитата:
разве в конечном итоге программа - это не 0101001 - расположенные но столько-то штук в "ячейке" ?
расположенные в опред. ячейках и определенного формата
p51x вне форума Ответить с цитированием
Старый 25.10.2010, 21:02   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
мммм.....что-то это не особо понятно - разве в конечном итоге программа - это не 0101001 - расположенные но столько-то штук в "ячейке" ?
не совсем, если разобратся(занимаясь компилем асма, я разбирался) то там записаны именно команды процессора, просто в бинарном виде они выглядят именно как 01
Цитата:
то есть если у человека на компе нет .NET FrameWork - то и программа работать не будет ?
если программа написана для .NET, то нет.
Цитата:
2.1)правильно ли утверждение
что есть платформа .NET, это в первую очередь MSIL(IL), то есть архитектура по принципу архитектуры процессора(x86 к примеру) то есть, свои команды и прочее.
значит компилятор для .NET это обычный компилятор по сути, просто у него иная целевая платформа, не x86, а MSIL, то есть код компилируется в другие команды(команды другой архитектуры)
видимо, ты не имел никогда дела с иными платформами(имею опыт тесного общения с процем архитектуры ARM7), и просто не можешь понять, как это так, иные команды, без обид
Цитата:
подразумевает - что устройство (железка) на котором будет работать программа имеет в своей операционной системе некую виртуальную машину (компилятор для exe) , которая и обеспечит понятность уже "скомпилированного" (в некий промежуточный язык, понятный виртуальной машинке) кода "процессору " устройства.
Это так?
MSIL, как и JVM, это виртуальные машины, выполняющие команды иной архитектуры на нашей архитектуре, разница от простой VM, в том что они выполняют некие, придуманные, комманды, а не от реальной аппаратуры(хотя чисто в теории можно реализовать и аппаратно поддержку MSIL)
выше я говорил что .NET нужен.

вродь нигде не ошибся
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отличия С# от C++/CLR dampirik Общие вопросы .NET 13 14.12.2010 11:27
VS 2010 среда CLR ^. А так же array Morkonwen Visual C++ 6 19.10.2010 08:27
C++/CLR dampirik Общие вопросы .NET 3 19.11.2009 13:26
рисование в си++/clr dampirik Общие вопросы C/C++ 4 06.10.2009 17:08
Visual c++ clr dampirik Общие вопросы .NET 1 27.08.2009 23:24