4 ms·
> If the symbols are "hard linked", it is not dynamic anymore. Lies, slander! ;-) Anything that happens within a function can be treated as a black box, and c
by icky 19y ago
> If the symbols are "hard linked", it is not dynamic anymore.
Lies, slander! ;-)
Anything that happens within a function can be treated as a black box, and compiled down to the metal, if you like.
The language can be as dynamic as you like; that doesn't preclude the output format from being tightly optimized machine code.
- Tichy 19y agoWhat about the things you pass into the function? You can't know their properties in advance, in general, or can you?
- icky 19y ago> What about the things you pass into the function? You can't know their properties in advance, in general, or can you? You can know that, e.g. a function passed in as an argument can be dereferenced as a pointer stored in a specific offset on the stack. If your typechecks are compiler-generated statements inserted before a function call, then if you know at compile-time (via declarations or type inference, or type propagation) that a certain variable (to be passed as an argument) will always be of the correct type T, then you can omit the typecheck, as well as boxing/tagging. You can get really close to the metal this way, and still have your language be as dynamic as can be.