domingo, 30 de octubre de 2016

Technical Overview of the Common Language Runtime

Now, on this entry we're gonna talk about the opinion of Meijer and Miller, about why JVM is not a good option for execution environment and it is just a suboptimal multi-language platform. To make a clear analysis of this, the authors compare between JVM and the new Microsoft .NET CLI (Common Language Infrastructure), that for the authors CLI is a better multi language execution environment than JVM. Because of the next reasons:
  • It has as target multiple languages, in contrast JVM has as main target Java
  • Managed multiple threads of control. CLI storage location are polymorphic, that means that there are 4 bytes or hundred of bytes. In contrast JVM are 4 bytes wide.
  • CLI type system support a set of primitive types such as: object, bool, int8, float32, typed referece, etc. And as a main advantage over JVM, is the fact of the natural-size, these means that in JVM values of type long or double occupy to locations making difficult for compilers writers. Supports also classes, interfaces, arrays, delegates
  • Besides CLI has polymorphic locations, it has also a little more polymorphic instructions (useful for compilers to generate MSIL code)
  • CLI support tailcalls and JVM not.
  • CLR provides built-in support for boxing and unboxing

According to the previous point, we can see that CLI has a better future that JVM, just because of the simple fact that it is easier to use for compiler writers. From my point of view for being a good execution environment we need to focus on the points, that at the beginning the authors mention, about why people look for an alternative implementation paths for native compilers that are portability, compactness, efficiency, security, interoperability and flexibility. Even though CLI seems to be the powerful and perfect one, they keep it making changes to be updated to the future necessities.

No hay comentarios:

Publicar un comentario