Java Reference
In-Depth Information
when shared libraries are used. In such cases, static linking 9 can be used to overcome
this problem.
GCJ does not behave well with threads. Multi-threaded processes are less ecient in
GCJ.
A useful feature of GCJ is the flexibility it offers in choosing what optimizations to
perform. GCJ categorizes optimizations by level and permits users to choose the level of
optimizations they want to apply on the programs. There are five optimization levels, each
specified by the -Ox ( x representing the optimization level) option [GNU, 2011]. Overall,
GCJ is a good choice for embedded systems, and is being improved continually.
8.5 Microsoft C# Compiler for .NET Framework
8.5.1 Introduction to .NET Framework
The .NET Framework [Microsoft, 2012] is an integral Microsoft Windows component for
building and running applications. It is a multi-language development platform that com-
prises a virtual machine called the Common Language Runtime (CLR)
[Box and Sells,
2002], and a library called the Framework Class Library (FCL).
The CLR is the heart of the .NET framework, and it consists of several compnents, in-
cluding a class loader, metadata engine, garbage collector, debugging services, and security
services. The CLR is Microsoft's implementation for the Common Language Infrastructure
(CLI) Standard, which defines an execution environment that allows multiple high-level
languages to be used on different computer platforms 10 without being rewritten for specific
architectures [Miller and Ragsdale, 2004]. It takes care of compiling intermediate language
programs to native machine code, memory management (for example, allocation of objects
and buffers), thread execution, code execution and exception handling, code safety 11 verifi-
cation (for example, array bounds and index checking), cross-language integration (that is,
following certain rules to ensure the interoperability between languages), garbage collection,
and controls the interaction with the OS.
FCL is the other core component of the .NET Framework; it is a library of classes,
interfaces, and value types. It is structured as a hierarchical tree and divided into logical
groupings of types called namespaces (as in the Java API) according to functionality. System
is the root for all types in the .NET Framework namespace hierarchy. The class libraries pro-
vided with the .NET Framework can be accessed using any language that targets the CLR.
One can combine the object-oriented collection of reusable types and common functions
from the FCL with her own code, which can be written in any of the .NET-compatible lan-
guages. The .NET-compatible languages can altogether be called .NET languages. C # , C ++ ,
Perl, Python, Ruby, Scheme, Visual Basic, Visual J ++ , Phalanger 12 , and FORTRAN.NET 13
are a few examples of .NET languages with CLR-targeting compilers [Hamilton, 2003].
9 Static linking refers to resolving the calls to libraries in a caller and copying them into the target
application program at compile time, rather than loading them in at run-time.
10 Such platforms would be the combination of any architecture with any version of the Microsoft Windows
operating system running atop.
11 Comprising type, memory, and control-flow safety, meaning that the intermediate code is correctly
generated and only accesses the memory locations it is authorized to access, and isolating objects from each
other to protect them from accidental or malicious corruption.
12 An implementation of PHP with extensions for ASP.NET.
13 Fortran compiling to .NET.
 
Search WWH ::




Custom Search