Talk:Runtime system

Proposal to clarify
The current page feels like a collection of different views from a variety of people. In order to function as a way for people who do not know about runtime systems to discover, I propose adding an intro paragraph that provides context for them, to prepare for the rest of the article:

In modern computer programming, A program has several phases in its life cycle. For example, editing phase during which the code is written (usually by a person using an editor), then compilation phase, where a tool called a compiler translates from human-oriented programming language into a machine-oriented assembly language, and then into a form called a binary or executable that can then be run by an Operating System or "bare metal" (such as in micro-controllers). When a human or other entity causes the binary to start running on hardware, then the program is in the run time phase. During the run time phase, there is support code that is included in the binary that does various things, as mentioned in the rest of this wiki post. This support code is collected under the term "runtime system". The amount, and type of support code varies widely. A particular programming language may inject support code that the language needs in order to implement part of its execution model. Libraries linked to the program may do likewise. For embedded binaries, the runtime system may provide OS-like functions. There are many situations and many variations, so the term runtime system is essentially a catch-all for "code that is not part of the application, but is needed (in the binary or linked library binaries) by the application program in order to get correct operation (and is not part of the OS)".

Note, the OS, conceptually, can be considered part of the runtime system, but its functionality is so common that it has a separate name and is started during power-on so it is not part of the application binary. As a result, "runtime system" typically refers to code that augments the behaviors provided by the OS.

Note, virtual machines also provide behavior during the run time phase of a program, such as Just in Time compilation, but this is generally not considered part of the runtime system. The boundaries are.. loose.. so for code that implements particular functionality that an application needs in order to work properly, there is often debate about whether it is part of the runtime system, or part of a Virtual Machine, or some other term. Seanhalle (talk) 18:41, 11 August 2022 (UTC)

Misleading statement
The second statement reads: „Every computer language implements some form of runtime system...“. Indeed a runtime system itself is implemented in some computer language and probably every computer language can be used to build some runtime system :-) but should it rather say that „Every computer language is implemented by (or executed by - but this is not so accurate') some form of runtime system...“ instead? --Anhtrobote (talk) 19:07, 15 December 2012 (UTC)

Good point! The runtime system is the thing that exhibits the behavior of language constructs. An application is written in terms of language constructs. When run, something has to animate the application code. This means that some active entity exists that performs the behaviors of the language constructs according to the pattern specified in the application code. I'll go ahead and modify the intro page. Thanks for the catch. Seanhalle (talk) 05:05, 21 May 2014 (UTC)

Run-time environment
Run-time environment redirects to this article. What does it mean? Is it synonymous to run-time system? Or is it what surrounds a run-time system? --Abdull (talk) 20:00, 1 October 2010 (UTC)


 * To me, "run-time environment" and "run-time system" are nearly synonymous. If there is a difference, it would be that a "run-time system" is the minimal set of libraries etc for running the relevant kind of programs, whereas "run-time environment" would also include optional libraries. For instance, you could say that the run-time system for Java is the Java Virtual Machine plus some core classes (eg., java.*), whereas the Java Run-time Environment (JRE) that most users install includes many, many additional classes. In practice, only people developing the run-time care about this distinction; end-users and developers writing programs for that system always want the whole environment, not just a minimal system. Hope this helps, CWC 15:51, 4 November 2010 (UTC)


 * Run-time environment should definitely not redirect to here. The runtime environment is the context surrounding a program during its execution.  This includes both state and other active systems.  For example, environment variable values are part of the runtime environment, and devices such as CD ROM are accessible in the environment.  But these are very different from a runtime system.  A runtime system exhibits the behavior of language constructs.  However, a runtime system may access state that is in the runtime environment, and a runtime system may interact with active entities, such as a CD ROM, that are reachable within the runtime environment.Seanhalle (talk) 04:52, 21 May 2014 (UTC)

Merge Run-time system and Runtime library?
User:Abdull has suggested merging these two articles. I think that would be a good idea, but then I'm a mergist. The distinctive thing about a run-time library is that it is closely tied to the compiler, and generally written by the same people. A run-time system provides everything needed to run programs, which almost always includes a run-time library. For some languages (notably C and C++), the run-time library is the run-time system — that is, all you need to run programs in these languages is the appropriate run-time library. OTOH, languages implemented using a 'byte code' format (eg., Java, .NET languages) need interpreters and/or JIT-style compilers as well as a run-time library. I'm sure we could cover all of this in a single shortish article. I'm willing to help, but will be too busy until late November. Cheers, CWC 16:09, 4 November 2010 (UTC)

The phrase "runtime library" doesn't really connect to any meaningful thing. Sometimes the code that implements the behavior exhibited by a runtime system is organized as a library, whose API is invoked by a compiler. But that doesn't make "runtime library" a thing. It just describes the way the code for the runtime system happens to be organized in one particular instance.Seanhalle (talk) 04:56, 21 May 2014 (UTC)

RSTS/E section: why is it here?
The RSTS/E section seems oriented more towards people interested in learning about RSTS/E than about the general concept of a run-time system. The introduction does say that it is "an early example" of a run-time system, but there's no explanation of why it's a typical or significant example. On the whole, the section seems out of place. John lindgren (talk) 12:58, 16 June 2011 (UTC)


 * The term "run-time system" has a special, different meaning in RSTS/E. A RSTS/E RTS either provided a complete environment for non-privileged PDP-11 machine code or ran an interpreter in such an enviroment. This is a lot more complicated than other run-time systems. RSTS/E run-time systems were part of the operating system, not userland libraries/interpreters. So the RSTS/E case is not typical. Given that only antique-computing hobbyists use RSTS/E these days, it's not significant either.
 * IMO, there's probably some content worth merging into the RSTS/E article. Then we should replace the RSTS/E section of this article with something like "The term “run-time system” had a somewhat different meaning with the RSTS/E operating system; see RSTS/E."
 * What do other editors think? CWC 17:20, 16 June 2011 (UTC)