Category:Smalltalk: Difference between revisions

Content added Content deleted
Line 155: Line 155:


== Implementation ==
== Implementation ==
Most Smalltalk implementations are based on bytecode. This is emitted by a bytecode compiler which is part of the environment (in contrast to external tools, like javac). Bytecodes are operations for a virtual stack based machine, which is either interpreted by an interpreter (part of the runtime system), or dynamically compiled to machine code (JITTER). Bytecode is not standardized and usually not compatible among dialects.
Most Smalltalk implementations are based on bytecode. This is emitted by a bytecode compiler which is part of both the development and runtime environment (in contrast to external tools, like javac). Bytecodes are operations for a virtual stack based machine, which is either interpreted by an interpreter (part of the runtime system), or dynamically compiled to machine code (JITTER). Bytecode is not standardized and usually not compatible among dialects.


Some implementations support source-to-source compilation to C, JavaScript or Java. These may or may not show some limitations in the support for dynamic changes at execution time. Typically, the full dynamic bytecode is used for development, followed by a compilation phase for deployment/packaging.
Some implementations support source-to-source compilation to C, JavaScript or Java. These may or may not show some limitations in the support for dynamic changes at execution time. Typically, the full dynamic bytecode is used for development, followed by a compilation phase for deployment/packaging.