Что такое «время выполнения»?

Я слышал о таких вещах, как «C Runtime», «Visual C ++ 2008 Runtime», «.NET Common Language Runtime» и т. Д.

  • Что такое « время выполнения »?
  • Из чего это сделано?
  • Как он взаимодействует с моим кодом? Или, может быть, более точно, как мой код контролируется им?

При кодировании языка ассемблера в Linux я мог бы использовать инструкцию INT для выполнения системного вызова. Итак, является ли среда выполнения только кучей готовых функций, которые обертывают функцию низкого уровня на более абстрактные и высокоуровневые функции? Но разве это не похоже на определение библиотеки, а не на время выполнения?

Являются ли «среда выполнения» и « библиотека времени выполнения » двумя разными способами?

ДОБАВИТЬ 1

В эти дни, я думаю, что Runtime имеет что-то общее с так называемой виртуальной машиной , такой как JVM. Вот цитата, которая приводит к такой мысли:

Этот процесс компиляции достаточно сложный, чтобы быть разбитым на несколько уровней абстракции, и в них обычно участвуют три переводчика: компилятор, реализация виртуальной машины и ассемблер. — Элементы вычислительных систем (Введение, Дорога вниз к Земле оборудования)

ДОБАВИТЬ 2

Книга Expert C Programming: Deep C Secrets . Глава 6 Структуры данных времени выполнения – полезная ссылка на этот вопрос.

Runtime описывает программное обеспечение / инструкции, которые выполняются во время работы вашей программы, особенно те инструкции, которые вы не писали явно, но необходимы для правильного выполнения вашего кода.

Языки низкого уровня, такие как C, имеют очень маленькое (если есть) время выполнения. Более сложные языки, такие как Objective-C, которые позволяют динамически передавать сообщения, имеют гораздо более обширное время выполнения.

Вы правы, что код времени выполнения является библиотечным кодом, но код библиотеки является более общим термином, описывающим код, созданный любой библиотекой. Код выполнения – это, в частности, код, необходимый для реализации функций самого языка.

Runtime – это общий термин, который ссылается на любую библиотеку, фреймворк или платформу, на которой работает ваш код.

Сроки выполнения C и C ++ представляют собой коллекции функций.

Среда выполнения .NET содержит интерпретатор промежуточного языка , сборщик мусора и многое другое.

Согласно Wikipedia: библиотека времени выполнения / система времени выполнения .

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


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


Re: ваше редактирование , «runtime» и «runtime library» – это два разных имени для одного и того же.

Среда выполнения или исполняющая среда является частью языковой реализации, которая выполняет код и присутствует во время выполнения ; часть времени компиляции реализации называется средой перевода в стандарте C.

Примеры:

  • среда выполнения Java состоит из виртуальной машины и стандартной библиотеки

  • общая среда выполнения C состоит из загрузчика (который является частью операционной системы) и библиотеки времени выполнения, которая реализует части языка C, которые не встроены в исполняемый файл компилятором; в размещенных средах это включает большинство частей стандартной библиотеки

В моем понимании время выполнения – это именно то, что он означает – время запуска программы. Вы можете сказать, что что-то происходит во время выполнения / времени выполнения или во время компиляции.

Я думаю, что среда выполнения и библиотека времени выполнения должны быть (если они не являются) двумя отдельными вещами. «C runtime» мне не кажется правильным. Я называю это «C runtime library».

Ответы на другие вопросы: я думаю, что термин runtime может быть расширен, чтобы включать также среду и контекст программы во время ее запуска, поэтому:

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

Этот ответ в какой-то мере является только моим мнением, а не фактом или определением.

Мэтт Болл ответил на это правильно. Я бы сказал об этом с примерами.

Рассмотрите возможность запуска программы, скомпилированной в компиляторе Turbo-Borland C / C ++ (версия 3.1 от 1991 года), и пусть она запускается под 32-разрядной версией Windows, например Win 98/2000 и т. Д.

Это 16-разрядный компилятор. И вы увидите, что все ваши программы имеют 16-битные указатели. Почему это так, когда ваша ОС 32bit? Поскольку ваш компилятор настроил среду выполнения 16 бит, и 32-разрядная версия ОС поддерживала ее.

То, что обычно называют JRE (Java Runtime Environment), предоставляет Java-программу со всеми ресурсами, которые могут потребоваться для выполнения.

Собственно, среда исполнения – это мозговой продукт идеи Virtual Machines. Виртуальная машина реализует необработанный интерфейс между оборудованием и то, что может потребоваться программе. Среда выполнения использует эти интерфейсы и представляет их для использования программистом. Разработчику компилятора нужны эти средства для обеспечения среды выполнения для своих программ.

Запускайте время, когда ваш код вступает в жизнь, и вы можете увидеть много важного, что делает ваш код.

Runtime несет ответственность за выделение памяти, освобождение памяти, использование подсистемы операционной системы, например (Файловые службы, Службы IO .. Сетевые службы и т. Д.),

Ваш код будет называться «РАБОТА В ТЕОРИИ», пока вы практически не запустите свой код. и Runtime – друг, который помогает в этом.

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

в случае программ на С, среда выполнения – это код, который устанавливает стек, кучу и т. д., которые требуют от среды С. он по существу устанавливает среду, которая обещана языком. (он может иметь компонент библиотеки времени выполнения, crt0.lib или что-то подобное в случае C)

Я обнаружил, что следующая структура папок создает очень проницательный контекст для понимания того, что такое runtime :

Runtimes для Mozilla XulRunner

Вы можете видеть, что есть « источник », есть « SDK » или «Software Development Kit», а затем есть время Runtime , например. материал, который запускается – во время выполнения. Это содержимое похоже на:

содержимое папки времени выполнения

В win32 zip содержатся файлы .exe -s и .dll -s.

Так, например. C runtime будет такими файлами – C-библиотеки времени выполнения, .so-s или .dll -s – вы запускаете во время выполнения, сделанные специально по их включению (или их содержимому или цели) в определение C (на «бумаге»), а затем реализована по вашему выбору C. И тогда вы получаете время выполнения этой реализации, чтобы использовать ее и строить на ней.

То есть, с небольшой поляризацией, исполняемые файлы, которые потребуются пользователям вашей новой программы на основе C. Как разработчик C-based программы, так и вы, но вам также нужны компилятор C и заголовки библиотеки C; пользователям это не нужно.

Runtime в основном означает, что программа взаимодействует с аппаратной и операционной системой машины. C не имеет собственной среды выполнения, но вместо этого он запрашивает время выполнения из операционной системы (которая в основном является частью ram) для выполнения самой.

Время выполнения – это экземпляр, в котором вы не знаете о том, какой тип объектов создается во время его выполнения, создание объектов основано на определенном условии или некоторой вычислительной работе. В противоречии время компиляции является экземпляром, где требуемые объекты определяются вами до его выполнения.

Эти разделы документации MSDN посвящены большинству ваших вопросов: http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx

Надеюсь, это поможет.

Спасибо, Дамиан

Время выполнения несколько противоположно времени разработки и времени компиляции / времени ссылки. Исторически это происходило из медленной мэйнфреймовой среды, где машинное время было дорогостоящим.

Время выполнения – это период времени, когда программа работает. Он начинается, когда программа открывается (или выполняется) и заканчивается программой, закрывается или закрывается.

Runtime – это технический термин, используемый чаще всего при разработке программного обеспечения. Это обычно рассматривается в контексте «ошибки времени выполнения», которая является ошибкой, возникающей во время работы программы. Термин «ошибка времени выполнения» используется для отличия от других типов ошибок, таких как синтаксические ошибки и ошибки компиляции, которые возникают до запуска программы.

Когда программа находится на этапе выполнения, приложение загружается в ОЗУ. Сюда входят исполняемый файл и любые библиотеки, фреймворки или другие файлы, на которые ссылается программа. Когда программа завершается, период выполнения заканчивается, и память, используемая программой, становится доступной для использования другими программами.

Время, прошедшее во время выполнения программы. Но это слишком общее. Скажем, продолжительность после компиляции программы, когда ОС представляет рецепт для программирования, чтобы взаимодействовать или видеть результаты того, что он разработал, называется временем выполнения. Во время выполнения не отображается синтаксическая ошибка и т. Д. То есть логика правильна (технически не по бизнесу). Таким образом, мы можем сказать, что compileTime является основным уровнем, а среда выполнения – вторичным.

  • Что такое безопасный тип?
  • В чем разница между веб-сайтом и веб-приложением?
  • «Параметр» против «Аргумент»
  • Что такое инъекция зависимости?
  • Выполнение системного вызова, возвращающего вывод stdout в виде строки
  • В чем смысл «каскадирования» в CSS?
  • В чем разница между абстрактным деревом синтаксиса и деревом синтаксиса бетона?
  • Различия между инициализацией, определением, объявлением переменной
  • Что такое объект без состояния в Java?
  • Разница между параметром и аргументом
  • Не является ли доступ к члену «закрытый пакет» синонимом доступа по умолчанию (без модификатора)?
  • Давайте будем гением компьютера.