Platform Independency :
In this approach, whenever the source code is compiled, it generates intermediate code (semi finished) intermediate code is not prepared targeting any Operating System. It is prepared targeting a special software which will take the responsibility of converting the intermediate code or semi finished code into machine code(Finished Code) fro execution.
Platform independency was provided under Java and .Net languages also.
Platform Independency in Java
Source Code ----> Compiled ----> Byte Code
Byte Code ----> JVM ----> Machine Code
In case of Java, the semi finished/intermediate code is known as "byte code" and the software responsible in converting byte code to machine code is "JVM"(Java Virtual Machine).
fig: Platform Independency in Java |
Note: JVM is dependent on the operating system, where we require a separate JVM for each operating system.
Platform Independency in .Net
Source Code ----> Compiled ----> CIL Code (MSIL)
CIL Code ----> CLR ----> Machine Code
The intermediate code which is generated after compilation of .net languages source code is known as CIL code (Common Intermediate Language) traditionally known as MSIL (Microsoft Intermediate language).
Here CLR (Common language Runtime) is the software which converts CIL code into machine code.
fig: Platform Independency in .Net Languages Note : CLR is also dependent on the operating system just like JVM. **Except CIL & Byte Code everything is OS dependent. |
Compilation & Execution in .Net Languages
fig: Compilation & Execution of .Net Languages .Net was a collection of languages giving a flexibility for the programmer to choose a language according thier choice. So, a .Net application can be developed in any of the languages available. But to compile the code we require a compiler separate for each language and after compilation all compilers will generate the same IL code. that is why it was known as Common IL code. This IL code is taken by the CLR to convert into machine code. ---------------------------------------------------------- |
0 comments:
Post a Comment