sábado, 12 de noviembre de 2016

Technical Overview of the CLR

This week article was written by Erik Meijer and Jim Miller. Both worked at Microsoft and form important part of developing the Common Language Runtime (CLR).

The text compares some of the things offered by the Common Language Infrastructure(CLI) with the Java Virtual Machine (JVM). The main difference is that the CLI is a platform that supports a wide range of languages. Microsoft developers work closely with the implementers of these languages so that programs compiled efficiently and smoothly.

The CLI has a lot of primitive types which makes it powerful and very flexible. There are a lot of instructions available to modify and manage the evaluation and argument stack. You can do arithmentic operations, reference alterations to build for example a swap function, reference types and also value types. Something interesting is that it is mentioned in the article that one important feature is the tailcall function in order to support languages that only have recursion as a method for looping.

I consider important to take into account the functionality offered by both the JVM and the CLR of .NET when implementing a programming language, because if it is object oriented, obviously should the JVM is better and for imperatives paradigms the CLR.

The architecture that makes up the CLI are the instruction pointer, the evaluation stack, an array of the local variables, local memory pool, among other things. The CLI easily manages multiple concurrent threads, which can be seen as a list of stack frames. Also, the CLI handles different types of data, that is, has a set of primitives which in turn can be combined with different types of constructors allowing the size value be mapped. The natural size has more benefits on how the JVM defines the storage locations, because 64-bit formats occupy two locations.

If you are interested in reading this article, here's the link: Technical Overview of the CLR.

No hay comentarios:

Publicar un comentario