Thanks for the valuable information Nicolas. I strongly think you should write a book on Flash Player internals! This would be the missing piece for mastering the flash platform... I really miss this kind of information and a good "dummie" introduction to them (There's isn't such a book available...)
Cheers, Marcelo On 8/21/06, Kevin Newman <[EMAIL PROTECTED]> wrote:
Sweet! Thanks for the info. Kevin N. Nicolas Cannasse wrote: >> Here are some things I've been wondering about Actionscript 3.0s >> compiler and runtime engines: >> >> I'm assuming AS 3.0 compiles to a bytecode. What kind of bytecode >> does it compile to? Is it more like Java/.NET CLR, or more like >> Mozilla's Spidermonkey compiler? > > I don't know about SpiderMonkey, but AS3 bytecode is similar to Java > one. It's actually more complicated since there is several way to > access the properties (using prototype, traits or "slots"). > >> Does the compiled code get recompiled during runtime to machine code >> (like a JIT compiler) or does it get interpreted? > > Some Adobe presentation on the subjet was saying that all the code get > JIT'ed, except the $iinit and $cinit functions which are the one > defining the classes and initializing their static variables. > >> Also, how does the compiler deal with typing? Statically typed, >> compiled languages usually have the type set in stone at compile time >> whereas dynamically typed, interpreted languages like javascript and >> php can do type coercion at runtime on the fly. Which one does the >> Actionscript 3.0 runtime do? Does it do both depending on whether the >> type is static or dynamic? > > The complete class structure with type is stored into the Flash9 SWF. > Then local (per-function) type-inference is performed to check the > types coherency. There is some bytecode options that perform > type-casting. For instance everytime a value is stored into an untyped > variable, the opcode 0x82 is "forgetting" about the original value type. > > This makes things actually pretty difficult for other languages with > different type system to be compiled to Flash9 bytecode, but I could > succeed in doing it for haXe (http://haxe.org). > > I started documenting the Flash9 file format on > http://osflash.org/flash9, you can start reading there, but only the > haXe swf library sources are containing the complete specification : > > http://cvs.motion-twin.com/horde/chora/browse.php?rt=ocaml&f=swflib > > Nicolas _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
_______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com