計算機科学の基礎は集合論であるという。
ならば、集合論に基づいた言語を作れば美しい言語になるのでは?
そんな発想から徹底的に集合論的思想で言語仕様を考えるスレです。
探検
集合論に基づいた言語を作りたい
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/08/10(日) 21:27:16.56ID:x7G32Sd03311
2014/09/22(月) 20:46:51.62ID:XoUFao4y332デフォルトの名無しさん
2014/09/22(月) 21:29:11.48ID:UZeuYMIm 集合を言語へどう使うか決まってないし、有限・無限とか細かい部分を決めても意味ないだろ。
スタンダードな言語に対して、集合が扱える仕組みが取り込めばいいだけなのかとか。
スタンダードな言語に対して、集合が扱える仕組みが取り込めばいいだけなのかとか。
333デフォルトの名無しさん
2014/09/22(月) 21:48:28.53ID:m1LWUU3t 集合論の教科書を想定せずに
>発想から徹底的に集合論的思想で言語仕様を考える
と言ってたのか…
で、結局、有限集合限定だから
>言語なんか作らずにライブラリで済む
んじゃないか、と…
>発想から徹底的に集合論的思想で言語仕様を考える
と言ってたのか…
で、結局、有限集合限定だから
>言語なんか作らずにライブラリで済む
んじゃないか、と…
334デフォルトの名無しさん
2014/09/22(月) 21:54:05.38ID:LvPIFofq ライブラリを作ってみてライブラリではここが不満だって気づいてから言語作り始めても遅くない。
そういう下地があると1ヶ月くらいでコンパイラを書ける。凡人でも。
そういう下地があると1ヶ月くらいでコンパイラを書ける。凡人でも。
335デフォルトの名無しさん
2014/09/22(月) 21:56:13.85ID:Q+rXpvQc >>330
ファイト!
ファイト!
336デフォルトの名無しさん
2014/09/22(月) 21:58:03.07ID:M8xWvQpL337デフォルトの名無しさん
2014/09/22(月) 22:23:43.15ID:UZeuYMIm >>336
どういう用途に使うかに強く依存する。
たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。
最初に何に使うのかが決まらないと、有限・無限はどうするか決まらない。
どういう用途に使うかに強く依存する。
たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。
最初に何に使うのかが決まらないと、有限・無限はどうするか決まらない。
338デフォルトの名無しさん
2014/09/22(月) 22:31:18.61ID:M8xWvQpL >>337
>たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。
何言ってるかさっぱり分からん。
>有限・無限とか細かい部分を決めても意味ないだろ。
とどう関係するんだ?
>たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。
何言ってるかさっぱり分からん。
>有限・無限とか細かい部分を決めても意味ないだろ。
とどう関係するんだ?
339デフォルトの名無しさん
2014/09/22(月) 22:51:19.51ID:UZeuYMIm 任意のプログラムコードを、ある自然数に対応させることは可能のはずだ。この値は有限値で。
具体的には、ゲーデル文構成のようにしたらいいと思うが良くはわからん。
ゲーデルの不完全性定理 - Wikipedia
ゲーデルの不完全性定理とは、数学基礎論における重要な定理の一つで、クルト・ゲーデルが1930年に証明したものである。
ゲーデル文の構成
ゲーデル数というテクニックを使って間接的に自己言及を可能とし、ゲーデル文を構成する。
コンピュータでは全てのデータを一意な数値で表しており、特に文字列や論理式そして論理式の列も数値で表す。
このように、論理式を数値で表す行為を論理式のゲーデル数化といい、命題Pに対応する数値をPのゲーデル数という。
具体的には、ゲーデル文構成のようにしたらいいと思うが良くはわからん。
ゲーデルの不完全性定理 - Wikipedia
ゲーデルの不完全性定理とは、数学基礎論における重要な定理の一つで、クルト・ゲーデルが1930年に証明したものである。
ゲーデル文の構成
ゲーデル数というテクニックを使って間接的に自己言及を可能とし、ゲーデル文を構成する。
コンピュータでは全てのデータを一意な数値で表しており、特に文字列や論理式そして論理式の列も数値で表す。
このように、論理式を数値で表す行為を論理式のゲーデル数化といい、命題Pに対応する数値をPのゲーデル数という。
340デフォルトの名無しさん
2014/09/22(月) 22:56:41.54ID:UZeuYMIm ゲーデル数 - Wikipedia
ゲーデル数は、数理論理学において何らかの形式言語のそれぞれの記号や整論理式に一意に割り振られる自然数である。
一般化
計算可能性理論において、「ゲーデル数化」は上述よりさらに一般化した意味を持つ用語として使われる。
1.形式言語の構成要素に自然数を割り当てて、形式言語の構成要素の操作を、数を操作するアルゴリズムでシミュレートできるようにする。
2.より一般化して、枚挙可能な数学的オブジェクトに自然数を割り当てて、その数学的オブジェクトにアルゴリズム的操作ができるようにする。
これは数というよりも文字列を操作する計算模型(チューリングマシンなど)に必須の考え方である。
チューリングマシン - Wikipedia
チューリング機械とは次の7つ組である。
http://upload.wikimedia.org/math/6/3/d/63d3280aa62307d33bea8f0e64f4dac7.png
Q は有限集合であり、その元を状態という。
Γ は Q に交わらない有限集合であり、字母とよばれる。その元を記号という。
b は Γ の元であり、空白記号とよばれる。
Σ は Γ - {b} の部分集合であり、入力字母とよばれる。その元を入力記号という。
δ は Q × Γ から Q × Γ × {left, right} への写像であり、遷移函数とよばれる。δ(q, a) = (q', a', m) は、
「現在の状態が q であり、着目位置にある記号が a であれば、状態を q' に移し、着目位置に記号 a' を書き込んでから、着目位置を m 方向に1つずらす」と読む。
qinit は Q の元であり、初期状態とよばれる。
qacc は Q の元であり、受理状態とよばれる。
ゲーデル数は、数理論理学において何らかの形式言語のそれぞれの記号や整論理式に一意に割り振られる自然数である。
一般化
計算可能性理論において、「ゲーデル数化」は上述よりさらに一般化した意味を持つ用語として使われる。
1.形式言語の構成要素に自然数を割り当てて、形式言語の構成要素の操作を、数を操作するアルゴリズムでシミュレートできるようにする。
2.より一般化して、枚挙可能な数学的オブジェクトに自然数を割り当てて、その数学的オブジェクトにアルゴリズム的操作ができるようにする。
これは数というよりも文字列を操作する計算模型(チューリングマシンなど)に必須の考え方である。
チューリングマシン - Wikipedia
チューリング機械とは次の7つ組である。
http://upload.wikimedia.org/math/6/3/d/63d3280aa62307d33bea8f0e64f4dac7.png
Q は有限集合であり、その元を状態という。
Γ は Q に交わらない有限集合であり、字母とよばれる。その元を記号という。
b は Γ の元であり、空白記号とよばれる。
Σ は Γ - {b} の部分集合であり、入力字母とよばれる。その元を入力記号という。
δ は Q × Γ から Q × Γ × {left, right} への写像であり、遷移函数とよばれる。δ(q, a) = (q', a', m) は、
「現在の状態が q であり、着目位置にある記号が a であれば、状態を q' に移し、着目位置に記号 a' を書き込んでから、着目位置を m 方向に1つずらす」と読む。
qinit は Q の元であり、初期状態とよばれる。
qacc は Q の元であり、受理状態とよばれる。
341デフォルトの名無しさん
2014/09/22(月) 23:19:51.98ID:M8xWvQpL お前アホだろ。
>プログラムコードは有限だから
ってコード長が有限ってことを言いたかったのかよ。
>プログラムコードは有限だから
ってコード長が有限ってことを言いたかったのかよ。
342デフォルトの名無しさん
2014/09/22(月) 23:51:04.16ID:UZeuYMIm 言語の開発以前に、無限にするか、有限にするか決めたとして。
有限の範囲ではおさまらない具体的な例・モデルってあるのか?
既存のコンピュータ、ノイマン型は、有限集合で操れるから具体的にイメージ出来ない。
有限の範囲ではおさまらない具体的な例・モデルってあるのか?
既存のコンピュータ、ノイマン型は、有限集合で操れるから具体的にイメージ出来ない。
343デフォルトの名無しさん
2014/09/23(火) 00:04:48.04ID:FXTBDWVe とりあえず有限長の語の集合が無限集合になりうることくらいは理解してくれ。
証明が無限を扱うことと、証明長が有限なことは全然別の話。
プログラムにしても同様。
証明が無限を扱うことと、証明長が有限なことは全然別の話。
プログラムにしても同様。
344デフォルトの名無しさん
2014/09/23(火) 00:11:51.00ID:dVlUahkv346デフォルトの名無しさん
2014/09/23(火) 00:32:18.88ID:dVlUahkv 言語を開発する上で、既存の有限集合に基づくモデルで十分だという立場。
無限を扱うメリットを知りたい。
無限を扱うメリットを知りたい。
347デフォルトの名無しさん
2014/09/23(火) 00:50:04.92ID:dVlUahkv 無限小、無限大を取り込んでない、自然数に基づく数学に、あとから無限小、無限大を取り入れても矛盾しない。
超準解析 - Wikipedia
超準解析ではイプシロン-デルタ論法によって一度は数学から追放されたと思われた、無限小や無限大という極限に関する古典的で
直観的な感覚、すなわち、いわゆる実数論にもとづかないライプニッツ流の古典的な微積分を数学的に厳密に定式化し、取り戻すことができる。
このような古典的な微積分におけるオリジナルな無限小解析学とは区別されることもある。
アブラハム・ロビンソンによって考案された。超準解析の基本的な手法である超積はアラン・コンヌらによって作用素環の研究に応用されてもいる。
超実数は実数を拡張した数概念である。実数体に無限小・無限大を加えたものは体をなし、超実数体と呼ばれる。
超実数体は *R, R* などと表記される。その元を超実数という。
Rubyによる 超準解析 クラス.(HyperRael,MathExt)
超実数体とは,(大雑把に云えば) 実数体にライプニッツ的な無限小を添加して出来る体のことだ.
微分等, 通常の実数では limit を使う場面で, 超実数体内部の四則演算として直接求めることが出来る.
超準的な計算では, 無限小や∞の強さもわかるので無限小/無限小, 無限小*∞, ∞/∞ 等の計算が矛盾無く解釈可能となる.
ただし単なる体なので, 真の0(無限小でなく) については, 0*∞=0 で, 0/0 や 1/0 は定義されない.
この点は IEEE754 的な浮動小数点計算で 1.0/0.0 で Infinity を返すような気持の悪さは解消できる.
http://www.math.kobe-u.ac.jp/~kodama/tips-HyperReal.html
超準解析 - Wikipedia
超準解析ではイプシロン-デルタ論法によって一度は数学から追放されたと思われた、無限小や無限大という極限に関する古典的で
直観的な感覚、すなわち、いわゆる実数論にもとづかないライプニッツ流の古典的な微積分を数学的に厳密に定式化し、取り戻すことができる。
このような古典的な微積分におけるオリジナルな無限小解析学とは区別されることもある。
アブラハム・ロビンソンによって考案された。超準解析の基本的な手法である超積はアラン・コンヌらによって作用素環の研究に応用されてもいる。
超実数は実数を拡張した数概念である。実数体に無限小・無限大を加えたものは体をなし、超実数体と呼ばれる。
超実数体は *R, R* などと表記される。その元を超実数という。
Rubyによる 超準解析 クラス.(HyperRael,MathExt)
超実数体とは,(大雑把に云えば) 実数体にライプニッツ的な無限小を添加して出来る体のことだ.
微分等, 通常の実数では limit を使う場面で, 超実数体内部の四則演算として直接求めることが出来る.
超準的な計算では, 無限小や∞の強さもわかるので無限小/無限小, 無限小*∞, ∞/∞ 等の計算が矛盾無く解釈可能となる.
ただし単なる体なので, 真の0(無限小でなく) については, 0*∞=0 で, 0/0 や 1/0 は定義されない.
この点は IEEE754 的な浮動小数点計算で 1.0/0.0 で Infinity を返すような気持の悪さは解消できる.
http://www.math.kobe-u.ac.jp/~kodama/tips-HyperReal.html
348デフォルトの名無しさん
2014/09/23(火) 00:58:09.60ID:IDDuvAyc んなもん、チューリング完全な言語は能力同等なんだから
無限をその言語機能で直接書きやすく実行効率よくするかどうかの判断しだいだよ
で、1はもう無限を直接扱うのはあきらめたんでしょ
今度は有限の制約があっても、1が元々やりたかった範囲がカバーできてるのかって問題になるわけだが、
「やりたかった範囲」がぼんやりしてるからこれ以上はわからんわな
無限をその言語機能で直接書きやすく実行効率よくするかどうかの判断しだいだよ
で、1はもう無限を直接扱うのはあきらめたんでしょ
今度は有限の制約があっても、1が元々やりたかった範囲がカバーできてるのかって問題になるわけだが、
「やりたかった範囲」がぼんやりしてるからこれ以上はわからんわな
349デフォルトの名無しさん
2014/09/23(火) 01:02:03.65ID:IDDuvAyc おっと書きわすれた。まあ俺もみんながいってるように、
まず既存言語+ライブラリでやりたいことがどの程度できるのか確かめる
のがいいと思うけどね
まず既存言語+ライブラリでやりたいことがどの程度できるのか確かめる
のがいいと思うけどね
350デフォルトの名無しさん
2014/09/23(火) 11:31:06.71ID:5tA+8B0p 無限集合を扱わない代わりにストリームを集合として扱えるようにしようぜ
351デフォルトの名無しさん
2014/09/23(火) 11:38:18.07ID:yLd7Mbmy 無限集合を扱うのが困難なように言っているが、どういう操作を実装するか次第だろう。
例えば分数ライブラリがあるが、必要になればいくらでも循環小数や無理数の桁を取り出せ、しかし普段は分子と分母を保存しておくだけ。
それをさらに除算以外の演算もサポートした、値を式で保持するライブラリもある。
実際に何かの集合を扱うたびに本物のコンテナを生成するよりもマシな気がするけど。
>>305
> 関数型言語には状態がないってのはなんとなくしっくりこないなぁ。
変化しないものは状態といわない。
例えば人間には生と死という状態があるが、親が人間かどうかというのは変更がないから状態とはしない。
プログラムでいえば再代入のあるものが状態だ。
c/c++のconst変数は建前では参照透明だ(キャスト、mutableがであるので実際は違う)。
本当に関数型言語に状態がないかどうかは言語によるし、システムコールによる副作用があっても参照透明と呼ぶのはレトリックと言われても仕方ない気もする。
特定の言語自体の価値よりも、関数型プログラミング的テクニック全体に価値がある。c++でもPythonでも使える。
> あと、参照透過性を守ったって停止性問題が根本的に解決するわけじゃないよね?
難題とか複雑性が減るとかいう表現を使ったのは、停止性問題の証明には関係ないからだよ。
> これは自覚症状ないんだが。たとえばどの辺が分かったつもりの発言になってる?
>288 を読んで知ったかぶりらしく思わない人がどれだけいただろうか。
例えば分数ライブラリがあるが、必要になればいくらでも循環小数や無理数の桁を取り出せ、しかし普段は分子と分母を保存しておくだけ。
それをさらに除算以外の演算もサポートした、値を式で保持するライブラリもある。
実際に何かの集合を扱うたびに本物のコンテナを生成するよりもマシな気がするけど。
>>305
> 関数型言語には状態がないってのはなんとなくしっくりこないなぁ。
変化しないものは状態といわない。
例えば人間には生と死という状態があるが、親が人間かどうかというのは変更がないから状態とはしない。
プログラムでいえば再代入のあるものが状態だ。
c/c++のconst変数は建前では参照透明だ(キャスト、mutableがであるので実際は違う)。
本当に関数型言語に状態がないかどうかは言語によるし、システムコールによる副作用があっても参照透明と呼ぶのはレトリックと言われても仕方ない気もする。
特定の言語自体の価値よりも、関数型プログラミング的テクニック全体に価値がある。c++でもPythonでも使える。
> あと、参照透過性を守ったって停止性問題が根本的に解決するわけじゃないよね?
難題とか複雑性が減るとかいう表現を使ったのは、停止性問題の証明には関係ないからだよ。
> これは自覚症状ないんだが。たとえばどの辺が分かったつもりの発言になってる?
>288 を読んで知ったかぶりらしく思わない人がどれだけいただろうか。
352デフォルトの名無しさん
2014/09/23(火) 12:03:18.67ID:9ll4fKxj >>326は嘘で、無知で発想が支離滅裂で実行力もない人が多いみたいです。
353デフォルトの名無しさん
2014/09/23(火) 16:14:06.99ID:49Grt2TR 実装に寄らないクラス定義、メソッド、オペレータ、その処理の定義決めればいいんじゃね
オペレータオーバーロードできない処理系ではオペレータの代わりにメソッド実装でいいし、しっかり概念が定義されてたらどの言語にも移植できるやん
オペレータオーバーロードできない処理系ではオペレータの代わりにメソッド実装でいいし、しっかり概念が定義されてたらどの言語にも移植できるやん
3541
2014/09/24(水) 20:26:39.07ID:sdype2Aq うーん。とりあえず、集合のリテラルがある言語、またはリテラルを自作できる言語ってある?
355デフォルトの名無しさん
2014/09/24(水) 20:34:18.13ID:Z2e1BcPM C++11
356デフォルトの名無しさん
2014/09/24(水) 20:46:24.29ID:c/ueWxaZ Pascalの型に集合はあったけど、リテラルあったっけ?
3571
2014/09/24(水) 21:32:20.18ID:sdype2Aq C++11すげぇw
正気の沙汰とは思えないw
しかしこれ、setみたいなテンプレート型のリテラルもちゃんと作れるのかなぁ?
正気の沙汰とは思えないw
しかしこれ、setみたいなテンプレート型のリテラルもちゃんと作れるのかなぁ?
358デフォルトの名無しさん
2014/09/24(水) 21:47:35.83ID:icQzJbDu つうかC++11使ってリテラル定義しなくても、初期化子書けばいいだけ。
3591
2014/09/24(水) 21:59:47.35ID:sdype2Aq std::initializer_listなんてものもあるのか。
世の中知らないうちに便利になってるな。
世の中知らないうちに便利になってるな。
360デフォルトの名無しさん
2014/09/24(水) 22:19:34.82ID:u+CQqrHx3621
2014/09/26(金) 20:57:23.89ID:TQ6i6UUU C++11結構面白そうだが完全準拠したコンパイラが無いっぽい?
363デフォルトの名無しさん
2014/09/26(金) 21:17:42.44ID:v6QeAlLd お前のOSにゃ無いかもしれんな
3641
2014/09/26(金) 21:24:17.23ID:TQ6i6UUU とりあえずVisual Studio 2013 Express でいじってみてるけど結構楽しい。
int _tmain(int argc, _TCHAR* argv[])
{
set<set<int> > a = { { 1, 2 }, { 3 }, { 4, 5, 6 } };
for (auto i : a){ for (auto j : i) cout << j << " "; cout << endl; }
return 0;
}
とか書けていい感じ。
int _tmain(int argc, _TCHAR* argv[])
{
set<set<int> > a = { { 1, 2 }, { 3 }, { 4, 5, 6 } };
for (auto i : a){ for (auto j : i) cout << j << " "; cout << endl; }
return 0;
}
とか書けていい感じ。
365デフォルトの名無しさん
2014/09/26(金) 21:37:43.18ID:rLR78veI3661
2014/09/26(金) 21:56:27.24ID:TQ6i6UUU >>365
個人的にはもうちょっと言語の設計が根本から変わるようなものが
集合にはあるんじゃないかと思ってるんだが。
それがなんだかは分からないw
いまのところ集合を普通のライブラリとして用意する以上のアイディアは出てない。
個人的にはもうちょっと言語の設計が根本から変わるようなものが
集合にはあるんじゃないかと思ってるんだが。
それがなんだかは分からないw
いまのところ集合を普通のライブラリとして用意する以上のアイディアは出てない。
367デフォルトの名無しさん
2014/09/26(金) 22:40:52.33ID:mU/FSdzC (>>856 の続き)
始めは「考えられるリスクの低減」から
・ライブラリや共通部品の多くは(アルゴリズムやデータ変換を実現する単純なものもあるが)
データベース/ファイル/ネットワーク/プロセス間通信といったプログラムの
外部インターフェイス処理が多くを占める
これらを実装するには、プログラマにシステムコールや標準ライブラリ(>>829)、
そして社外のライブラリや社内の共通部品等等、幅広い知識が求められる
これを経験の浅いメンバに負わせるのは無謀
・ライブラリ/共通部品の実装技術は機能仕様(=ビジネスルール)には依存しないから、
類似のシステム開発プロジェクトがあれば、類似の実装になる
もしライブラリ設計担当がいくつかのプロジェクトを経験したベテランであれば、
過去の(失敗を含めた)経験から、既存の設計やコードを改造母体にして短期間で設計できる
これと同じことを経験の浅いメンバに期待するのは無茶
・万が一、ライブラリ/共通部品の開発日程が遅延して結合テストに間に合わなかったり、
結合テストでバグが多発する事態になれば、その影響はプロジェクトの全体に及ぶ
もしモスク(>>856)の中位/上位層であれば影響範囲は限定的だし、
その炎上の火消しのためにライブラリ/共通部品を担当させて余力のあるベテランを投入できる
(当然、ライブラリ/共通部品設計には日程厳守(or 前倒し)と高品質(=バグ0)をベテランに要求する)
始めは「考えられるリスクの低減」から
・ライブラリや共通部品の多くは(アルゴリズムやデータ変換を実現する単純なものもあるが)
データベース/ファイル/ネットワーク/プロセス間通信といったプログラムの
外部インターフェイス処理が多くを占める
これらを実装するには、プログラマにシステムコールや標準ライブラリ(>>829)、
そして社外のライブラリや社内の共通部品等等、幅広い知識が求められる
これを経験の浅いメンバに負わせるのは無謀
・ライブラリ/共通部品の実装技術は機能仕様(=ビジネスルール)には依存しないから、
類似のシステム開発プロジェクトがあれば、類似の実装になる
もしライブラリ設計担当がいくつかのプロジェクトを経験したベテランであれば、
過去の(失敗を含めた)経験から、既存の設計やコードを改造母体にして短期間で設計できる
これと同じことを経験の浅いメンバに期待するのは無茶
・万が一、ライブラリ/共通部品の開発日程が遅延して結合テストに間に合わなかったり、
結合テストでバグが多発する事態になれば、その影響はプロジェクトの全体に及ぶ
もしモスク(>>856)の中位/上位層であれば影響範囲は限定的だし、
その炎上の火消しのためにライブラリ/共通部品を担当させて余力のあるベテランを投入できる
(当然、ライブラリ/共通部品設計には日程厳守(or 前倒し)と高品質(=バグ0)をベテランに要求する)
3701
2014/09/26(金) 22:55:37.85ID:TQ6i6UUU 誤爆とは思えないほどスレの流れに合ったレスだったが。
まあいいや。
まあいいや。
371デフォルトの名無しさん
2014/09/27(土) 12:16:01.73ID:Tn3/IHEN オメガってZFに基づいた言語がアメリカにあったはずだが見つけられない。
集合はsetとclassの型付け。
上にある仕様記述言語Zとは別。
集合はsetとclassの型付け。
上にある仕様記述言語Zとは別。
3731
2014/09/28(日) 21:20:59.19ID:ngbZk+Gk375デフォルトの名無しさん
2014/09/28(日) 22:47:39.25ID:qFZf/al/ >>373
http://homepages.cs.ncl.ac.uk/cliff.jones/publications/Jones1990.pdf
http://www.cs.ncl.ac.uk/publications/books/papers/100.pdf
http://spivey.oriel.ox.ac.uk/~mike/zrm/zrm.pdf
http://staff.itee.uq.edu.au/ianh/Papers/SCS2.pdf
英語が苦手なのに
>しかたないのでこのスレは>>4とかの言語を勉強するスレにするか。
と書いたのか。
http://homepages.cs.ncl.ac.uk/cliff.jones/publications/Jones1990.pdf
http://www.cs.ncl.ac.uk/publications/books/papers/100.pdf
http://spivey.oriel.ox.ac.uk/~mike/zrm/zrm.pdf
http://staff.itee.uq.edu.au/ianh/Papers/SCS2.pdf
英語が苦手なのに
>しかたないのでこのスレは>>4とかの言語を勉強するスレにするか。
と書いたのか。
377デフォルトの名無しさん
2014/09/28(日) 23:48:18.69ID:qFZf/al/ >>376
http://homepages.uel.ac.uk/A.Kans/MSc%20week3.pdf
http://www.cs.nott.ac.uk/~rxq/files/4FSPnotation.pdf
http://formal.iti.kit.edu/~beckert/teaching/Spezifikation-SS04/11Z.pdf
http://homepages.uel.ac.uk/A.Kans/MSc%20week3.pdf
http://www.cs.nott.ac.uk/~rxq/files/4FSPnotation.pdf
http://formal.iti.kit.edu/~beckert/teaching/Spezifikation-SS04/11Z.pdf
379デフォルトの名無しさん
2014/09/29(月) 01:12:43.07ID:1qhCFqkI >>360についてどう思うかたずねられる →「wiki(pedia)だけじゃよく分からん」
詳しく書かれている文書を提示される →「読むのに時間がかかる」
もっと短い文書を提示される →「プレッシャーかけるな」
詳しく書かれている文書を提示される →「読むのに時間がかかる」
もっと短い文書を提示される →「プレッシャーかけるな」
380デフォルトの名無しさん
2014/09/29(月) 13:28:38.13ID:AXPWss48 >>1
センスは悪くないが、致命的に勉強が足りんな
センスは悪くないが、致命的に勉強が足りんな
3811
2014/09/29(月) 18:35:35.54ID:O3Lh9EkL382デフォルトの名無しさん
2014/09/29(月) 20:16:07.80ID:onaWAXdx どっちに進んだらいいのか分からないんだから、提供された情報を手がかりにして、
wikiだけじゃ分からんとか言わずに自分で情報をさがして勉強するしかないだろ。
情報を提供してもらうためにスレを立てたんだろ。
wikiだけじゃ分からんとか言わずに自分で情報をさがして勉強するしかないだろ。
情報を提供してもらうためにスレを立てたんだろ。
3831
2014/09/29(月) 20:43:37.99ID:O3Lh9EkL3841
2014/09/29(月) 20:52:49.67ID:O3Lh9EkL >>377
ちょっとだけ読んでみただけだから誤解があるかもしれないけど、
これは仕様をガチガチに固めるためのもの?
こんなこと言うと批判がありそうだけど俺としてはbashやRubyみたいに緩い感じでコーディングして
仕様変更があってもちょちょっとハッキングすれば何となく動いちゃうみたいのが好みなんだけど。
ちょっとだけ読んでみただけだから誤解があるかもしれないけど、
これは仕様をガチガチに固めるためのもの?
こんなこと言うと批判がありそうだけど俺としてはbashやRubyみたいに緩い感じでコーディングして
仕様変更があってもちょちょっとハッキングすれば何となく動いちゃうみたいのが好みなんだけど。
385デフォルトの名無しさん
2014/09/29(月) 22:24:17.39ID:MPdknRrK3861
2014/09/29(月) 22:46:32.46ID:O3Lh9EkL387デフォルトの名無しさん
2014/09/29(月) 22:53:43.66ID:6QlMlDt4 Python の set とかってイメージしてる "集合" とはどういう関係にあるのかな
388デフォルトの名無しさん
2014/09/29(月) 23:54:29.23ID:4aZKHf7r Zは仕様記述言語だよ。
Notationと言われているように、日本語だと記法と言ってもいいかもしれない。
Notationと言われているように、日本語だと記法と言ってもいいかもしれない。
389デフォルトの名無しさん
2014/09/30(火) 00:05:52.09ID:lw4FII9v390デフォルトの名無しさん
2014/09/30(火) 00:27:57.32ID:QoKiTOmo 過去の発言をあげつらうとか無粋なことを‥
そのときどきで感想がぽつぽつ上がってそこから何かが生まれればよし、そうでなくてもいいので、こうしてお付き合いしているわけだし‥
そのときどきで感想がぽつぽつ上がってそこから何かが生まれればよし、そうでなくてもいいので、こうしてお付き合いしているわけだし‥
391デフォルトの名無しさん
2014/09/30(火) 00:47:37.34ID:63XDoi4/ 1の興味がどっちに向いてるのかはっきりさせとかないと、誰かが>>360のように情報を出してくれても、
1は興味を持てず理解もできず、情報を出してくれた人を無視することになるわな。
1は興味を持てず理解もできず、情報を出してくれた人を無視することになるわな。
392デフォルトの名無しさん
2014/09/30(火) 04:58:34.96ID:AOM1YMTX 一次元で言ったら
(1-5) | ( 2-6) | (3-9) | (9-10) = (1-6, 3-10) こういうの返すとか
2次元だと、GDIなんかでもよくあるリージョン計算とか
三次元にも応用してとか
言語にこだわらず、集合表記決めて興味持った人が各言語で実装するのがいい
(1-5) | ( 2-6) | (3-9) | (9-10) = (1-6, 3-10) こういうの返すとか
2次元だと、GDIなんかでもよくあるリージョン計算とか
三次元にも応用してとか
言語にこだわらず、集合表記決めて興味持った人が各言語で実装するのがいい
393片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/09/30(火) 07:28:17.49ID:JjKI4EMd ひらがな電卓Calc-Hだと、
「ろくのやくすうはなんですか」とか
「じゅうにいかのそすうは」とか
「よんのばいすうはにでわりきれるか」とか
「いちいじょうのろくのばいすうは、ごよりおおきいさんのばいすうか」
といった質問に答えられるんだけど。参考までに
「ろくのやくすうはなんですか」とか
「じゅうにいかのそすうは」とか
「よんのばいすうはにでわりきれるか」とか
「いちいじょうのろくのばいすうは、ごよりおおきいさんのばいすうか」
といった質問に答えられるんだけど。参考までに
394デフォルトの名無しさん
2014/09/30(火) 12:59:47.25ID:X/itkzZm395デフォルトの名無しさん
2014/09/30(火) 15:20:16.06ID:3YX+fixm さわりは音楽でいうサビかイントロか。
イントロと間違う人も多いだろう。
イントロと間違う人も多いだろう。
396デフォルトの名無しさん
2014/09/30(火) 16:07:43.18ID:tX5UXYDw そりゃサビだろ
最低限なんだから大事なところ押さえないと
最低限なんだから大事なところ押さえないと
3971
2014/09/30(火) 20:27:22.22ID:p23v2Yf3 >>389
まあ、大風呂敷を広げた方が話が盛り上がるかと思って。
>>391
正直すべてのレスをフォローするのはしんどいかも。
方向性はまだ固まってないです。
>>393
結構、ことばがわかりません。ていわれる。
いまのでも結構すごいがこれを実用までもっていったらかなりすごいと思う。
>>394
Zはオブジェクト指向でいうUMLみたいなもん?
集合論プログラミングはぐぐったけどCiNiiの論文がヒットした。
プレビュー読んでみたけどアルゴリズムを自動生成するの?
確かにすごいし理屈も通ってると思う。
これの処理系がすでにあるなら触ってみたいけど、
自分で実装しようとは思わないw。大変すぐるw。
まあ、大風呂敷を広げた方が話が盛り上がるかと思って。
>>391
正直すべてのレスをフォローするのはしんどいかも。
方向性はまだ固まってないです。
>>393
結構、ことばがわかりません。ていわれる。
いまのでも結構すごいがこれを実用までもっていったらかなりすごいと思う。
>>394
Zはオブジェクト指向でいうUMLみたいなもん?
集合論プログラミングはぐぐったけどCiNiiの論文がヒットした。
プレビュー読んでみたけどアルゴリズムを自動生成するの?
確かにすごいし理屈も通ってると思う。
これの処理系がすでにあるなら触ってみたいけど、
自分で実装しようとは思わないw。大変すぐるw。
3981
2014/09/30(火) 21:50:21.63ID:p23v2Yf3 集合論プログラミングは確かに言語の設計が根本から変わってると思う。
こういう情報が得られるだけでもスレをたてた甲斐があるというもの。
こういう情報が得られるだけでもスレをたてた甲斐があるというもの。
399デフォルトの名無しさん
2014/09/30(火) 22:19:13.15ID:ic/LPcqx >>398
わざわざスレを立てなくても 集合論 プログラミング でググればすぐ見つかるんだけど。
「発想から徹底的に集合論的思想で言語仕様を考える」と言っておきながら
その程度の検索すらしてなかったんだな。
わざわざスレを立てなくても 集合論 プログラミング でググればすぐ見つかるんだけど。
「発想から徹底的に集合論的思想で言語仕様を考える」と言っておきながら
その程度の検索すらしてなかったんだな。
401デフォルトの名無しさん
2014/09/30(火) 23:59:40.07ID:izhA5Hzv4021
2014/10/01(水) 06:02:07.09ID:0+f79Okt >>401
VDM 書いたものが実装にならない
集合論プログラミング 書いたものが実装になる
と思い込んでたからな。
どっちも書いたものが実装にならないならあんまり俺の趣味じゃないなぁ。
集合論プログラムは書いたものが実装になってもよさそうなほど
論理を詰めていたように見えたが気のせいだったか。
VDM 書いたものが実装にならない
集合論プログラミング 書いたものが実装になる
と思い込んでたからな。
どっちも書いたものが実装にならないならあんまり俺の趣味じゃないなぁ。
集合論プログラムは書いたものが実装になってもよさそうなほど
論理を詰めていたように見えたが気のせいだったか。
403デフォルトの名無しさん
2014/10/01(水) 09:03:58.23ID:Srlu7drV >>402
VDMは実行可能だ
VDMは実行可能だ
404デフォルトの名無しさん
2014/10/01(水) 11:04:19.89ID:PsfjCcq+ >>398
やっぱりアンタはセンスが良い。というかこれから何かできる人だ。
集合論プログラミングはZなんかに比べるとマイナーだが、Zより実質がある。
実装もできる。アンタが土台にするべき言語はこれじゃないかな?
検索してないとかなんとかというノイズは無視していいよ。
やっぱりアンタはセンスが良い。というかこれから何かできる人だ。
集合論プログラミングはZなんかに比べるとマイナーだが、Zより実質がある。
実装もできる。アンタが土台にするべき言語はこれじゃないかな?
検索してないとかなんとかというノイズは無視していいよ。
405デフォルトの名無しさん
2014/10/01(水) 14:56:19.11ID:BreyGGJ4 >>402
論理式を使って、プログラムに自動的に変換できそうなほど詳細な仕様を書くのは、
>緩い感じでコーディングして仕様変更があってもちょちょっとハッキングすれば
>何となく動いちゃうみたいの
とはかなり違うわな。
論理式を使って、プログラムに自動的に変換できそうなほど詳細な仕様を書くのは、
>緩い感じでコーディングして仕様変更があってもちょちょっとハッキングすれば
>何となく動いちゃうみたいの
とはかなり違うわな。
4061
2014/10/01(水) 19:43:26.77ID:0+f79Okt407デフォルトの名無しさん
2014/10/01(水) 19:49:09.29ID:OzkCABBw >>406
インタプリタで実行できる
インタプリタで実行できる
4081
2014/10/01(水) 20:28:28.86ID:0+f79Okt409デフォルトの名無しさん
2014/10/01(水) 20:39:41.94ID:OzkCABBw >>408
VDMには実行できるexplicit specと実行できないimplicit specがある。
その例は実行できないimplicit specのほう。
このリンク先のはみな実行できるexplicit spec
http://www.vdmtools.jp/doc/tips/vdmIdiom.html
VDMには実行できるexplicit specと実行できないimplicit specがある。
その例は実行できないimplicit specのほう。
このリンク先のはみな実行できるexplicit spec
http://www.vdmtools.jp/doc/tips/vdmIdiom.html
4101
2014/10/01(水) 21:57:06.59ID:0+f79Okt >>409
なんか、サンプルプログラムよんでもイメージが湧きづらい。。。
文字列操作の前後のスペースをトリミングとか何やってるのかよく分からん。
[ p | p in set inds org & org(p) <> ' ']がorgの空白でない文字のインデックスの集合で
パターンマッチでその集合の先頭と末尾を取り出してる。
sがorgの空白じゃない最初の文字のインデックスでeがorgの空白じゃない最後の文字のインデックス
でorg(s,...,e)で頭とおしりの空白を取り除いた文字列を返してるってこと?
なんか、サンプルプログラムよんでもイメージが湧きづらい。。。
文字列操作の前後のスペースをトリミングとか何やってるのかよく分からん。
[ p | p in set inds org & org(p) <> ' ']がorgの空白でない文字のインデックスの集合で
パターンマッチでその集合の先頭と末尾を取り出してる。
sがorgの空白じゃない最初の文字のインデックスでeがorgの空白じゃない最後の文字のインデックス
でorg(s,...,e)で頭とおしりの空白を取り除いた文字列を返してるってこと?
4111
2014/10/01(水) 22:21:29.56ID:0+f79Okt []は集合じゃなくて列か。
412デフォルトの名無しさん
2014/10/01(水) 23:50:12.62ID:PsfjCcq+4131
2014/10/02(木) 12:38:59.14ID:CtSzUDAx あれ?乗っ取られてる?立てただけでちょっと居なくなったすきに…
4141
2014/10/02(木) 18:33:20.87ID:McIgqFFk415デフォルトの名無しさん
2014/10/02(木) 19:01:12.47ID:J690LAeG ここって>>1となれ合うスレ化してるから、馴れ合ってる1こそが1
416デフォルトの名無しさん
2014/10/02(木) 19:52:03.79ID:sULo4gIN4171
2014/10/02(木) 20:07:14.68ID:McIgqFFk418デフォルトの名無しさん
2014/10/02(木) 20:38:47.31ID:sULo4gIN >今からトリップつけても過去のスレに対してはなんの証明にもならん
それは>>415のように考えるしかない。
それは>>415のように考えるしかない。
4201
2014/10/03(金) 20:31:44.20ID:dWJ2kSUt Rubyだとトリミングはstr.stripで一発だな。
ライブラリつかわんでもstr.gsub(/^ +/,"").gsub(/ +$/,"")でワンライナーか。
この比較がフェアかどうかは微妙だが、Rubyと比べてVDMは読むのしんどいな。
慣れてないだけかもしれんが。
ライブラリつかわんでもstr.gsub(/^ +/,"").gsub(/ +$/,"")でワンライナーか。
この比較がフェアかどうかは微妙だが、Rubyと比べてVDMは読むのしんどいな。
慣れてないだけかもしれんが。
421デフォルトの名無しさん
2014/10/03(金) 22:20:11.35ID:wImYRAo7 >>420
的外れな比較だな。
的外れな比較だな。
4221
2014/10/03(金) 22:25:06.66ID:dWJ2kSUt423デフォルトの名無しさん
2014/10/04(土) 04:41:52.82ID:TsYLxX57 で、文字列をトリミングするのが君のいう集合論ベースの言語なのかい?
425デフォルトの名無しさん
2014/10/04(土) 12:53:49.48ID:TsYLxX57 言ってることがブレブレなんだよ。
集合論から徹底的にと言ってみたり有限集合だけと言ってみたり
言語仕様だと言ってみたり便利なライブラリだと言ってみたり
美しい言語だと言ってみたり処理速度がどうのと言ってみたり
で、今度は文字列操作ユーティリティライブラリの充実度か。
結局何がしたいんだ?
集合論から徹底的にと言ってみたり有限集合だけと言ってみたり
言語仕様だと言ってみたり便利なライブラリだと言ってみたり
美しい言語だと言ってみたり処理速度がどうのと言ってみたり
で、今度は文字列操作ユーティリティライブラリの充実度か。
結局何がしたいんだ?
426デフォルトの名無しさん
2014/10/04(土) 13:00:56.11ID:by55sH8H 有限集合のみだと素朴集合論以下だしな。
427デフォルトの名無しさん
2014/10/04(土) 13:34:13.41ID:s6wyGDsN >>425
そんなに結論を急ぐのはなんでなの?
そんなに結論を急ぐのはなんでなの?
428デフォルトの名無しさん
2014/10/04(土) 14:11:28.47ID:TsYLxX57 結論どうこう以前に
こうまで毎回後だしジャンケンばかりでは
永遠にグダグダだろ
こうまで毎回後だしジャンケンばかりでは
永遠にグダグダだろ
429デフォルトの名無しさん
2014/10/04(土) 16:04:23.04ID:+NqOnrEc 個人のチラ裏にそんな文句つけてやるなよ
430デフォルトの名無しさん
2014/10/04(土) 16:08:30.01ID:aLeuItWT ID:TsYLxX57の書き込みに文句をつけるのもなしの方向で
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 旧姓使用拡大に連合会長が反発 「何の説明もない。選択的夫婦別氏制度導入を」 男女共同参画会議 ★2 [ぐれ★]
- 開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 ★2 [ぐれ★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【悲報】中学受験、意味がなかった…「中学受験をやっても大部分の子供は無勉で入れるMARCH地方国立大に行くのが精一杯です [483447288]
- ジムでインターバルの時にウロウロ歩くやつなんなの?
- レイプはとっても気持ちがいい
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 大阪行くわよーーーッ!!!
- 近所の騒音おじさんが俺にだけ優しくしてくる
