Chapter 25 SML#のライブラリ概要
関数型言語であるSML#では,種々のデータ構造とその操作は, 型(datatype)の定義とそれを操作する関数集合を含んだストラクチャとして定義 される. さらに,SML#の分割コンパイル機能によって,関連するストラ クチャがファイルにまとめられ,それに対するインターフェイスファイル(smiファイル) が定義されている. 本章では,インターフェイスファイルにまとめられたストラクチャ群をライブラリと呼ぶ. 関連するライブラリは,インタフェイス言語の_include文によっ てまとめられ,階層化されている.
SML#が提供するライブラリは以下に大別される.
-
•
Standard ML標準ライブラリ
Standard MLライブラリ仕様[2]で定義されたライブラ リである. 組み込みデータの操作や標準のIOなどが提供されている. SML#では,Standard ML Basis Libraryの必須ライブラリのすべてと オプションライブラリの一部が提供されている.
-
•
SML#ライブラリ
Cとの直接連携,SQL統合,JSONサポートなどのSML#に組み込まれた機能を 使う上で有用な以下のサポートライブラリである.
-
–
FFIライブラリ
-
–
SQLライブラリ
-
–
Threadライブラリ
-
–
Reifyライブラリ
-
–
-
•
ユーテリティ群
サードパーティ製を含む種々の汎用で有用な関数が提供される. 以下のものを含む.
-
–
SML New Jerseyライブラリ
-
–
-
•
ツールのサポートライブラリ
SML#が提供する構文解析ツール,清書プログラム生成ツール,テストツールなどを, SML#から使用するためのライブラリである. 以下のものを含む.
-
–
smlyaccとsmllexのサポートライブラリ
-
–
清書ツールSMLFormatサポートライブラリ
-
–
ユニットテストツールSMLUnitサポートライブラリ
-
–
本ドキュメントでは,ライブラリの仕様を以下の形式で定義する.
-
1.
Standard ML標準ライブラリなど,Standard MLのシグネチャが公式に定義されいる ライブラリについては,シグネチャの定義を示し,さらに,各ストラクチャについて,シグネ チャでは表現されない型インスタンスの情報を追記する.
-
2.
主にSML#独自のライブラリなど,標準のシグネチャが定義され ていないライブラリは,そのインタフェイス情報を示す. インタフェイスは,シグネチャ情報に加えて,分割コンパイルでリンク して使用する上で必要な情報を含んでいる.