A friend of mine implemented some Block Cipher algorithms in Smalltalk a few years back. By working with the VM engineers so he could have a few things (like 32 bit registers with bit-shift and bit-rotate operations) he managed to come close to or BEAT RSA Data Security's reference implementations in C. In once case, the algorithm was 3% faster. (RSA's implementations used malloc/free in a naive way. Great generational GC in Smalltalk was like a custom buffer cache implemented for free.)
A company I worked for once has two Smalltalk implementations. Some work was done to host one inside the runtime of another. The hosted Smalltalk has a compiler written using Yacc & Lex which was compiled C. The host Smalltalk has one written entirely in Smalltalk. It was discovered, that if you took the text notifications out of the Smalltalk Smalltalk compiler, it runs faster than the C Smalltalk compiler.
A friend of mine implemented some Block Cipher algorithms in Smalltalk a few years back. By working with the VM engineers so he could have a few things (like 32 bit registers with bit-shift and bit-rotate operations) he managed to come close to or BEAT RSA Data Security's reference implementations in C. In once case, the algorithm was 3% faster. (RSA's implementations used malloc/free in a naive way. Great generational GC in Smalltalk was like a custom buffer cache implemented for free.)
A company I worked for once has two Smalltalk implementations. Some work was done to host one inside the runtime of another. The hosted Smalltalk has a compiler written using Yacc & Lex which was compiled C. The host Smalltalk has one written entirely in Smalltalk. It was discovered, that if you took the text notifications out of the Smalltalk Smalltalk compiler, it runs faster than the C Smalltalk compiler.