The recent interesting discussion of performance and vm architectures motivated to get permission to publish the specification of one of the architectures I developed over the years. It can be found at: http://www.smalltalksystems.com/publications/avmarch.pdf
The following is from the document's introduction:
This document describes a bytecode architecture for an experimental Smalltalk virtual machine. The architecture was originally developed by the authors at Digitalk Inc. in 1993-1994. This document is published with the permission of ObjectShare Inc, the successor company to Digitalk.
This architecture is intended to be used for the representation of compiled method in the context of dynamic translating ("JIT") virtual machine. As such, its main purpose is to provide information that can be easily and efficiently processed by such a translator. An important design goal was the minimization of the space needed to represent compiled methods. Because it was design to be the input to a translator, minimization of decoding time was not a consideration of the design. It was not intended for direct interpretation and certain features, such as the "Label" construct would be inefficient if used by an interpreter.
Allen_Wirfs-Brock@Instantiations.com
Many thanks, Alan. This will be really fascinating to read about!
-- John
The recent interesting discussion of performance and vm architectures motivated to get permission to publish the specification of one of the architectures I developed over the years. It can be found at: http://www.smalltalksystems.com/publications/avmarch.pdf
The following is from the document's introduction:
This document describes a bytecode architecture for an experimental Smalltalk virtual machine. The architecture was originally developed by the authors at Digitalk Inc. in 1993-1994. This document is published with the permission of ObjectShare Inc, the successor company to Digitalk.
This architecture is intended to be used for the representation of compiled method in the context of dynamic translating ("JIT") virtual machine. As such, its main purpose is to provide information that can be easily and efficiently processed by such a translator. An important design goal was the minimization of the space needed to represent compiled methods. Because it was design to be the input to a translator, minimization of decoding time was not a consideration of the design. It was not intended for direct interpretation and certain features, such as the "Label" construct would be inefficient if used by an interpreter.
Allen_Wirfs-Brock@Instantiations.com
squeak-dev@lists.squeakfoundation.org