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

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

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

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

Являются ли "runtime" и " библиотека времени выполнения" две разные вещи?

ADD 1

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

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

Ответ 1

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

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


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


Re: ваше редактирование, "runtime" и "runtime library" - это два разных имени для одной и той же вещи.

Ответ 2

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

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

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

Ответ 3

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

Время выполнения C и С++ - это коллекции функций.

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

Ответ 4

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

<сильные > Примеры:

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

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

Ответ 5

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

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

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

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

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

Ответ 6

Мэтт Болл ответил на это правильно.

Я бы сказал об этом с примерами.

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

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

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

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

Ответ 7

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

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

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

Ответ 8

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

Runtimes of Mozilla XulRunner

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

runtimes' folder contents

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

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

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

Ответ 9

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

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

Ответ 10

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

Ответ 12

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

Ответ 13

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

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

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

Ответ 14

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