2021-09-18 TIL マネージド言語 or Managed Code
http://ppl.jssst.or.jp/index.php?ss2021 の資料をパラパラ眺めて(イベント自体には不参加です)
からの
で「マネージド言語」という言葉が使われているのが気になって、なんだろうと思ったというお話。
同イベントで https://tugawa.github.io/files/jssst-ss-2021.pdf も公開されており、こちらも歴史への言及が面白かった。(TODO:何か書く)
もとはMicrosoft、からのGoogleも
.NET文脈から言われているようなので、ジャンル的には最近の言葉だったか。
同じように疑問を持っている
もとのmanaged codeは狭義で .NET CIL 上のcodeのことだったが、
何がmanagedなのか、という点では上記Q&Aなどでは memory management に注目していて、確かに
それを別の文脈で借用している
(もとのmanaged codeというのも何なんだというか、 説明とかブランディングのために選ばれた言葉だったのかな? JVMなどでもnative codeといういい方はあったと思うけど、それに対する
CLIも堂々とCommonって言ってたりするし。。
JavaだとJava class(ファイル名から?)とか byte codeって言われることが多かった?
表現的にはでも、Javaで書かれてbyte codeへ返還されJVMで実行されるプログラム全体のことを managed code って呼びたい感じでしょうか。
byte code は実体のある実装の方ですしね。
GCや型安全に注目した文脈では
(TALとかw)
NaCL とか検査済みバイナリのような考え方もあって、それに対してはより広い概念、かつ仮想機械言語・中間言語・ランタイム
プログラム言語の実行環境周辺では、ランタイム・Unsafeとかも言葉として導入されていたと思いますが、ざっくり世界観を分ける言葉が欲しかったということでしょうあVMと
-
https://en.wikipedia.org/wiki/Managed_code https://research.csiro.au/data61/microvm/
-
https://dl.acm.org/doi/10.1145/2907950.2907958
-
→ ”Managed Languages” という言及があるもの。ランタイムVMが
-
-
-
→ こちらはかなり私の認識に近いまとめをしてくれています。やや恣意的な分類・言葉で境界は曖昧になるもの。基本は型安全などwランタイムVMが存在するプログラム
-
-
https://stackoverflow.com/questions/3563870/difference-between-managed-and-unmanaged