Hey guys, you'd better point out some disadvantages of bytecode once you speak about its advantages!!
This article is, umm, rather incomprehensible to someone who doesn't already know everything about this topic. k.lee
Bytecode may be used as an intermediate code of a compiler, or may be the saved 'tokenized' form used by an interpreter
How can this sentence be related to virtual machine? -- HJH
Bytecode may be used as an intermediate code of a compiler, or may be the saved 'tokenized' form used by an interpreter or a virtual machine
"Byte code", "byte-code", and "bytecode" seem to be fighting it out. Specifically, there is an entry for the Java Bytecode. Anyone have a strong preference as to which the final version should be? Charles Merriam 21:10, 4 February 2006 (UTC)
- Bytecode —Ruud 01:19, 11 February 2006 (UTC)
- I also vote for bytecode; a quick Google search seems to confirm its greater popularity. More importantly, "The Java Virtual Machine Specification" by Lindholm and Yellin (1997) spells it "bytecode". This is surely the ultimate reference, at least for the Java version. --Mike Van Emmerik 12:37, 11 February 2006 (UTC)
- Bytecode, definately. Wouter Lievens 12:51, 11 February 2006 (UTC)
- Bytecode, I don't think "byte" works as an adjective njaard 15:16, 23 March 2006 (UTC)
- Bytecode is more common. Obviously, make redirects. --Leapfrog314 04:58, 20 April 2006 (UTC)
- Bytecode | Acaciz 18:01, 3 June 2006 (UTC)
- Bytecode. ais523 16:55, 15 June 2006 (UTC)
- Page moved. Eugène van der Pijll 21:14, 24 June 2006 (UTC)
"The current reference implementation of the Ruby programming language does not use bytecode, however it relies on tree-like structures which resemble intermediate representations used in compilers.". Is it relevant to talk about Ruby not using bytecode in this article? - Philoctet
incorrect use of term bytecode
I believe that this entire article is a misuse of the term bytecode. I have worked near machine level in computer science for many years, and in my experience, bytecode applies specifically to the Java Virtual Machine, whose instruction set does indeed consist of one-byte opcodes. For other programming languages, the correct term for what this article described is "intermediate language". Visual Basic compiles to an intermediate language, as did Pascal, Smalltalk, and others. These were NEVER to my knowledge called "bytecode."
I think this needs to be fixed, hopefully by the author of this article.
- I agree. / HenkeB (talk) 21:40, 13 January 2008 (UTC)
I disagree. See http://www.google.com/search?hl=en&q=bytecode+-java&btnG=Search PuerExMachina (talk) 04:51, 14 January 2008 (UTC)
Layman's terms
I have to agree with the above comments about how the article needs to be easier to understand. I'm a part-time developer for various languages for the past 10 years. And I don't even understand what byte-code is, nor has this article helped. I'm not suggesting we compromise and make a 'for dummies' article, but just add a sentence here and there to help clarify.
I also agree with this. Specifically, in the sentence, "Since it is processed by software, [bytecodes are] usually more abstract than machine code". In what sense is the word "abstract" being used? When comparing it to "machine code", do you mean more abstract than binary code or more abstract than assembly language? So, is bytecode higher level compared to one of these or lower level than one of these, or just different syntactically?
The following sentence is also similarly confusing: "Compared to source code (intended to be human-readable), bytecodes are less abstract, more compact, and more computer-centric."
From what I understand, being "more abstract" usually means lower level. So how could bytecode be more human readable (less abstract) but then more abstract than machine code??? From the current description, I interpret the former sentence to mean that Bytecode is lower level than assembly, or possibly, even lower level than binary, which isn't possible! I am also not familiar with how the word "computer-centric" is generally used when refering to levels of computer code, but I think this needs to be described more simply.
- In normal computer terminology, the more abstract the code the further it is removed from the physical implementation on the hardware. Usually more abstract code is therefore easier for a human to understand in everyday concepts instead of machine concepts. -- RTC 18:47, 7 February 2007 (UTC)
Bytecode execution techniques?
This and virtual machine both don't explain any techniques used to execute bytecode. I've sketched some basic thoughts out on a blog entry of mine at KernelTrap; but I don't know how current day ones operate, if there's generally optimization, if instruction ordering counts, etc.
binary requirement
Could a textual language be considered bytecode? Obviously not, but this article lists CIL as an example of bytecode, and many other articles call it "bytecode". The article for CIL even calls it both "human-readable" and "bytecode". CIL example Herorev 21:22, 19 November 2006 (UTC)
- It seems CIL is not in itself bytecode, but can be assembled into bytecode. So CIL itself is not a form of bytecode. The only "human readable bytecode" I can think of is one which just uses each letter of the alphabet were each letter stands for the mnemonic of one opcode, for example the letter 'G' (47Hex) for 'Goto'. That would be "readable", and would use one byte for each instruction. Mahjongg (talk) 11:57, 14 January 2008 (UTC)