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

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

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

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

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

ДОБАВИТЬ 1

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

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

ADD 2

Книга «Программирование для экспертов на C: Deep C» Секреты. В главе 6 «Структуры данных времени выполнения» можно найти полезную ссылку на этот вопрос.


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

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

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


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

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

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


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

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

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


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

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


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


Re: ваше редактирование , «среда выполнения» и «библиотека времени выполнения» — два разных названия одного и того же.


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

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


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


Re: ваше редактирование , «среда выполнения» и «библиотека времени выполнения» — это два разных названия одного и того же.


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

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

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


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

Примеры:

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


Время выполнения именно там, где ваш код оживает, и вы можете увидеть много важных вещей, которые делает ваш код.

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

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


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

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

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


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

Вы можете видеть, что есть ‘ источник ‘ , есть ‘ SDK ‘ или ‘Software Development Kit’, а затем есть Runtime , например. материал, который запускается — во время выполнения. Его содержимое выглядит примерно так:

ZIP-архив win32 содержит .exe -s и .dll -s.

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

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


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

Вы можете видеть, что есть « source », есть « SDK » или «Software Development Kit», а затем есть Среда выполнения , например. материал, который запускается — во время выполнения. Его содержимое выглядит примерно так:

ZIP-архив win32 содержит .exe -s и .dll -s.

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

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


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

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


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

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


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


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


Если я правильно понял, прочитав приведенные выше ответы, время выполнения — это в основном «фоновые процессы», такие как мусор сбор, выделение памяти, в основном любые процессы, которые вызываются косвенно библиотеками/фреймворками, в которых написан ваш код, и особенно те процессы, которые происходят после компиляции, пока приложение работает.


Если я правильно понял из чтения приведенных выше ответов, среда выполнения — это в основном « фоновые процессы », такие как сборка мусора, выделение памяти, в основном любые процессы, которые вызываются косвенно библиотеками /frameworks, в которых написан ваш код, и особенно те процессы, которые происходят после компиляции, пока приложение работает.


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

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

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


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

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

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

Оцените статью
techsly.ru
Добавить комментарий