I wondered if there is a programming language which compiles to machine code/binary (not bytecode then executed by a VM, that\'s something completely different when considering
C# 4.0 has many, if not all of these characteristics. If you really want native machine code, you can compile the bytecode down to machine code using a utility.
In particular, the use of the dynamic
keyword allows objects and their members to be bound dynamically at runtime.
Check out Anders Hejlsberg's video, The Future of C#, for a primer:
http://channel9.msdn.com/pdc2008/TL16/
In a similar vein to Lisp, there is Factor, a concatenative* language with no variables by default, dynamic typing, and a flexible object system. Factor code can be run in the interactive interpreter, or compiled to a native executable using its deploy
function.
* point-free functional stack-based
I don't know of any language that has exactly those capabilities. I can think of two that have a significant subset, though: