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

Reply via email to