Perhaps you can take some ideas from Smalltalk VM. Some are very fast (only a 4:1 ratio over optimised C++). See the tread "Integer micro-benchmarks" on comp.lang.smalltalk Some reference: http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html (an old implementation of Smalltalk-80) http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html (the story of a recent implementation of Smalltalk) See also: www.squeak.org Squeak is an open source implementation of Smalltalk with a decent VM written in Smalltalk then translated in C the compiled for a lot of platform. The Smalltak paradigm are near from functional programing. Have a nice day. Alain "chris.danx" a �crit dans le message news: HtiF6.5582$Tv2.757613@news6-win.server.ntlworld.com... > Hi, > Someone on these news groups suggested to someone that in order to make a > reliable Virtual Machines, they needed the opinions of many programmers in many > languages. {Can't remember who, some of those threads get huge and i get lost! > Good idea who ever it was!} > > I'm involved in a project to develop a VM and i was looking for peoples thoughts > on this. I've started with a simple RISC machine that's not finished yet. I > will complete this soon, but i've been thinking my approach is flawed. Not to > say RISC is bad, but maybe it's too simplistic or lacks specific support for > features that'd make it A:more efficient and B:easier to program. > > > The language project will support the following imperative features: > > - For/While loops > - Procedures > - side effect enabled programming (variables) > - "tidy" pointers > - modes for parameters (only for procedures, functions nonmodified params) > - Generitcity (polymorphism) > > > and the following functional features > > - pattern matching > - side effect free programming (values) > - higher order functions > - guards > - Algebraic types > - N-Tuples > - Genericity (polymorphisism) > > and the following "not sure" or "in many paradigms" features > > - Units bound to values/variables > - Lists [] > - Arrays <> > - Records > - Sets (and Records as Sets) {} > - Enumeration types (with extensiblity and subtyping) > - Subtyping > - Relational programming (some paper i really liked described it, prologish > but somewhat different) > > > This list is quite exhaustive and i know it doesn't look that nice now, but the > work i've done so far seems to indicate this is all possible and looks nice too. > The major stumbling block is state->stateless programming but i'm looking and > trying ideas out. Something will be done; whether or not it's pretty is another > matter. > > I know many folks get annoyed when they here about "yet another new language" > but this is not about the language itself. It is about me learning about all > this stuff and seeing what i can do with a big collection of (sometimes > unrelated) issues and see what can come of it. > > The real problem is the VM, so i'm looking for peoples thoughts on this. What > concepts would you have found useful, and what you'd rule out. > > Please feel free to ignore this if you don't want to contribute (i know you will > anyway). > > > Regards, > Chris > >