Toon posts:

Wat is Bytecode?

Pagina: 1
Acties:
  • 208 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Toen ik java leerde programmeren werd me uitgelegd:
Source->bytecode->machinetaal

Dus een tussenvorm tussen sourcecode en binair.

Maar wat is bytecode nou precies?
En waarom heet het zo?

Hoe kan het dat het uitvoerbaar is door Virtual Machines, maar nog niet door een processor? Ook in bytecode moet je toch al bepaalde cruciale dingen weten zoals allerlei counters en registerbewerkingen? Of niet?

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 08-05 10:58

Super_ik

haklust!

bytecode, nooit van gehoort :? volgens mij bedoel je assambler ofzo,

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • jhksema
  • Registratie: Januari 2002
  • Laatst online: 05-04 19:27
Bytecode is een 1-op-1 vertaling van je java-source naar een java-programma. Je kan het zelfs weer decompileren naar java-source, krijg je zelfs je method names weer terug. Daarom dus niet uit te voeren op processor.

Is dus alleen uit te voeren door VM. Omdat het eigenlijk een binaire versie van je source is, is java dus eigenlijk een interpreted language. Tenzij je natuurlijk een java processor gebruikt. Maar met een beetje zoeken vind je daar vast snel meer over (http://java.sun.com/?).

[ Voor 41% gewijzigd door jhksema op 15-01-2003 17:47 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:34

.oisyn

Moderator Devschuur®

Demotivational Speaker

bytecode is gewoon machinecode, maar dan niet bedoeld voor jouw machine
Die bytecode wordt vervolgens geinterpreteerd, of vertaald naar machinecode om vervolgens uitgevoerd te worden

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

machinetaal verschilt per operating system... een JVM is een tussenstap die de bytecode, die dus voor 1 applet altijd hetzelfde is, die de bc vertaald naar machinetaal voor dat type OS en dat type processor... Theoretisch althans.. in de praktijk is de platformonafhankelijkheid van java al ver te zoeken...

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • MisterData
  • Registratie: September 2001
  • Laatst online: 06-05 16:16
Bytecode is niets meer dan machinecode. Die bytecode bevat java-instructies net zoals een .exe x86 (of andere) instructies bevat. Die java-instructies worden door de VM vertaald naar x86-instructies. Het is NIET waar dat Java een geinterpreteerde taal is, dat is het maar gedeeltelijk (sommige delen van een programma worden door een techniek die JIT heet meteen omgezet naar x86 code, maar dat weet ik niet zeker). Je kunt het decompileren ja, maar het hangt af van wat de compiler aan code genereert wat je terugkrijgt als je decompiled :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

In principe is een executable ook bytecode ;)
Maar dan een variant die te lezen is door je OS-VM zelf... Of niet dan?

Bytecode is gewoon "de code voor een bepaalde machine" en de tussenvariant van de Java wordt het vaakst bedoeld met Bytecode, zie verder bijv de uitleg van MisterData :)

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 08-05 11:43
Toevallig leer ik nu net Java voor mijn studie, dus zal ff een citaat geven:

"... de aanpak die daarom voor Java wordt gehandteerd is een compiler die de broncode vertaalt: maar niet naar machinecode, maar naar een nog machine-onafhankelijke tussenliggende taal, die bytecode wodt genoemd. Die bytecode kan via het internet worden verspreid, en wordt op de computer van de gebruiker vervolgens met behulp van een interpreter uitgevoerd. De bytecode is dusdanig eenvoudig dat de interpreter erg simpel kan zijn; interpreters kunnen dan eenvoudig worden ingeboud in Internet-browsers"

Zo, nu moet je het wel snappen ;)

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 22:28

johnwoo

3S-GTE

ACM schreef op 15 January 2003 @ 18:33:
In principe is een executable ook bytecode ;)
Maar dan een variant die te lezen is door je OS-VM zelf... Of niet dan?

(..)
Euh, een executable bevat inderdaad een 'layout' die OS-specifiek is, maar die segmenten bevatten machinecode die wel degelijk direct aan je CPU gevoerd worden. Een executable bevat dus geen bytecode ;)

Overigens lijkt 'executable' me een vrij ruim woord... Het zegt niets meer of minder dan dat je dingetje 'uitgevoerd' kan worden. Een VB scrippie kan ook uitgevoerd worden als je de juiste script engine hebt... Maar de strikte, algemene betekenis van executable is toch wel degelijk een programma in native code.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Een x86 executable is sinds de AMD K6 bytecode; de x86 architectuur is zo ingewikkeld (CISC) dat moderne x86 CPUs de code on-the-fly converteren naar hun interne formaat. Maar met 100 miljoen transistoren is zoiets best snel.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 22:28

johnwoo

3S-GTE

MSalters schreef op 15 January 2003 @ 20:17:
Een x86 executable is sinds de AMD K6 bytecode; de x86 architectuur is zo ingewikkeld (CISC) dat moderne x86 CPUs de code on-the-fly converteren naar hun interne formaat. Maar met 100 miljoen transistoren is zoiets best snel.
Mja, maar dat wordt door de CPU zelf gedaan. De code die je direct aan een CPU voert noem ik native machine code, wat die CPU er vervolgens in hardware mee doet boeit me niet. Het is iig geen VM/software omgeving. Als de CPU die instructies nog verder afbreekt noem ik dat µ-ops, net zoals meneer Intel dat doet ;)

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Maar theoretisch is 'bytecode' gewoon een stom woord voor een binaire file :+
Iig wel als je naar de letterlijke vertaling kijkt, btw de Cruseo cpu van Transmeta doet zelfs nog veel meer in 'software' dan een gemiddelde intel of amd.

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 08-05 14:29
Nee, het is geen 1 op 1 relatie, bytecode is inderdaad een binair formaat, maar de term 'bytecode' specificeert wel een bepaalde structuur en te verwachten inhoud. Ieder bestand wat op een binaire computer opgeslagen is is - per definitie - een binair bestand.

  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 08-05 10:56

TGEN

Hmmmx_

Microsoft's IL is ook Bytecode, en ook nog eens gebaseerd op het Java concept... (jaja, sinds de Sun vs Microsoft lawsuit mogen ze niet meer java'en daar in Redmond... dus wat doen ze? Ze jatten de hele trein...). Dus als je .NET kent, zou je ook het concept van Java Bytecode moeten snappen :).

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
TGEN schreef op 16 januari 2003 @ 06:13:
Microsoft's IL is ook Bytecode, en ook nog eens gebaseerd op het Java concept... (jaja, sinds de Sun vs Microsoft lawsuit mogen ze niet meer java'en daar in Redmond... dus wat doen ze? Ze jatten de hele trein...). Dus als je .NET kent, zou je ook het concept van Java Bytecode moeten snappen :).


Jatten is veel gezegd.
Zie ook hier: [rml][ Alg]Is C# een Java-clone? Waarom of waarom niet[/rml]/

https://fgheysels.github.io/


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 08-05 10:56

TGEN

Hmmmx_

Mja, ze moesten na die lawsuit iig een vervanger vinden voor Java... Dat bedoelde ik er mee te zeggen :).

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
TGEN schreef op 16 January 2003 @ 08:13:
Mja, ze moesten na die lawsuit iig een vervanger vinden voor Java... Dat bedoelde ik er mee te zeggen :).


Ik denk dat ze al met .NET bezig waren ver voor dat de uitspraak van die rechtzaak er was. ;)
Maar goed, er zijn natuurlijk wel enige gelijkenissen tussen die 2.

https://fgheysels.github.io/


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 08-05 10:56

TGEN

Hmmmx_

Jah, ze zagen de bom al vallen... :D. Voor meer info hierover moet ik je naar de PC Pro van Augustus 2001 verwijzen... da's een engels blad van een niveau dat bijna geen enkel nederlands blad overtreft, het van origine duitse c't daargelaten.

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Hmm... Zelfs voor 2001 waren er al berichten over .NET.

Ziehier dit artikel op JavaWorld, dat stamt uit 2000:
C#: Al language alternative or just J--?

Misschien vind je in dit topic van mbravenboer ook nog wel meer info over het ontstaan van .NET:
Het ontstaan van .NET

[ Voor 26% gewijzigd door whoami op 16-01-2003 08:41 ]

https://fgheysels.github.io/


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 08-05 10:56

TGEN

Hmmmx_

Mwa, ik vind het grappig om de soap te volgen, maar in-depth materiaal heb ik weinig behoefte aan... geef mij maar ASM :).

edit:

btw, we gaan wel offtopic zo :)

[ Voor 18% gewijzigd door TGEN op 16-01-2003 08:44 ]

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly

Pagina: 1