Jump to content

Managed code

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Markmichaelh (talk | contribs) at 22:40, 17 June 2009 (link-itized "MFC library"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Managed code is computer program code that executes under the management of a virtual machine, unlike unmanaged code, which is executed directly by the computer's CPU. The benefits of managed code include programmer convenience and enhanced security guarantees. The specific term managed code is most commonly used in connection with Microsoft's development environments, because Visual Studio is capable of compiling applications in both Managed and Unmanaged code.[1] [2] Microsoft's most common languages for creating managed code are C#, Visual Basic.NET and C++/CLI.

Programs in any programming language could, in principle, be compiled into either managed or unmanaged code. In practice, however, each programming language is typically compiled into one type. For example, the Java programming language is almost always compiled into managed code, although there are Java compilers that can generate unmanaged code (such as GNU Compiler for Java). By contrast, Microsoft's Visual C++ development environment can produce both managed code (running under the .NET CLR) or unmanaged code, running under the older MFC framework[2].

There are many historical examples of managed code running on a virtual machine, such as UCSD Pascal utilizing p-code. Java popularized this approach with its Bytecode executed by the Java Virtual Machine. Microsoft uses managed code in its CLR virtual machine in the .NET Framework, or another similar virtual machine.

Some compilers produce intermediate "pseudocode" with intention of compiling it further into target machine code, not running it within a virtual machine as managed code (see, for example, BCPL or ALGOL 68C).

References

  1. ^ Brad Abrams of Microsoft defines managed code
  2. ^ a b Gregory, Kate (2003-04-28). "Managed, Unmanaged, Native: What Kind of Code Is This?". Retrieved 2009-04-22.