Software Directory / ECMA-335: The Other Virtual Machine

Sept. 2, 2002
The Java virtual machine (JVM) is not alone in the world. Microsoft decided that it could do the JVM one better with its .Net environment. While larger, .Net is far from an open system. Its core virtual machine (VM) and primary programming language,...

The Java virtual machine (JVM) is not alone in the world. Microsoft decided that it could do the JVM one better with its .Net environment. While larger, .Net is far from an open system. Its core virtual machine (VM) and primary programming language, C# (pronounced C sharp), is an ECMA (European Computer Manufacturer Association) standard (www.ecma.ch).

As with Java, a plethora of acronyms describes the various technologies in ECMA-335. Some common ones are shown in the table. CIL is the machine code for the VM. Surprisingly, the specification never mentions a VM but describes it in excruciating detail.

The VM differs in intent from Java because it is designed to support a wide range of programming languages, from Visual Basic to Eiffel. The CLS provides the glue to hold the architecture together so that a C# program can seamlessly use objects from programs written in other languages, such as J# or possibly Cobol.

The VM's design is much more complex than a JVM because the CLI must handle legacy applications written in languages like C++. It does this by dividing applications into managed (like C#) and unmanaged (like C++) code. Developers can write managed code in C++.

Managed and unmanaged code deal with memory usage. Garbage collection supports managed code, while unrestricted pointers are in the unmanaged code realm. Garbage collection makes C# architecturally closer to Java than C++, but its syntax is closer to C++.

Microsoft has a shared-source version of its VM for noncommercial use. The VM is also available on non-Windows platforms. Check out Ximian's (www.ximian.com) Mono project for an open-source version of the ECMA-335 platform and more.

COMMONALITY
CIL Common Intermediate Language
CLI Common Language Infrastructure
CLS Common Language Specification
CTS Common Type System

Sponsored Recommendations

Near- and Far-Field Measurements

April 16, 2024
In this comprehensive application note, we delve into the methods of measuring the transmission (or reception) pattern, a key determinant of antenna gain, using a vector network...

DigiKey Factory Tomorrow Season 3: Sustainable Manufacturing

April 16, 2024
Industry 4.0 is helping manufacturers develop and integrate technologies such as AI, edge computing and connectivity for the factories of tomorrow. Learn more at DigiKey today...

Connectivity – The Backbone of Sustainable Automation

April 16, 2024
Advanced interfaces for signals, data, and electrical power are essential. They help save resources and costs when networking production equipment.

Empowered by Cutting-Edge Automation Technology: The Sustainable Journey

April 16, 2024
Advanced automation is key to efficient production and is a powerful tool for optimizing infrastructure and processes in terms of sustainability.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!