モジュールシステムとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > モジュールシステムの意味・解説 

モジュールシステム

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/19 03:24 UTC 版)

Standard ML」の記事における「モジュールシステム」の解説

Standard ML には高度なモジュールシステムがあり、プログラム論理的に関連する型と値の宣言structure による階層分解することができる。SMLモジュールは単に名前空間制御するだけでなく、抽象化役割持っており、プログラマはこれを使って抽象データ型定義できる。 主に3つの構文要素SMLモジュールシステムが構成されるsignaturestructurefunctor である。structureモジュールそのものである。型、式、値、structure (substructure) の集合体であり、それらを1つ論理単位パッケージ化している。signatureインタフェースであり、一般にその structure の型として認識される。その structure提供する全ての実体の名前を指定し、型要素アリティ、値要素の型、substructuresignature指定する。型要素の定義はエクスポートする場合もしない場合もある。定義を隠蔽した型要素を「抽象型 (abstract type)」と呼ぶ。functorstructure から structure への関数である。すなわち、functor1つ上の引数受け付け通常signature指定した structure)、結果として structure生成するfunctorジェネリックデータ構造アルゴリズム実装するのに使われる例えば、キューデータ構造signature次のうになるsignature QUEUE = sig type 'a queue exception Queue val empty : 'a queue val insert : 'a * 'a queue -> 'a queue val isEmpty : 'a queue -> bool val peek : 'a queue -> 'a val remove : 'a queue -> 'a * 'a queueend この signatureキューパラメータ化された型 queue提供するモジュール記述しており、それには Queue という例外キュー基本操作提供する5つの値(うち4つ関数)を記述している。これを使ってキューデータ構造実装した structure書くことができる。 structure TwoListQueue :> QUEUE = struct type 'a queue = 'a list * 'a list exception Queue val empty = ([],[]) fun insert (a,(ins,outs)) = (a::ins,outs) fun isEmpty ([],[]) = true | isEmpty _ = false fun peek ([],[]) = raise Queue | peek (ins,[]) = hd (rev ins) | peek (ins,a::outs) = a fun remove ([],[]) = raise Queue | remove (ins,[]) = let val newouts = rev ins in (hd newouts,([],tl newouts)) end | remove (ins,a::outs) = (a,(ins,outs)) end この定義では、TwoListQueue が QUEUE という signature実装であることを宣言している。さらに(:> で指定されている) opaque ascription により、この signature(すなわち queue)で定義が提供されていない要素抽象型として扱うことを示している。すなわち、ここではキュー2つリスト定義されているが、それはモジュール外部には見せないstructure 本体には signature挙げられている全要素対応した実装記述されるstructure を使うには、「ドット記法」でその型や値といったメンバーアクセスすればよい。例えば、文字列キューの型は string TwoListQueue.queue、空のキューは TwoListQueue.empty、q というキュー最初要素削除するには TwoListQueue.remove q と書けばよい。

※この「モジュールシステム」の解説は、「Standard ML」の解説の一部です。
「モジュールシステム」を含む「Standard ML」の記事については、「Standard ML」の概要を参照ください。


モジュールシステム

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/01 15:38 UTC 版)

Elm (プログラミング言語)」の記事における「モジュールシステム」の解説

Elmはモジュールシステムを持っており、ユーザーコードモジュール呼ばれる小さな単位分割することができる。ユーザーは値をインポート・エクスポートすることができ、実装の詳細を他のプログラマ意識する必要のないように隠蔽することができる。モジュールElmコミュニティライブラリの基礎になっている

※この「モジュールシステム」の解説は、「Elm (プログラミング言語)」の解説の一部です。
「モジュールシステム」を含む「Elm (プログラミング言語)」の記事については、「Elm (プログラミング言語)」の概要を参照ください。

ウィキペディア小見出し辞書の「モジュールシステム」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「モジュールシステム」の関連用語

モジュールシステムのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



モジュールシステムのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのStandard ML (改訂履歴)、Elm (プログラミング言語) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS