型システム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/06 04:25 UTC 版)
型システム(かたシステム、英: type system)は、コンピュータプログラミングの数々の構成要素および値に対して、型(type)と呼ばれる特性を付与するための数々の規則群から成立している形式体系である[1]。型の付与は、型付け(typing)と言われる。例えば、変数・式・関数・モジュール・オブジェクトなどが型の付与対象になり、それらの型付け要素を規則的な関係でまとめたデータ構造にも型は付与されてカテゴライズされる。
注釈
出典
- ^ Pierce 2002, p. 1: "A type system is a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute."
- ^ Cardelli 2004, p. 1: "The fundamental purpose of a type system is to prevent the occurrence of execution errors during the running of a program."
- ^ 『型システム入門』 p. 1
- ^ 6-1. バッファオーバーラン その1「こうして起こる」
- ^ 非Java言語のサポート | Oracle Help Center | Java SE 11 | Java仮想マシン・ガイド
- ^ a b Benjamin C. Pierce「19.3 名前的型システムと構造的型システム」 『型システム入門 −プログラミング言語と型の理論−』オーム社、2013年3月26日。ISBN 978-4274069116。
- ^ http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html
- ^ Duck Typing vs Structural Typing vs Nominal Typing | by Saurabh Nayar | Higher-Order Functions | Medium
- ^ Structural Typing: Compile Time Duck Typing
- ^ typing --- 型ヒントのサポート — Python 3.9.4 ドキュメント
- ^ C# Coding Conventions | Microsoft Docs
型システム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/03/05 01:46 UTC 版)
「XL (プログラミング言語)」の記事における「型システム」の解説
XL1の型システムは静的型付けだが、ジェネリックプログラミングの方式がAbaやC++などの言語とは異なる。配列やポインタなどは、C++ではプリミティブ型であるが、XLではライブラリで定義される。以下に一次元配列の定義を例示する。 generic [Item : type; Size : integer] type array 有効なジェネリック型(validated generic type)とは、その型がどのように使われるかを自身で表せる型であり、このような型にはジェネリック引数が必要ない。例として、不等号を含むときに型をorderedと宣言するものを示す。 // A type is ordered if it has a less-than relationshipgeneric type ordered if A, B : ordered Test : boolean := A < B これによって、ordered自身がジェネリックとなるから、潜在的にジェネリックとなる関数を定義することが可能となる。 // Generic function for the minimum of one itemfunction Min(X : ordered) return ordered is ... compute Y of type ordered ... return Y さらに、arrayのようなパラメータを持つジェネリック型にも適用できる。任意の配列(array)の和を計算する関数を以下に示す。 function Sum(A : array) return array.Item is for I in 0..array.Size-1 loop result += A[I]
※この「型システム」の解説は、「XL (プログラミング言語)」の解説の一部です。
「型システム」を含む「XL (プログラミング言語)」の記事については、「XL (プログラミング言語)」の概要を参照ください。
固有名詞の分類
- 型システムのページへのリンク