Google PlayストアでUnionpediaアプリを復元するために作業中です
出ていきます入ってきます
🌟ナビゲーションを改善するためにデザインを簡素化しました!
Instagram Facebook X LinkedIn
あなたのロゴとドメインを持つ独自のユニオンペディア、月額9.99 USDから
私のユニオンペディアを作成する

Miranda

索引 Miranda

Mirandaは、遅延評価方式の純粋関数型プログラミング言語である。作者デビッド・ターナー(David Turner)による以前の言語SASLやKRCの後継でもあり、またMLやHopeの影響も受けている。イギリスのリサーチ・ソフトウェア社(Research Software Ltd.)が販売しており、同社の商標でもある。研究目的ではない商用を目指した最初の純粋関数型言語であった。 よくある例題を解くプログラムに関して言えば、Mirandaのコードは(APLなどを別とすれば)ほとんどの主流のプログラミング言語よりも簡単で短く表現でき、他の関数型言語と同様、信頼性の高いプログラムの開発が命令型言語に比べて短期間で可能になったという報告がある。

目次

  1. 31 関係: APL型システム型推論宣言型プログラミング代数的データ型任意精度演算引数リスト (抽象データ型)リスト内包表記プログラミング言語データ型命令型プログラミングオフサイドルールカリー化コメント (コンピュータ)タプル副作用 (プログラム)C言語遅延評価静的型付け関数 (数学)関数型プログラミング集合HaskellKent Recursive CalculatorML (プログラミング言語)Unix系浮動小数点数方程式文芸的プログラミング1985年

APL

APL(エーピーエル)は、プログラミング言語のひとつで、1957年のケネス・アイバーソンによる創案に基づいた独特の表記法を用いる。処理系の実装は、ほとんどが対話型インタプリタである。とくに多次元配列の柔軟な処理が特徴である。「APL」は「プログラミング言語」(a programming language) の略であるが、言語の特性から、ときに「配列処理言語」(array processing language) などとされる。

見る MirandaとAPL

型システム

型システム(かたシステム、type system)は、コンピュータプログラミングの数々の構成要素および値に対して、型(type)と呼ばれる特性を付与するための数々の規則群から成立している形式体系である。型の付与は、型付け(typing)と言われる。例えば、変数・式・関数・モジュール・オブジェクトなどが型の付与対象になり、それらの型付け要素を規則的な関係でまとめたデータ構造にも型は付与されてカテゴライズされる。 型システムの目的は、プログラムエラーとバグの発生を抑止することである。そのための型安全性とは、各計算および各オペレーションでの型エラー(不正計算、ロジックエラー、バッファオーバーフロー、不正ポインタなど)の発生を防止することと同義になる。

見る Mirandaと型システム

型推論

型推論(かたすいろん、type inference)とはプログラミング言語の機能の1つで、静的な型付けを持つ言語において、変数や関数シグネチャの型を明示的に宣言しなくても、変数宣言における初期化のための初期値や、関数呼び出しにおける実引数などといった、周辺情報および文脈などから自動的に(暗黙的に)各々の型を決定する機構のこと。言語によってはtype deductionと呼ばれることもある。 推論に失敗するとその時点でエラーを報告できるため、少なくとも誤った型を用いることによるバグは回避できる。また、アルゴリズムの記述に集中できるのでプログラムの抽象度が上がるというメリットもある。型名が長大な場合に、型推論による省略によってコード全体の見通しをよくすることにもつながるが、一方で統合開発環境による支援(コードエディター上のツールチップなど)が得られない環境では、一見して型が分からないことでコードレビューがしにくくなるというデメリットもある。

見る Mirandaと型推論

宣言型プログラミング

宣言型プログラミング(Declarative programming)は、数理論理学的な性質を表わしている総称的なプログラミングパラダイムである。式の計算構造を、主に表示的意味論下のロジックで表現する構文にされることが多く、式枠外の副作用を伴なう制御フローや自由変数の多用などは排除されるようになる。計算構造は演繹的に組み立てられることが多い。命令型プログラミングと対をなしてのプログラミング言語の分類用語としても扱われている。 宣言型言語は、what the program must accomplish(何をなすべきか)方針で、副作用を排除した式や純粋関数の実装に努める"what declarative programming is.

見る Mirandaと宣言型プログラミング

代数的データ型

代数的データ型(だいすうてきデータがた、algebraic data type)とはプログラミング、特に関数型プログラミングや型システムにおいて使われるデータ型である。それぞれの代数的データ型の値には、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。 代数的データ型の値(データ)の感覚的な説明としては、引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの、である。コンストラクタに引数がある代数データ型は複合型(他のデータ型を組み合わせて形成する型)である。

見る Mirandaと代数的データ型

任意精度演算

任意精度演算(にんいせいどえんざん)とは、数値の精度を必要ならいくらでも伸ばしたりできるような演算システム(実際上は利用可能なメモリ容量に制限されるが)による演算である。

見る Mirandaと任意精度演算

引数

引数(ひきすう、parameter, argument)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。 数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。 関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。

見る Mirandaと引数

リスト (抽象データ型)

抽象データ型としてのリスト (list) は、順序つきのデータコンテナとして定義される。 リストはたいてい配列や連結リストを使って実装される。これは配列や連結リストと似た特性を持っているからである。また連結リストのことを単にリストと呼ぶこともある。順序を持つ点を強調してシーケンス (列; sequence) と呼び、連結リストと区別することもある。

見る Mirandaとリスト (抽象データ型)

リスト内包表記

リスト内包表記とは、一部のプログラミング言語で使用可能な構文構造であり、既存のリストから新たなリストを作成するために用いられるものである。 これは、 map関数やfilter関数などとは異なり、数学における集合内包表記 (en:Set-builder notation) に準拠したものである。

見る Mirandaとリスト内包表記

プログラミング言語

プログラミング言語(プログラミングげんご、)とは、プログラムを記述するための人工言語。コンピュータプログラムを書くために考案された、正確に定義された記号と規則のしくみ。以前は、しばしばプログラム言語と表記された。

見る Mirandaとプログラミング言語

データ型

Pythonの標準データ型階層 データ型(データがた、)とは、コンピュータプログラミングや計算機科学において、属性を持つデータを分類し、その扱われ方をコンパイラやインタープリタに知らせるプログラム。単に型(かた、Type)とも言われる。 多くのプログラミング言語は、整数型・浮動小数点型・ブール型・文字型といった基本データ型を備えている。計算対象にされるデータは、しばしば値(value)と言われる。データ型は式内の値を制約して、関数への適用可能性や変数への代入可能性を定義する。データ型は、値の集合の概念と近似している。

見る Mirandaとデータ型

命令型プログラミング

命令型プログラミング(めいれいがたプログラミング、imperative programming)は、プログラムのを変化させるステートメントを基本文に用いる総称的なプログラミングパラダイムである。ステートメントではコマンド(命令文)が多用される。宣言型プログラミングと対をなしてのプログラミング言語の分類用語としても扱われている。宣言型の数学的性質に対して、命令型はノイマン型コンピュータ向けの計算機科学特有の性質である。このパラダイムは、手続き型、構造化、、オブジェクト指向などを包括している。 ステートメント上のコマンドで状態は変化され、変化した状態の参照でステートメントの動作も変化することは副作用と呼ばれる。コマンドと副作用の存在によって命令型プログラミングは、各オペレータを状態の遷移と照らし合わせて解釈することになる。このことから命令型はhow a program operates(どう処理するか)と形容される。

見る Mirandaと命令型プログラミング

オフサイドルール

オフサイドルール(Off-side Rule)とは、一部のプログラミング言語において字下げによって文などのかたまりの範囲(ブロック)を示す規則である。すなわち、そのような言語ではブロックは字下げによって形成され識別される。この用語と考え方は によるもので、ここでのoff-sideは「(左端)側から離れる」という意味だが、これはサッカーなどの球技におけるオフサイド規則 (offside law) のもじりと考えられる。 レイアウト・ルールと呼ぶこともある。

見る Mirandaとオフサイドルール

カリー化

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

見る Mirandaとカリー化

コメント (コンピュータ)

緑で示されているのが'''コメント'''である。 コメント()とは、コンピュータ言語(プログラミング言語やデータ記述言語)によって書かれたソースコードのうち、人間のために覚え書きとして挿入された注釈のことである。この部分はコンピュータが処理を行うときには存在しないものとして無視されるため、自由に文を挿入することができる。

見る Mirandaとコメント (コンピュータ)

タプル

タプル(tuple、、タプル、トゥープル)とは、複数の構成要素からなる組を総称する一般概念であり、カタカナ語としては主に計算機科学において順序付けられた対象の並びを表すために用いられる。n 個でできた組を英語で「n-tuple」と書くことに由来し、数学では日本語に訳す場合、通常「n 組」とし、タプルの概念そのものも組と呼ばれる。なお、 n-tuple は数学のタプルを意味するほか、同様に double、triple などの拡張として倍数詞の表現にも利用される(詳細は「倍#西洋数学における n 倍を表す表現」を参照)。

見る Mirandaとタプル

副作用 (プログラム)

プログラミングにおいて、式の評価による作用には、主たる作用とそれ以外の副作用(side effect)とがある。 式は、評価値を得ること(※関数では「引数を受け取り値を返す」と表現する)が主たる作用とされ、それ以外のコンピュータの論理的状態(ローカル環境以外の状態変数の値)を変化させる作用を副作用という。 副作用の例としては、グローバル変数や静的ローカル変数の変更、ファイルの読み書きなどのI/O実行、などがある。 一方、高水準言語における、正弦、余弦、平方根などの数学関数では、関数内でノーマルなローカル変数の変更ぐらいしか伴わないため、副作用がない。 なお、コンピュータの論理的状態(ローカル環境以外の状態)を変化させる機能、つまり副作用を起こす機能は、それ以降で得られる結果に影響を与える。 手始めに、与えられた数字を二倍して返す機能"double"があるとする。これは主たる作用しかなく、副作用のない例である。 このような機能では次のことが成立する。

見る Mirandaと副作用 (プログラム)

C言語

C言語(シーげんご、C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。

見る MirandaとC言語

遅延評価

遅延評価(ちえんひょうか、lazy evaluation)や必要呼び(ひつようよび、call-by-need)は評価戦略の一種類であり、非正格な関数型言語で使用もされる。対義語は先行評価(eager evaluation)。

見る Mirandaと遅延評価

静的型付け

静的型付け(せいてきかたづけ、static typing)は、値やオブジェクトの型安全性を、コンパイル時に検証するというコンピュータプログラミングの型システムの方法である。型の検査はソースコードの解析によって行われる。変数代入、変数束縛、関数適用、型変換といったプログラム記述箇所での型安全性がチェックされる。型エラーの場合は、コンパイルエラーに繋げられることが多い。 対義語は動的型付けであり、こちらでは値やオブジェクトの型安全性を実行時に検証する。型の検査はランタイムシステムの実行時型情報(RTTI)の照会などによる実行時プロセス上の解析で行われる。

見る Mirandaと静的型付け

関数 (数学)

数学における関数(かんすう、、、、 蘭: functie、、函数とも書かれる)とは、かつてはある変数に依存して決まる値あるいはその対応を表す式のことであった。この言葉はゴットフリート・ライプニッツによって導入された。その後定義が一般化され、現代では数の集合に値をとる写像の一種であると理解されるものとなった。

見る Mirandaと関数 (数学)

関数型プログラミング

関数型プログラミング(かんすうがたプログラミング、functional programming)とは、数学的な意味での関数を主に使うプログラミングのスタイルである。 functional programming は、関数プログラミング(かんすうプログラミング)などと訳されることもある。 (functional programming language)とは、関数型プログラミングを推奨しているプログラミング言語である。略して関数型言語(functional language)ともいう。

見る Mirandaと関数型プログラミング

集合

集合(しゅうごう、set, ensemble, Menge)とは数学における概念の1つで、大雑把に言えばいくつかの「もの」からなる「集まり」である。集合を構成する個々の「もの」のことを元 (げん、; 要素) という。 集合は、集合論のみならず現代数学全体における最も基本的な概念の一つであり、現代数学のほとんどが集合と写像の言葉で書かれていると言ってよい。 慣例的に、ある種の集合が系 (けい、) や族 (ぞく、) などと呼ばれることもある。実際には、これらの呼び名に本質的な違いはないが細かなニュアンスの違いを含むと考えられている。たとえば、方程式系(「相互に連立する」方程式の集合)、集合族(「一定の規則に基づく」集合の集合)、加法族(「加法的な性質を持つ」集合族)など。

見る Mirandaと集合

Haskell

Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。

見る MirandaとHaskell

Kent Recursive Calculator

KRC (Kent Recursive Calculator) とは、イギリス・ケント大学(University of Kent)のデビッド・ターナーによって設計・実装された単純な遅延評価方式の純粋関数型プログラミング言語である。1979年11月から1981年10月にかけて、EMAS オペレーティングシステム上に BCPL で実装された。

見る MirandaとKent Recursive Calculator

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

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

見る MirandaとML (プログラミング言語)

Unix系

複数のUnix系システム間の関連図 Unix系(ユニックスけい、Unix-like、ユニックスライク)とは、Unixに類似した振る舞いをするオペレーティングシステム (OS) を指す用語である。その判断基準や範囲には複数の議論がある。

見る MirandaとUnix系

浮動小数点数

浮動小数点数(ふどうしょうすうてんすう、英: floating-point number)は、実数をコンピュータで処理(演算や記憶、通信)するために有限桁の小数で近似値として扱う方式であり、コンピュータの数値表現として広く用いられている。多くの場合、符号部、固定長の指数部、固定長の仮数部、の3つの部分を組み合わせて、数値を表現する -->。

見る Mirandaと浮動小数点数

方程式

14''x'' + 15。

見る Mirandaと方程式

文芸的プログラミング

文芸的プログラミング(ぶんげいてきプログラミング、literate programming)とは、。

見る Mirandaと文芸的プログラミング

1985年

この項目では、国際的な視点に基づいた1985年について記載する。

見る Mirandaと1985年