ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

Standard ML

索引 Standard ML

Standard ML (SML) は、プログラミング言語MLの標準ないし1方言である。The Definition of Standard ML で型付け規則と操作的意味論が与えられている。1990年に初版が出版され、1997年に単純化された改版が出版されている。.

39 関係: Adapter パターン型システム型推論名前空間中間言語式 (プログラミング)マルチパラダイムプログラミング言語マージソートマイクロソフトモジュールパターンマッチングデータ型命令型プログラミングアリティインタプリタインタフェース (情報技術)オープンソースカリー化ガベージコレクションキュー (コンピュータ)ジェネリックプログラミングサブルーチン共通言語ランタイムC言語Common Lisp階乗計算機イプシロン関数型言語離散ウェーブレット変換ML (プログラミング言語)Prolog抽象型抽象化 (計算機科学)抽象データ型東北大学電気通信研究所末尾再帰操作的意味論整数.NET Framework

Adapter パターン

Adapter パターン(アダプター・パターン)とは、GoF (Gang of Four; 4人のギャングたち) によって定義されたデザインパターンの1つである。Adapter パターンを用いると、既存のクラスに対して修正を加えることなく、インタフェースを変更することができる。Adapter パターンを実現するための手法として継承を利用した手法と委譲を利用した手法が存在する。それぞれについて以下の節で説明する。.

新しい!!: Standard MLとAdapter パターン · 続きを見る »

型システム

型システム(type system)とは、プログラミング言語において、その式などの部分が持つ値を、その種類(型(type)、データ型も参照)に沿って分類し、プログラムが正しく振る舞うこと、といった性質について保証する手法である。型システムは、型理論に基づいており、プログラミング言語の理論において最も確立された軽量形式手法である。.

新しい!!: Standard MLと型システム · 続きを見る »

型推論

型推論(かたすいろん)とはプログラミング言語の機能の1つで、静的な型付けを持つ言語において、変数や関数の型を宣言しなくてもそれを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構のこと。 推論に失敗するとその時点でエラーを報告できるため、少なくとも誤った型を用いる事によるバグは回避できる。また、記述をアルゴリズムに集中できるのでプログラムの抽象度が上がるというメリットもある。 代表的な型推論アルゴリズムとして、Hindley/Milner 型推論アルゴリズムがある。各々著名なコンピュータ科学者の名前からつけられた名前であるが、Hindley は論理学者として型推論システムを先に開発した。 型推論を持つ言語としてはHaskell、ML、Vala、F#、C#、Java、Scala、OCaml、D言語、Concurrent Clean、C++11、Swiftなどがある。静的型付け関数型言語のほとんどがなんらかの型推論の機能を持っている。.

新しい!!: Standard MLと型推論 · 続きを見る »

名前空間

名前空間(なまえくうかん)はNamespaceの訳語で、名前の集合を分割することで衝突の可能性を低減しつつ参照を容易にする概念である。 この集合は、全事象の元の全ての組み合わせ可能なものからなる集合全体および物理的な名称を指すことが可能である。つまり英字・数字・記号などを組みあわせて作られる名前全てを含む集合である。名前に結び付けられる実体(型や変数)は、名前がそれぞれどの集合(空間)に属するか指定されることで一意に定まる。名前空間が異なれば同じ名前でも別の実体に対応付けられる。.

新しい!!: Standard MLと名前空間 · 続きを見る »

中間言語

中間言語(Pivot language)は、任意の言語を異なる任意の言語へ翻訳する際に利用する中間的な人工言語もしくは自然言語である。.

新しい!!: Standard MLと中間言語 · 続きを見る »

式 (プログラミング)

式(しき、expression)とは、プログラミングにおいて、言語によって定められた優先順位や結びつきの規定に則って評価される値、変数、演算子、関数の組み合わせである。数学における式と同様、式は評価された値を持つ。 言語によっては式が副作用を持つこともあり、参照透過性がない場合もある。.

新しい!!: Standard MLと式 (プログラミング) · 続きを見る »

マルチパラダイムプログラミング言語

マルチパラダイムプログラミング言語 (マルチパラダイムプログラミングげんご、multiparadigm programming language)は、複数のプログラミングパラダイムに対応するプログラミング言語の総称である。「1つのプログラムは複数のプログラミングパラダイムを使う」とビャーネ・ストロヴストルップは述べている。マルチパラダイムプログラミング言語の設計目標は、問題解決に当たって最良の道具になることである。たとえばOzでは、論理型、関数型、オブジェクト指向、データフローコンカレントなど、多数のパラダイムを内包している。Ozは10年かけて従来のプログラミングパラダイムが調和するよう設計されたのである。.

新しい!!: Standard MLとマルチパラダイムプログラミング言語 · 続きを見る »

マージソート

マージソートは、ソートのアルゴリズムで、既に整列してある複数個の列を1個の列にマージする際に、小さいものから先に新しい列に並べれば、新しい列も整列されている、というボトムアップの分割統治法による。大きい列を多数の列に分割し、そのそれぞれをマージする作業は並列化できる。 n個のデータを含む配列をソートする場合、最悪計算量O(n log n)である。分割と統合の実装にもよるが、一般に安定なソートを実装できる。インプレースな(すなわち入力の記憶領域を出力にも使うので、追加の作業記憶領域を必要としない)バリエーションも提案されているが、一般には、O(n)の追加の作業記憶領域を必要とする。 (ナイーブな)クイックソートと比べると、最悪計算量は少ない。ランダムなデータでは通常、クイックソートのほうが速い。.

新しい!!: Standard MLとマージソート · 続きを見る »

マイクロソフト

マイクロソフト()は、アメリカ合衆国ワシントン州に本社を置く、ソフトウェアを開発・販売する会社である。1975年4月4日にビル・ゲイツとポール・アレンらによって設立された。.

新しい!!: Standard MLとマイクロソフト · 続きを見る »

モジュール

モジュール(module)とは、工学などにおける設計上の概念で、システムを構成する要素となるもの。いくつかの部品的機能を集め、まとまりのある機能を持った部品のこと。モジュールに従っているものをモジュラー (modular)という。 入出力を絞り込み、標準化することで、システム開発を「すり合わせ」から「モジュールの組合わせ」にすることができる。.

新しい!!: Standard MLとモジュール · 続きを見る »

パターンマッチング

パターンマッチング (Pattern matching、パターン照合) とは、データを検索する場合に、特定のパターンが出現するかどうか、またどこに出現するかを特定する手法のことである。 文字列のパターンマッチングには、固定されたパターンの検索ではKMP法やBM法など各種の文字列探索アルゴリズムがある。また正規表現を利用する手法も多数提案されている。 画像や動画に対するパターンマッチングの研究も行われている。だが、パターンマッチングはあらかじめ人が打っておかなくてはいけないため人工知能とは別で機械が自分で考えているわけではない(そもそも「考える」ということを形式的に定義することは不可能なので、この段落の後半の「だが、」以降は、単にどこかの誰かの考える「人工知能」という語に関する主観の表明に過ぎず、意味があることを何も述べてはいない)。 いくつかの高水準プログラミング言語には、多分岐の一種で、場合分けと同時に構成要素の取り出しのできる言語機能があり、パターンマッチと呼ばれている。Haskellでの例を示す。 listSumCase lst.

新しい!!: Standard MLとパターンマッチング · 続きを見る »

データ型

データ型(データがた、)とは、(コンピュータにおける)データ(値)の種類に関する分類である。データタイプとも。 具体的にいうと、たとえば 0, 1, 2, -42 といったような値は整数型であり、"foo", "Hello" といったような値は文字列型である。プログラミングなどにおいて、まずデータオブジェクトや関数などの「値」について、またさらに、それらに関連付け(束縛)される変数や定数、リテラル、それらを組合せる演算子、さらにそれらからなる式といった構文上の要素の型が、データ型の議論の対象となる。.

新しい!!: Standard MLとデータ型 · 続きを見る »

命令型プログラミング

命令型プログラミング(めいれいがたプログラミング、Imperative Programming)とは、計算機科学において宣言型プログラミングの対となる概念であり、計算をプログラム状態を変化させる文の列で記述するプログラミングパラダイムの一種。自然言語の命令法がなすべき行動への指令を表現するのとよく似た方法で、命令型プログラムはコンピュータが実行すべき命令列で構成される。命令型プログラミングに従ったプログラミング言語を命令型(プログラミング)言語と呼ぶ。一般に命令型プログラミングは、手続き型プログラミングと同義として扱われる。 命令型プログラミングは、宣言型プログラミング(関数型や論理型言語など)と対照的である。Haskellなどの関数型プログラミング言語では、プログラムは文の並びではないし、命令型言語が持つような広域状態を持たない。Prologのような論理プログラミング言語では、命令型言語のように計算の「方法」をプログラムとして記述するのではなく、計算すべき「事物」を定義する。.

新しい!!: Standard MLと命令型プログラミング · 続きを見る »

アリティ

アリティ (arity) とは、代数学、論理学、計算機科学などにおいて、関数や算法(演算) が取る引数(オペランド)の個数を意味する用語である。 項数のような訳語が当てられる場合もあるが、arityと英単語のまま用いられることも多い。 複合語としてならば、「変数」(例えば二変数函数、多変数函数)や単に「項」(二項演算、多項関係など)あるいはまた(不定元の数という意味で)「(-)元」(例えば二元連立一次方程式)などはアリティに言及する訳語として存外よく用いられるものである。(しかし同じ語でも、例えば数列や多項式などに用いられる「項」や「項数」はアリティではなく "term" に関する言及である。).

新しい!!: Standard MLとアリティ · 続きを見る »

インタプリタ

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。.

新しい!!: Standard MLとインタプリタ · 続きを見る »

インタフェース (情報技術)

インタフェース(interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す。コンピュータなどでは、コンピュータシステム内、あるいはシステム間のインタフェースや、人間と機械の間のインタフェース(ヒューマンマシンインタフェース)などがある。他分野の専門用語の借用になるが、界面という訳語がある。.

新しい!!: Standard MLとインタフェース (情報技術) · 続きを見る »

オープンソース

ープンソース (open source) とは、言葉通りのソースコードへのアクセスが開かれている(ソースコードが公開されている)ことを意味するのではなく、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないソフトウェア開発の手法を意味する。オープンソース・イニシアティブ は、「オープンソース」と名乗るための要件として「オープンソースの定義」を掲げている。.

新しい!!: Standard MLとオープンソース · 続きを見る »

カリー化

リー化 (currying, カリー化された.

新しい!!: Standard MLとカリー化 · 続きを見る »

ガベージコレクション

ベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。 メモリの断片化を解消する機能はコンパクションと呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 参照カウント方式のガベージコレクションは通常煩雑なコーディングを必要とするが、それを必要なく実装したライブラリとしがある。.

新しい!!: Standard MLとガベージコレクション · 続きを見る »

キュー (コンピュータ)

ュー(queue)、あるいは待ち行列はコンピュータの基本的なデータ構造の一つ。データを先入れ先出しのリスト構造で保持するものである。キューからデータを取り出すときには、先に入れられたデータから順に取り出される。キューにデータを入れることをエンキュー、取り出すことをデキューという。 プリンタへの出力処理や、ウィンドウシステムのメッセージハンドラ、プロセスの管理など、データを入力された順番通りに処理する必要がある処理に用いられる。 キューの変形として、先頭と末尾の両端から入出力を行えるものを両端キューという。 キューとは逆に後入れ先出しのリスト構造を持つデータバッファをスタックと呼ぶ。.

新しい!!: Standard MLとキュー (コンピュータ) · 続きを見る »

ジェネリックプログラミング

ェネリック(総称あるいは汎用)プログラミング(generic programming)はデータ形式に依存しないコンピュータプログラミング方式である。.

新しい!!: Standard MLとジェネリックプログラミング · 続きを見る »

サブルーチン

ブルーチン(subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。 プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。.

新しい!!: Standard MLとサブルーチン · 続きを見る »

共通言語ランタイム

CLRの動作イメージ。バイトコードを機械語に変換、実行する。 共通言語ランタイム (Common Language Runtime, CLR) とは、.NET Frameworkアプリケーションを実行するための仮想機械で、共通言語基盤 (CLI) のマイクロソフト自身による実装。.NET Framework 4.x で使用されている CLR は Windows 上のみで動作する。.NET Core 5 はMITライセンスのオープンソースになり、CoreCLRはWindows、macOS、Linux、FreeBSD で動作する。 CLRは、共通中間言語 (CIL) と呼ばれる、プログラミング言語や環境に依存しない中間言語を解釈する。CILは実行時にJITコンパイラによって機械語に変換され、実行される。.NET Framework 4.6 では64ビット版は RyuJIT という名称のJITコンパイラが搭載された。 そのほかのCLRの役割・機能には、メモリ管理(ガベージコレクション)、型とアセンブリの管理、スレッド管理、例外処理、セキュリティがある。.

新しい!!: Standard MLと共通言語ランタイム · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: Standard MLとC言語 · 続きを見る »

Common Lisp

Common Lisp(コモン・リスプ)は、コンピュータ・プログラミング言語 Lispの標準(の、ひとつ)であり、Lisp方言のひとつである。Common Lispの略称はCL(ごくまれにclispとも。なおCLISPという実装が実在するので混同回避のためあまり用いられない)。規格はANSIによる ANSI INCITS X3.226-1994 (R2004) 。仕様を指すこともあれば、実装を指すこともある。いくつかの、フリーソフトウェアの定義に合致したライセンスによりライセンスされている実装や、オープンソースの定義に合致したライセンスによりライセンスされている実装や、プロプライエタリなライセンスによりライセンスされている実装がある。 Lispの基本的な特徴の他、いくつかのプログラミングパラダイムのLispへの取り込みについて標準を提供しているという、マルチパラダイムプログラミング言語という面がある。.

新しい!!: Standard MLとCommon Lisp · 続きを見る »

階乗

数学において非負整数 の階乗(かいじょう、factorial) は、1 から までのすべての整数の積である。例えば、 である。空積の規約のもと と定義する。 階乗は数学の様々な場面に出現するが、特に組合せ論、代数学、解析学などが著しい。階乗の最も基本的な出自は 個の相異なる対象を一列に並べる方法(対象の置換)の総数が 通りであるという事実である。この事実は少なくとも12世紀にはインドの学者によって知られていた。は1677年にへの応用として階乗を記述した。再帰的な手法による記述の後、Stedman は(独自の言葉を用いて)階乗に関しての記述を与えている: 感嘆符(!)を用いた、この "" という表記は1808年にによって発明された。 階乗の定義は、最も重要な性質を残したまま、非整数を引数とする函数に拡張することができる。そうすれば解析学における著しい手法などの進んだ数学を利用できるようになる。.

新しい!!: Standard MLと階乗 · 続きを見る »

計算機イプシロン

計算機イプシロン(けいさんきいぷしろん、machine epsilon)は、浮動小数点数において、「1より大きい最小の数」と1との差のことである。機械イプシロン(きかいいぷしろん)とも言う。また、それぞれの「イプシロン」はエプシロンとも表記される。.

新しい!!: Standard MLと計算機イプシロン · 続きを見る »

関数型言語

関数型言語(かんすうがたげんご、functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。.

新しい!!: Standard MLと関数型言語 · 続きを見る »

離散ウェーブレット変換

離散ウェーブレット変換(りさんウェーブレットへんかん、Discrete wavelet transform, DWT)は、数値解析や関数解析において、離散的にサンプリングされたウェーブレットを用いたウェーブレット変換のアルゴリズムである。本来は異なる物だが、多くのソフトウェアでは多重解像度解析の事を離散ウェーブレット変換と呼んでいる。本項では本来の定義の方をふれ、多重解像度解析に関してはそちらの項目を参照。.

新しい!!: Standard MLと離散ウェーブレット変換 · 続きを見る »

ML (プログラミング言語)

ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。.

新しい!!: Standard MLとML (プログラミング言語) · 続きを見る »

Prolog

Prolog(プロログ)は、非手続き型プログラミング言語の一つ。論理型言語に分類される。名称は、「論理を使ったプログラミング」を意味するフランス語「programmation en logique」に由来しているRobert Kowalski.

新しい!!: Standard MLとProlog · 続きを見る »

抽象型

フトウェア工学における抽象型(ちゅうしょうがた、abstract type)は、プログラマが宣言する nominative type system における型である。何らかの宣言された派生型のメンバーも共有するメンバーを含む抽象メソッドやプロパティを含むこともあるし、含まないこともある。多くのオブジェクト指向プログラミング言語では、抽象型を抽象基底クラス (abstract base class)、インタフェース (interface)、Trait、Mixin、flavors、rolesなどと呼ぶ。これらの名称はそれぞれ異なる言語での抽象型の実装を指している。本項目ではこれを総称して抽象クラス (abstract class) と呼ぶ。 抽象クラスの最大の特徴は、オブジェクト指向プログラミングをよりオブジェクト指向的に保つことと、その性質上それが未完成である点である。.

新しい!!: Standard MLと抽象型 · 続きを見る »

抽象化 (計算機科学)

抽象化(ちゅうしょうか、Abstraction)は、計算機科学において詳細を捨象し、一度に注目すべき概念を減らすことおよびその仕組みである。 この概念は数学における「抽象化」からのアナロジーである。数学での抽象化技法の起源は数学的定義である。例えば、コンピュータでも数学でも、数はプログラミング言語上の概念であり、数学上の概念でもある。数の計算概念は数学の概念に基づいているため、実装の詳細はハードウェアとソフトウェアに依存したとしても、それが制約とはならない。 大まかに言えば、抽象化は制御抽象化とデータ抽象化に分けられる。制御抽象化は動作の抽象化であり、データ抽象化はデータ構造の抽象化である。例えば、構造化プログラミングでの制御抽象化とは、サブプログラムや定式化された制御フローの使用を意味する。データ抽象化とは、本来ビット列であるデータを意味のある方法で扱うことを意味する。例えば、データ型の背景にある動機は抽象化である。オブジェクト指向プログラミングはデータとコードを同時に抽象化する試みと見ることもできる。.

新しい!!: Standard MLと抽象化 (計算機科学) · 続きを見る »

抽象データ型

抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.

新しい!!: Standard MLと抽象データ型 · 続きを見る »

東北大学電気通信研究所

東北大学電気通信研究所(とうほくだいがくでんきつうしんけんきゅうしょ、Research Institute for Electrical Communication, RIEC)は、国立大学法人東北大学の附置研究所(共同利用・共同研究拠点)の一つである。同大片平キャンパス内に所在する。所在地は、宮城県仙台市青葉区片平2丁目1。.

新しい!!: Standard MLと東北大学電気通信研究所 · 続きを見る »

末尾再帰

末尾再帰(まつびさいき)とは、再帰的な関数やプロシージャにおいて、自身の再帰呼び出しが、その計算における最後のステップになっているような再帰のパターンのことである。再帰にかかわらず一般に、そのような最後の呼び出しを末尾呼び出し (:en:Tail call)という。呼び出しではなく、戻り先を保存しないジャンプに最適化できるという特徴がある(#末尾呼出し最適化)。.

新しい!!: Standard MLと末尾再帰 · 続きを見る »

操作的意味論

操作的意味論(そうさてきいみろん、Operational Semantics)とは、プログラムの意味を数学的に厳密に与える計算機科学の手法の一種(プログラム意味論参照)。.

新しい!!: Standard MLと操作的意味論 · 続きを見る »

整数

数学における整数(せいすう、integer, whole number, Ganze Zahl, nombre entier, número entero)は、0 とそれに 1 ずつ加えていって得られる自然数 (1, 2, 3, 4, …) および 1 ずつ引いていって得られる数 (−1, −2, −3, −4, …) の総称である。 整数は数直線上の格子点として視覚化される 整数の全体からなる集合は普通、太字の Z または黒板太字の \mathbb Z で表す。これはドイツ語 Zahlen(「数」の意・複数形)に由来する。 抽象代数学、特に代数的整数論では、しばしば「代数体の整数環」の元という意味で代数的整数あるいは「整数」という言葉を用いる。有理数全体の成す体はそれ自身が代数体の最も簡単な例であり、有理数体の代数体としての整数環すなわち、「有理数の中で整なもの」の全体の成す環は、本項でいう意味での整数全体の成す環である。一般の「整数」との区別のためにここでいう意味の整数を有理整数 (rational integer) と呼ぶことがある接頭辞「有理(的)」(rational) はそもそも「整数比」であるという意味なので、この呼称は自己循環的にもみえる。しかし、有理整数と呼ぶ場合の「有理」は「有理数の中で」という程度の意味の単なる符牒であって、「整数比」という本来の意味合いに拘るのは徒労である。。.

新しい!!: Standard MLと整数 · 続きを見る »

.NET Framework

Microsoft.NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発・実行環境である。 Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。.

新しい!!: Standard MLと.NET Framework · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »