[論文レビュー] An Overview of Nominal-Typing versus Structural-Typing in Object-Oriented Programming (with code examples)
本論文は、オブジェクト指向プログラミングにおける名前型付けを形式的に定式化する数学的モデル、NOOPを提示しており、主流の名前型付け言語における継承とサブタイプの同等性を証明している。本論文は概念的定義とコード例を通じて名前型付けと構造型付けを対比し、OOPにおける型システム設計の基盤を確立している。
NOOP is a mathematical model of nominally-typed OOP that proves the identification of inheritance and subtyping in mainstream nominally-typed OO programming languages and the validity of this identification. This report gives an overview of the main notions in OOP relevant to constructing a mathematical model of OOP such as NOOP. The emphasis in this report is on defining nominality, nominal typing and nominal subtyping of mainstream nominally-typed OO languages, and on contrasting the three notions with their counterparts in structurally-typed OO languages, i.e., with structurality, structural typing and structural subtyping, respectively. An additional appendix demonstrates these notions and other related notions, and the differences between them, using some simple code examples. A detailed, more technical comparison between nominal typing and structural typing in OOP is presented in other publications.
研究の動機と目的
- 数学的モデルを用いて、名前型付けOOP言語における継承とサブタイプの関係を形式化すること。
- オブジェクト指向型システムにおける名前型付け、名前型付けのサブタイプ、および名前性とその構造的同等物を定義・対比すること。
- 主流のOO言語における名前型付けと構造型付けの違いを概念的に明確にすること。
- 付録における具体的なコード例を通じてその違いを示すこと。
- OOPにおける名前型付けと構造型付けのさらなる技術的比較の土台を築くこと。
提案手法
- 名前型付けOOPの形式的数学的フレームワークとしてNOOPモデルを構築すること。
- 型の名前と明示的宣言に基づく型の性質としての名前性を定義すること。
- 名前ベースの型同等性と継承関係を通じて、名前型付けを形式化すること。
- 名前と構造に基づく型適合性ルールを用いて、名前型付けのサブタイプと構造型付けのサブタイプを対比すること。
- 付録のコード例を用いて、型適合性および継承における違いを説明すること。
- 形式的推論を通じて、名前型付けシステムにおいて継承をサブタイプと正式に同一視できることを確立すること。
実験結果
リサーチクエスチョン
- RQ1OOPにおける名前型付けは、型の同一性と適合性の観点から、構造型付けとどのように異なるか?
- RQ2名前型付け言語において、継承を形式的にサブタイプと同一視できる範囲はどの程度か?
- RQ3型システムにおいて、名前性を構造性から区別するための形式的特徴は何か?
- RQ4コード例は、名前型付けと構造型付けの実用的結果にどのように影響を与えるか?
- RQ5名前型付けシステムにおいて、サブタイプが継承と同等であるという正当性を支える基礎的原則は何か?
主な発見
- NOOPモデルは、名前型付けOOP言語における継承とサブタイプの同一視を成功裏に形式化した。
- 名前型付けは明示的な型名と宣言に依存しており、構造に基づく型適合性とは明確に区別される。
- 構造型付けのサブタイプは、名前や宣言に依存せず、型の構造そのものに基づいた適合性を許容する。
- このモデルは、名前型付けシステムにおいて、サブタイプが継承関係に基づいて正当に根拠付けられることを確認している。
- 付録のコード例は、名前型付けが構造型付けよりも厳密な型適合性を課していることを示している。
- 名前型付けと構造型付けの違いは、OOP型システム設計において概念的にも実用的にも有意義である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。