CやJavaのどこが静的なの?

結構最近までメインフレームにスタックがなかったと聞いて、CやJavaだって動的じゃね?と気づいた。

メインフレームLinuxの実装(後編)(1/3) − @IT

もちろんCやJavaを静的言語と呼んで、RubyPython動的言語と呼ぶ場合には、それは動的型付け言語、静的型付け言語を略しているだけだ。

でも、静的言語に"static"というキーワードがわざわざあるということは、静的言語も基本はdynamicなわけだ。当然なのだが、メインフレームがそうではないという事実を知って、実は当然ではなかったと知る。

スタックを使ってメモリを動的に、あるいは暗黙に割り当てるというのは、当たり前のことではなかったのだ。確かにFORTRANとか基本staticだったもんな。

スタックなかったら面倒くさいだけじゃなくて、メモリ馬鹿食いにならないか?mallocとfreeだけで頑張っていたのだろうか?メモリをいくら使うか作ってみないと分からないみたいにはならんから、そのほうがよかった時代もあったんだろう。

計算機もじわじわと進化しているのだ。

動的型付けもスタックメモリの発明みたいなもので、後々の人がみると静的とかめんどくせえとなるのだろうか?