:: I disagree that C, ASM or C++ are not dynamic. They are as dynamic as the Computer and OS they are running on are. If I write a C prog. that includes a small and simple compiler I can even load uncompiled C-code at Runtime. I don't even need to do that ! I can just call an existing compiler under various systems (or distribute it)! Every compiler operation can be done at Runtime / dynamic :/ Therefor every C program can be dynamic !
::Also note that "dynamic" does not necessary mean that I load code written in the same language ! I can just take a C subset (or anything else) and as long as it extents a Program written in C that makes my C prog. dynamic (even loading compiled code is dynamic) !
:: The difference between static and dynamic is the ability to get and lose space and the ability to write , read and jump to this space.
::It all comes down to the simple questions:
::"Can I get/lose new space for new program code" and the answer is "yes, use malloc/free"
::"Can I read/write to that place?" and the answer is "Yes you can!"
::"Can I jump to new loaded executeable code?" again "Ofcourse!"
::That means a program written in the language can "expand" , "contract" and "change" which makes it and the language dynamic because I can do it due to the ability the language provides for me.
::Also note that most interpreters are written in C. That means a C (!) Program does interpret and load dynamic stuff (which makes C the dynamic language).
:: I will not change anything but I hope that this article will change its viewpoint on dynamic or static. In fact there is no static language I can think of and if there is one its a safety design not a missing ability (since all OS provide the ability).