Extending Pharo with C Types to Improve Performance

作者: Ronie Salgado

DOI:

关键词:

摘要: The highly dynamic nature of Smalltalk provides a high degree flexibility, but at the expense performance. On other hand, static system programming languages such as C are really fast, less flexible and harder to use than Smalltalk. Our hypothesis is that by mixing concepts these two worlds in single environment, we able have improved performance level flexibility same time. In this work extend Pharo adding type native data types present along with object type. We compiler virtual machine our add custom bytecode instructions for dealing data. With approach obtain improvement on average between five times faster numerical computations using precision floating point arithmetic 1. Two Nowadays most can be placed very different worlds: convenient managed high-level world, hard fast world languages, king known C. language belongs world. everything an object, objects only communicate via message passing. These live services managing lifetime, dispatching messages executing compiled methods implement handlers messages. Compiled contain portable tell what do. executes method

参考文章(11)
Igor Stasenko, Stéphane Ducasse, Camillo Bruni, Guido Chari, Benzo: Reflective Glue for Low-level Programming International Workshop on Smalltalk Technologies. ,(2014)
Luc Fabresse, Igor Stasenko, Stéphane Ducasse, Camillo Bruni, Language-side Foreign Function Interfaces with NativeBoost International Workshop on Smalltalk Technologies. ,(2013)
Mark J. Guzdial, Kimberly M. Rose, Squeak: Open Personal Computing and Multimedia Prentice Hall PTR. ,(2001)
Eliot Miranda, Clément Béra, A partial read barrier for efficient support of live object-oriented programming international symposium on memory management. ,vol. 50, pp. 93- 104 ,(2015) , 10.1145/2754169.2754186
Mark B. Ballard, David Maier, Allen Wirfs-Brock, QUICKTALK: a Smalltalk-80 dialect for defining primitive methods conference on object oriented programming systems languages and applications. ,vol. 21, pp. 140- 150 ,(1986) , 10.1145/960112.28711
Guido Chari, Diego Garbervetsky, Stefan Marr, Stéphane Ducasse, Towards fully reflective environments sigplan symposium on new ideas new paradigms and reflections on programming and software. pp. 240- 253 ,(2015) , 10.1145/2814228.2814241
Toon Verwaest, Camillo Bruni, Mircea Lungu, Oscar Nierstrasz, None, Flexible object layouts: enabling lightweight language extensions by intercepting slot access conference on object-oriented programming systems, languages, and applications. ,vol. 46, pp. 959- 972 ,(2011) , 10.1145/2048066.2048138
Clément Bera, Marcus Denker, Towards a flexible Pharo Compiler IWST. ,(2013)
Clément Béra, Eliot Miranda, Marcus Denker, Stéphane Ducasse, Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization The Journal of Object Technology. ,vol. 15, ,(2016) , 10.5381/JOT.2016.15.2.A1
S. Ducasse, E. Miranda, A. Plantec, Pragmas: Literal Messages as Powerful Method Annotations Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies. pp. 9- ,(2016) , 10.1145/2991041.2991050