Что означает «среда выполнения» и «программная среда»? - PullRequest
15 голосов
/ 21 марта 2011

Я слышал о нескольких вещах, цитируемых из Википедии:

  1. "Java Runtime Environment",

    JVM распространяется вместе с набором стандартных библиотек классов, которые реализовать приложение Java интерфейс программирования (API). Соответствующие API, связанные вместе, формируют среда выполнения Java (JRE).

  2. «Интегрированная среда выполнения Adobe»

    Adobe Integrated Runtime, также известная как Adobe AIR, является кроссплатформенным среда выполнения, разработанная Adobe Системы для построения Rich Internet Приложения (RIA), использующие Adobe Flash, Adobe Flex, HTML и Ajax, которые могут запускаться как настольные приложения.

  3. ".NET Framework"

    .NET Framework (произносится точка net) представляет собой программную основу для Операционные системы Microsoft Windows. Он включает в себя большую библиотеку, и это поддерживает несколько языков программирования который позволяет взаимодействие языков (каждый язык может использовать код, написанный на Другие языки). Библиотека .NET доступно для всех программ языки, которые поддерживает .NET.

Как описано выше, если я правильно понимаю, первые два, похоже, относятся к "среде выполнения", но нет соответствующей Википедии, объясняющей, что такое "среда выполнения".

Третий называется "Программной платформой", в которой есть статья в Википедии как:

программный каркас - это абстракция в котором общий код, предоставляющий общий функциональность может быть выборочно переопределено или специализировано пользователем код, таким образом обеспечивая конкретные функциональность. Рамки являются особый случай программных библиотек в что они являются многоразовыми абстракциями код, завернутый в четко определенный Интерфейс прикладного программирования (API), но они содержат некоторые ключи отличительные черты, которые разделяют их из обычных библиотек.

Итак, мои вопросы:

  1. Являются ли "средой выполнения" и «Программный фреймворк» тот же вещь? Если нет, то чем они отличаются, и принадлежат ли они к какой-то общей категория
  2. Они все программируют? библиотеки / API, которые могут быть использованы программисты, чтобы разработать свои собственные программное обеспечение?
  3. Три примера часто требуется при установке некоторых программного обеспечения. Они принадлежат к понятие виртуальная машина ? Если нет, к какой категории они относятся к? Чем эта категория отличается с виртуальной машины?

Спасибо и всего наилучшего!

PS: Я не знаю, является ли этот пост более подходящим для суперпользователя или для стекового потока, так как эти три примера часто требуются при установке некоторого программного обеспечения, и они также, похоже, предоставляют API для разработчики программного обеспечения.

Ответы [ 2 ]

10 голосов
/ 21 марта 2011
  1. Нет. Среда выполнения в основном представляет собой виртуальную машину, которая работает поверх машины - обеспечивает абстрагирование машины. Обычно это более низкий уровень, чем библиотека. Каркас может содержать среду выполнения, но обычно привязан к библиотеке.

    Java, AIR и .NET (в данном случае Common Language Runtime) имеют каждую собственную среду выполнения в определенном байтовом коде, который выполняется поверх операционной системы. Это позволяет коду быть достаточно переносимым без перекомпиляции, чтобы сделать это таким образом.

  2. Библиотеки и API используются для создания новых программ. Среда выполнения - это то место, где запускаются программы.

  3. Среда выполнения действительно совпадает с концепцией виртуальной машины, хотя и не такой сложной, как VMWare или иным образом. Они оба разделяют цель абстрагирования базовых систем до такой степени, что на них может работать другое программное обеспечение.

7 голосов
/ 21 марта 2011

«Среда выполнения» и «Программная среда» - это одно и то же?Если нет, то чем они отличаются и относятся ли они к какой-то общей категории?

Нет, не совсем.«Среда выполнения» обычно относится к базовой технологии, которая фактически выполняет сам код.В Java это будет JVM - в .NET, CLR.«Каркас», как правило, относится к набору библиотек, которые распространяются по умолчанию.

Все ли они библиотеки / API-интерфейсы программирования, которые могут использоваться программистами для разработки собственного программного обеспечения?

Это больше «каркас» - «Каркас» предоставляет API, доступные по умолчанию.

Три примера часто требуются при установке некоторого программного обеспечения.Они относятся к понятию виртуальной машины?Если нет, то к какой категории они относятся?Чем эта категория отличается от виртуальной машины?

Виртуальная машина - это форма "среды выполнения" - это то, что Java и C # используют для своей среды выполнения.

Путаницавозникает, поскольку вы обычно устанавливаете обе вещи вместе - так как среда выполнения мало полезна без некоторых базовых библиотек (каркас), а каркас ничего не делает без среды исполнения (поскольку последний требуется для выполнения кода на основе каркаса).

...