Aug

14

Even the concept of 'programming language' is becoming somewhat blurred. In years past a language, and it's associated compiler, would translate a program written by a human directly into machine code for a specific machine. Working on a different machine (unix vs. DOS vs. Mac) required a completely different compiler.

Today in many cases what happens is the language compiles to an intermediate 'bytecode' that is then subsequently executed with a second program running on the actual machine, referred sometimes as a virtual machine. The advantage here is that the bytecode can be the same regardless of the machine it is running on, with only the virtual machine having to be adapted to a particular hardware platform. This has proved very successful, with, as noted, Java and web browsers being the archetypical example. One minor disadvantage is that the resulting programs run somewhat slower than the native compiler mentioned above, however in this day and age the gluttony of computer power and resources make the speed difference, in most cases, incidental.

Microsoft took this concept once step further by making available a huge library of pre-written functions to do a very large variety of tasks (in addition to the virtual machine concept, which they call the Common Language Runtime (CLR)). The programmer then simply pulls in the functions he/she needs from the library and they can put together a program much more quickly. This is the approach that Microsoft has taken with its .NET Framework. Then the programming language exists more to string in the various functions. To wit: there are four languages from Microsoft that can interface with the same library: C#, C++. Visual Basic, and J# and each produces the same code for the CLR.

It is also not at all uncommon for a modern application to mix several different languages; this has been made all the more easier with the separation of tasks described above. A webpage may be written with HTML and XML, then use AJAX and SQL to dynamically build content and pull from a central server, with a little Java and C# thrown in for specialty functions.

It's an ongoing evolution, that's for sure.

-Jon

Jon Longtin, Ph.D.
Associate Professor and Undergraduate Program Director
Department of Mechanical Engineering

State University of New York at Stony Brook


Comments

Name

Email

Website

Speak your mind

Archives

Resources & Links

Search