Jump to content

Talk:Common Intermediate Language

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lingwitt (talk | contribs) at 12:19, 26 May 2008 (Too Specific). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconMicrosoft: .NET Unassessed
WikiProject iconThis article is within the scope of WikiProject Microsoft, a collaborative effort to improve the coverage of articles relating to Microsoft on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
???This article has not yet received a rating on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.
Taskforce icon
This article is supported by WikiProject .NET.

Too Specific

The notion of a common intermediate language is not specific to Microsoft's .Net; this idea has been around since the time people tried to understand computation and compilers. If anything, this article should be discussing things like UNCOL as well, and Microsoft's CIL should be just one example. --Lingwitt (talk) 12:19, 26 May 2008 (UTC)[reply]

The closest thing I could find in 10 seconds of googling is this link, and even it has a link to that same 404 page:

http://weblogs.asp.net/kennykerr/archive/2004/09/09/introduction-to-msil-part-3-defining-types.aspx

Machine Symbolic Intermediate Language?

I have never heard of the term "Machine Symbolic Intermediate Language". Google and MSDN don't bring up any 1:1 matches. Is there any evidence of this usage? Vector4F 20:17, 18 August 2005 (UTC)[reply]

Likewise. Perhaps this statement should be removed. There are enough acronyms in the world without people inventing new ones for the sake of it! Rickyp 11:10, 20 September 2006 (UTC)[reply]

CIL?

Why does MSIL redirect to here? In all the documentation I've come across, this language has always been called "MSIL." Do a Google search for CIL and you'll get pages on unrelated material. Do a search for MSIL and--remarkably--you'll get pages about .NET and the Microsoft Intermediate Language. If no one objects within a few days, I'll redirect CIL to MSIL and change all references to CIL to MSIL. If you have a compelling contrasting viewpoint (with references), please submit it.

To back up my argument, you may go to MSDN (Microsoft's technical website) and type in CIL. There you'll get hits on unrelated material. Type in MSIL and you'll get hits on MS's MSIL compiler. You can also check out Jesse Liberty's book Programming C#. He also discusses MSIL and never mentions CIL. Frecklefoot | Talk 14:30, Jun 24, 2004 (UTC)

IL was referred to as MSIL for a long time before Microsoft officially changed the name to CIL. That is why you will find more references to MSIL. Be that as it may, the official name of the language has been CIL since before the v1 .NET Framework shipped. I fixed up the references in the wikipedia to be up-to-date with current terminology, while leaving in references to the original name.
The reason for the change is the the runtime was standardized, including IL, and so they didn't want any Microsoft-specific names in the standardized portions of the runtime.
Perhaps relevant: http://dotnet.di.unipi.it/EcmaSpec/PartitionIII/index.html uses CIL. - Bevo 17:27, 30 Jun 2004 (UTC)
I don't consider a count of google search hits to be indicative of how up-to-date a term is. In fact, the more out of date term is likely to have more hits, by default I would think.
Onebit 20:07, Jun 24, 2004 (UTC)

Thanks for the update! Frecklefoot | Talk 20:32, Jun 24, 2004 (UTC)

Sure thing! Onebit 20:38, Jun 24, 2004 (UTC)

Byte me

The CIL is not bytecode (byte = 8 bits), it is actually word based (WORD = 16 bits). Saying "wordcode" however sounds weird. Is there a way to describe it so it is correct and not weird-sounding? Right now it says it is bytecode, which is not correct (Java is bytecode based). Frecklefoot | Talk 18:57, Jun 25, 2004 (UTC)

Use of "bytecode" is appropriate. Originally the term "bytecode", no-doubt, referred to the size of the instructions. However, bytecode has been around for a long time, and not every example of bytecode centers around bytes in terms of the actual data stream. Even the existing wikipedia entry for bytecode refers to the fact that not all bytecodes are byte-length. At this point "bytecode" is a word unto itself; on the other hand, using "wordcode" would be making up a new word.
Meanwhile, the CIL portion of the CLI spec refers to the instructions as "bytecodes". --Onebit 20:47, Jun 30, 2004 (UTC)
I suppose one of the earliest examples of this type of computer language was called P-code (or pseudo-code), see UCSD p-System. I'd have preferred that a term like P-code to have been used instead of bytecode, but I guess it's too late now. - Bevo 21:06, 30 Jun 2004 (UTC)
It's a generic name and it's easy to say, sounds like a computer term, and has been used a lot. P-code, as Bevo mentioned, stands for psuedo-code, but it's really too generic of a name. I've even seen it used to refer to Java, Perl, Python bytecode etc.. This harks back to it's more common meaning - pseudo-code is what you jot down on the back of napkins, not for processing. That's probably why we use bytecode and not p-code. I have only used the term "bytecode" to refer to an intermediate language while I have used pseudo-code many times to refer to generic programming.
Vector4F 05:10, 12 Jul 2004 (UTC)
It needs to be called p-Code. Pseudo-code can mean both bytecode and "compiler nonspecific" code (for writing algorithms), but p-Code is always used to refer to bytecode (or wordcode, or dword code). And these articles need to be merged. You guys aren't discussing -whether- they should be merged; everyone agrees they should. You're discussing which term is more appropriate, which deserves a whole different "disputed article" sticky note.
Cheburashka 20:49, 4 October 2006 (UTC)[reply]

MSIL is one kind of CIL

The microsoft research project phoenix uses the term CIL with its own intermediate language wich has nothing to do with MSIL. In my oppinion CIL stands for all bytecode languages that are 1) shared between multiple compilers and 2) meant to be compiled to machine code instead of being interpreted. Have a look at http://research.microsoft.com/phoenix

SealedSun 21:33, 27 January 2006 (UTC)[reply]

That's understandable, but as it says in the article, after it was standardized it dropped the "Microsoft" bit, because it is a spec developed jointly with IBM and others. Technically it would make more sense to merge the MCIL article with CIL. But until there is an article made about "other" CILs, I wouldn't worry about it. Foofy 00:21, 7 February 2006 (UTC)[reply]
Well, articles about other CILs, they'll be pretty rare because the only other implementation that counts[Mono] aims to achive Binary Compatibility with Microsoft's runtime. So, their CIL needs to mimick Microsoft's CIL. Yuvi

CIL can be targeted by a regular C/C++ compiler

This should be mentioned somewhere - CIL, notably, has pointers, unlike JVM, which uses segmented memory. Take basically any C/C++ application, feed it to a C++/CLI compiler and you get a 100% .NET executable (well, not really true in practice, but it's more an accident of implementation than anything else, like how executables produced by Visual C++ will still depend on the native C runtime DLL. No reason a C/C++ runtime couldn't be implemented on top of BCL)

Well, I'll invite you to add it, it's wikipedia after all:)

text/bytecode contradiction

Is CIL a textual programming language, like a scripting language, or a type of bytecode? This article claims it is both! Herorev 19:53, 19 November 2006 (UTC)[reply]

Agreed.
"Upon execution of a .NET assembly, its CIL is passed through the Common Language Runtime's JIT compiler to generate native code" - so where does bytecode come into all this? -Wootery 20:59, 24 May 2007 (UTC)[reply]
CIL has both a textual representation as well as a bytecode representation. The bytecode version is used when persisting the code in an .NET assembly. When disassembled, the textual representation is used. Both are semantically same. (Excuse me for ressurecting an archaic thread) --soum talk 17:06, 16 February 2008 (UTC)[reply]

Merge from MSIL

I merged MSIL into this article basically by copy-pasting the MSIL article. Please make sure all the references to MSIL/CIL/IL within the text are correct. Tocharianne 00:52, 30 December 2006 (UTC)[reply]

Merger proposal

I believe that .NET metadata needs to be merged into CIL. They are effectively the same concept. The .NET Metadata page has needed expert help on for some time, and being the expert that I am (pushing my ego), it would make sense to put into this page. ZacBowling (user|talk) 19:19, 3 December 2007 (UTC)[reply]