senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. B̅ (cmplstofb@mathtod.online)'s status on Saturday, 20-Aug-2022 01:24:40 JST B̅ B̅

    プログラミングにおけるreflectionの概念を理解するところで詰まっている。

    属性値やメンバ函数を参照するときに変数を介せたり,属性値・メンバ函数の一覧を取得できたりする機能を「reflection」って呼ぶ理由というか道理が分からない。

    「反射」とか「反省」という意味のはずだけど,その意味とプログラミング言語における役割とが全然噛み合っているように思えない。

    In conversation Saturday, 20-Aug-2022 01:24:40 JST from mathtod.online permalink
    • B̅ (cmplstofb@mathtod.online)'s status on Saturday, 20-Aug-2022 01:34:56 JST B̅ B̅
      in reply to

      型情報(=属性値やメンバ函数など)というのは,〝普通のコーディング〟ではソースコードを書いているときにしか分からないけど,それを実行しているときにでも分かる(=変数で参照しているから属性値やメンバ函数自体の名前が分かったり,あるいはもっと単純に属性値やメンバ函数の一覧が分かったりする)ようにコンパイル済みの実行コードに「映し出す」っていう感じですかね……?

      BT: https://pleroma.amefur.asia/objects/5ac2dd6b-e4a2-42ff-b72f-f37aff0a40d0

      In conversation Saturday, 20-Aug-2022 01:34:56 JST permalink

      Attachments


    • B̅ (cmplstofb@mathtod.online)'s status on Saturday, 20-Aug-2022 01:45:46 JST B̅ B̅
      in reply to

      SomeObjというオブジェクトに実装されているmemberFunc()というメンバ函数を呼び出すときの書き方として,

      ↓こうあるのを
      SomeObj.memberFunc();
      ↓こう書くこと,あるいは書ける機能を
      SomeObj.invokeMember("memberFunc");

      「reflection」と呼ぶという理解をしていて,たぶん合ってるんだけど,どこが「反射」なの???という疑問があった。
      「reflection」にある意味のうち,重要なのは「跳ね返す」という要素よりむしろ「映し出す」という要素なのか。

      In conversation Saturday, 20-Aug-2022 01:45:46 JST permalink
    • B̅ (cmplstofb@mathtod.online)'s status on Saturday, 20-Aug-2022 01:59:55 JST B̅ B̅
      in reply to

      いや,私の理解が中途半端なんだと思います……。ただ,JavaScript言語だと

      Math.floor(1.75);
      を
      Reflect.apply(Math.floor, undefined, [1.75]);
      と書けるようにする機能に「reflection」の名前が当てられているんですよね。

      (公式文書じゃないので典拠性に欠けますが)
      https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply

      …ていうか私の書き方だとSomeObj自体に.invokeMember()メンバ函数があることになっちゃってるな……。

      In conversation Saturday, 20-Aug-2022 01:59:55 JST permalink

      Attachments


Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.