hvordan actionscript virtuel maskine virker

, hvordan actionscript virtuel maskine virker,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, hvis du er involveret med as3 udvikling, du har måske hørt om en virtuel maskine, der bor i flash aktør eller af den såkaldte bytecode din kode bliver omdannet til.men hvad er de helt præcist?,,, en betydelig del af flash - spiller, avm, – den actionscript virtuel maskine.når du samle din as3 kode det bliver omdannet til en kombineret vejledning, kaldet bytecode, som er indbygget i den producerede og omvendt.som bruger laster stg til flash - spiller, avm parses den bytecode og gennemfører det skridt for skridt. lad os gennemgå processen lidt mere detaljeret: se følgende erklæring og tro, at vi ønsker at gennemføre det (beregning af resultatet og overdrage det til "foo"): foo = 2 + 3 * 4, set fra et menneskeligt synspunkt er denne linje betyder "gang 3 af 4, tilsættes 2 til resultatet, og tildele det en variabel, der hedder foo". på den anden side, hvis en computer læser denne linje, ville det opbevarer det som "karakter, f, efterfulgt af karakter o efterfulgt af karakter o, efterfulgt af karakter rum, efterfulgt af karakter er efterfulgt af..." og så videre.i denne stat, disse oplysninger er temmelig ubrugelig og yderligere skridt der skal tages for at vende den erklæring til noget, at en maskine kan udføre.det, vi skal gøre, er at udarbejde en kildekode.,, de, som jeg sagde før, oversigten over rå kildekode, en samling af tegn, der ikke betyder noget for en computer.med henblik på at få de nødvendige oplysninger, vi er nødt til at løbe koden igennem nogle procedurer.først bør vi vende strømmen af personer i ord og for det andet at omsætte dette i domme. det første skridt for at vende figurerne i ord er lavet af en tokenizer, der hovedsagelig udfører medlemsstaternes analyse af kildekoden.det løber over de personer og grupper i serie "brug" (og det er også bestemmende for deres type - identifikatorer, operatører, konstanter...).efter tokenizer (det kaldes også en lexer btw) afslutter sit arbejde, vi får et system, som kan illustreres på følgende måde: [identifikator foo] [operatør er lig med] [2] [operatør plus heltal] [3 heltal] [operatør)] [heltal, 4], er dette et højere niveau struktur indeholder "ordene" i stedet for den rå tegn, som beviset føres ind i en parser.den udfører semantiske analyse af beviset og samler dem i maskinen instrukser.med andre ord, den anlægger sætninger ud af ordene (tokens) og fornuftigt ud af dem (dvs. udarbejder instrukser ud af dem.for eksempel, hvis de parser er givet en erklæring 2 + 3; jeg +; som poletter den parser først skal adskille møntefterligninger i "straffe" (2 + 3 og i + +) og derefter rent faktisk forstår dem (det første er at tilføje operation, og for det andet er en tilvækst).efter at vi forstår den instruktion, vi rent faktisk kan udarbejde instrukser til maskinen ud af input, efter parsing beviset på vores snor vi får følgende instruktion:, tryk 2 - 3 - 4 gange tilføje tildele "foo", er disse instruktioner, som en computer kan udføre.kompres til en binær form, og du har bytecode.bytecode er en liste med instruktioner om, at maskinen er meget god til forarbejdning, og som, når de behandles med for få de ønskede resultater.,, tolken, efter vi har udarbejdet en kildekode til bytecode kan vi udrette med en virtuel maskine.det vm er software, som gennemfører bytecode en undervisning på en gang, så lad os bare gå gennem fortolkning af vores erklæring:,, tryk 2, - - for at skubbe det nummer 2 i skorstenen.de har en stak vm i henrettelse, som de befaler, kan operere på, det er at skubbe på og skrid værdier (http: //en.wikipedia.org /wiki /stack_ (data_structure)).i øjeblikket er det, der ser sådan ud: [2], tryk på 3, - - en mere tal i skorstenen.nu ser det ud, som om [2], til 4, - - endnu et tal i skorstenen.nu ser det ud, som om [2];,, formerer sig, - - denne kommando - 2 - værdier fra skorstenen, mangedobler dem og får resultatet tilbage til monitoren.det gamle værdier 3 og 4 (der i øjeblikket er på toppen af stack), mangedobler dem og skubber den deraf følgende 12 - bunken.det påvirker de stak ud som [2, 12], tilføje, - - du har sikkert gættet det: kommando - 12 og 2 fra skorstenen, tilføjer dem og skubber den resulterende 14 i skorstenen.nu kun 14 forbliver i stakken.,, tildele "foo", - - denne kommando kommer en værdi fra skorstenen og overdrager det til en variabel, der hedder foo.så nu er det variable foo indeholder værdi på 14 og stak er tom.,, det er det!dette er et eksempel på en meget enkel erklæring udført af en meget enkel virtuel maskine.lad os undersøge en anelse mere kompliceret, f.eks.: bar = 12 /4 + 2) - (6 - 9) * 3, kan udarbejde - jeg siger "måske", fordi der er forskellige måder at udarbejde oversigten): - 12 - 4, tryk 2 tilføje kløft på 6 trykke 9 træk - 3) udtræk tildele "bar", vil dette fortolkes som:,, de første 3 skubber tilføjes de stak: [12, 4, 2], tilføje, - - vil beløb 2 værdier på toppen af stak: [12, 6], dele, - - vil pop - 6 så far 12, del 12 af 6 og skubbe det resultat, at de stak: [2], de næste to kommandoer vil skubbe hele tal i stakken: [2, 6, 9], træk, - - vil trække 2 numre øverst i bunken.vil far 9, 6, så træk 6 fra 9 og skubbe det resultat, at de stak: [2 - 3] et heltal, vil blive skubbet til stak: [2 - 3, 3], formerer sig, - - vil pop og ganger 2 numre øverst i bunken.- 9, der er 3 gange - 3, vil blive skubbet tilbage til den stak: [2 - 9], træk, - - vil trække - 9 fra 2 og skubbe det resultat, at de stak: [11], tildele, - - vil pop - 11 og overdrager det til en variabel, der hedder "bar".der er nu tomt.,, resultatet er nu lagret på en variabel, der hedder "bar", og det er 11.yay!,, konklusion, at det er den mest grundlæggende oplysninger om vm, det kan komme i handy, når du lære nogle små flash spiller her.det vm i flash spiller, er naturligvis langt mere kompliceret, men den base, er den samme som i eksempel fremlagt ovenfor.,, hvis du ønsker at lære mere om den actionscript virtuel maskine, kan du tage et kig på denne pdf - dokument fra adobe.tak for det!,



Previous:
Next Page: