「コンパイラ・スクリプトエンジン」相談室16

2014/07/20(日) 11:16:19.37ID:p6eMVAxc
プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。

Wikiのまとめページ
http://www6.atwiki.jp/compilerandscriptengine/
2015/07/11(土) 08:23:11.34ID:SvdcMd32
>>238
変換したCコードを出すならトランスレーターだけどバイナリまで出すならコンパイラーでいいだろ
2015/07/28(火) 03:30:13.81ID:92wk7rzR
果たして文法を仮想化できるか
2015/08/19(水) 08:24:37.58ID:zh/OeKTd
凄いこと発見したんだけれどもΛの記号は上の尖がったところがルートで
下の二つの棒が辺を表しているんだな
242デフォルトの名無しさん
垢版 |
2015/08/19(水) 22:05:03.04ID:caRlC37E
言語非依存の仮想マシンっていうアイデアがいまいち大成功していないように見えるのって
なんか理由があるのかな。
2015/08/19(水) 22:59:51.18ID:7Z0FzJPx
落ちてたllvmスレを立て直した

【最速へ】LowLevelVirtualMachine 2【LLVM】
http://peace.2ch.net/test/read.cgi/tech/1439992758/
2015/08/19(水) 23:17:16.98ID:ynuNSl9L
>>242
めちゃくちゃ成功してまんがな。LLVM,clang知らないの?
2015/08/20(木) 00:06:05.42ID:BI1Ot8hx
>>244
実際に成功していても成功していないよ・う・に・見・え・るって話じゃないの?
XCodeのコンパイラがllvm,clangだってのは開発者にしか見えないしclangの話だけ聞いているとgccが組み込み機のCPUに対応してたころみたいに派手に活躍してるとは感じられないって事じゃ無いの?
2015/08/20(木) 04:55:31.33ID:uOqBPetd
たぶん外国には、CASL2のような仮想アセンブラを使う、
情報処理試験が無いのだろう

2人の大学生が作ったLLVMに、Appleが飛びついた。
それで、Lattner はAppleに就職した
2015/08/20(木) 11:06:47.70ID:XXXu8/KU
良く言えば新世代の輝き
悪く言えば発展途上の不安定さ
さらに組み込みで言えばカバー範囲の幅広さは犠牲にされがち

将来性でメシが食えるのはごく一部
2015/08/20(木) 11:31:12.43ID:WmW0wMbd
痛い文章だ
2015/08/24(月) 00:47:20.35ID:OjRQ25eS
マルチメソッドを効率よく実装するにはどのようにすればよいですか?
2015/08/24(月) 01:10:40.39ID:YG1kZeuQ
マルチメソッドって何?
2015/08/24(月) 01:36:14.61ID:OjRQ25eS
OOPの最も基本的な機能です
引数によって、メソッドが切り替わります
多態といいます
2015/08/24(月) 02:01:55.26ID:YG1kZeuQ
オーバーロードのことですか?
ではマングリング
2015/08/24(月) 02:21:03.16ID:OjRQ25eS
マルチメソッドはオーバーロードでは無いです
一般にオーバーロードは静的ですが、
マルチメソッドは動的です
2015/08/24(月) 08:00:36.10ID:WVPITNbu
>>251
> 引数によって、メソッドが切り替わります
はい?
2015/08/24(月) 08:19:25.57ID:jJXNOMmM
clojureのdefmultiみたいな奴じゃないの?
2015/08/24(月) 11:49:46.23ID:BYoao/vR
多重ディスパッチのニッチな要求に応えるものか
それとも単純な動的バインディングだけの問題なのか
2015/08/26(水) 18:36:02.43ID:XR0u/yGZ
マルチメソッドはC++相談室を検索すればなんなのかがわかる
2015/08/30(日) 17:45:45.69ID:bYlp1Mb/
>>249
パターンマッチを効率よく行う
259デフォルトの名無しさん
垢版 |
2015/08/30(日) 19:15:42.50ID:nhXJHOe7
型を連想配列やトライ木で管理すればO(1)
2015/08/30(日) 20:08:17.93ID:brcjELIg
>>259
clojureはソレだね
261デフォルトの名無しさん
垢版 |
2015/09/17(木) 12:38:19.48ID:mHCGeegj
中間言語の設計に関するノウハウとかアンチパターンとかが書かれた本誰か知ってる?
LLVMとかP-codeとかJava VMとか、あるいはKnuthのMIX/MMIXみたいな機械語に近いレベルの言語を
ソフトウェア実装すること前提に設計する場合について知りたい。

今言語設計してて、そろそろ構文解析できそうだから学んでおきたいんだけど。
2015/09/17(木) 19:56:34.99ID:7ftMaB4B
最初はネイティブに落とした方がいいぞ
中間言語とか遠回りしてたらアホみたいだぞ
2015/09/18(金) 15:07:01.58ID:QAQ6VXx0
そんな物他人に教わるくらいならおとなしく既存のを使っとけ
2015/09/18(金) 20:35:24.73ID:F4ynHS7Z
本として出して需要あるか?もしかしたらサーベイ論文なら探せばあるかも
265261
垢版 |
2015/09/18(金) 21:16:12.07ID:ArWsl8Ey
>>262
素直にコンパイル出来ない言語を設計してるので(clispのような)、snippetの表現をx86/amd64表記にする意義が薄いんですよね。

>>263
凝り性なもので。

>>264
一応ciniiは一通り眺めたけど、中間言語の設計に関する論文って無いんですよね。
素直に「中間言語」で調べると自然言語の翻訳に使う方が大量に引っかかってつらい……
2015/09/18(金) 22:17:11.93ID:i7DEL3du
>>265
動的型付け必須系?
ならErlangの論文とか資料あさるといいかも
267261
垢版 |
2015/09/19(土) 09:19:04.79ID:YlOPp2hb
>>266
swiftのように演算子をユーザー定義出来て、
c++のように同名異引数の関数を定義出来て、
Lispのように引数間のカンマが要らず、
Rubyのようにカッコを省ける
そんな言語を設計中です。

それらの両立のために実行中に文法を書き換えて構文解析器を再構成するという手法を採ってるので、コンパイル出来ないんですよね……
clispのリードマクロを文脈依存に拡張したものだと言えば大体あってるかと。

ちょっとErlang関連の資料を見てみます。
2015/09/19(土) 10:26:16.30ID:7hgo9IJ4
>>267
列挙してあることはシンタックス上のことで全部コンパイル時に静的に解決出来そうに見えるけど無理なの?
2015/09/19(土) 11:29:33.20ID:I9CWDfzW
>>267
コンパイル時の都合だよね?
VMの設計とはなんの関係もなさげなんだけど
270261
垢版 |
2015/09/19(土) 12:48:32.00ID:YlOPp2hb
>>268
今考えてる言語では、演算子の扱いが関数を引数の場所に関して一般化した第一級オブジェクトなので
前置引数の個数や後置引数の個数は実行してみるまで分からないので
コンパイル時の識別子を用いた構文解析は無理です。
前置演算子と一引数関数が別物って変だと思ったのでそうしました。

c++風に書くと、こんな感じのが通るイメージです。
g = [](a,b){return a - b;};
if (複雑な式) {
 f = [](a|b,c){return a + b + c;}; // (a|b)で前置引数としてa、後置引数としてbと示すものとする。
} else {
 f = [](a,b|c){return a + b + c;};
}
// gは2引数演算子、fは3引数演算子。
// ここではgの優先順位はfより低いものとする(c++での表現方法が無いので)。
// カッコやカンマを省いてある場合、上の条件のどちらが走っても構文上は受理される。
// 複雑な式の結果によって、これはg(1, f(2, 3, 4))及びg(f(1, 2, 3), 4)のどちらにもなりうる。
cout << (g 1 2 f 3 4) << endl;

>>269
そういうわけで一度に全部読み込んでコンパイルしてから実行するという事が出来ないので、
折角だからVMも設計しようと思った次第です。
ASTから中間言語に落とすとcontinuationの実装が楽になるので。
271デフォルトの名無しさん
垢版 |
2015/09/19(土) 13:15:38.32ID:hJISNbn0
g 1 2 f 3 4は構文解析後にはどういうツリーになっているの?
フラットなままで構文解析終えて実行時にまたプチ構文解析をするの?
272261
垢版 |
2015/09/19(土) 13:24:30.87ID:YlOPp2hb
>>271
字句解析でばらばらにしてLL(1)でカッコの対応等について解いた背の低い木にして、その後実行時にLR(1)で式毎に再度解析するので
> フラットなままで構文解析終えて実行時にまたプチ構文解析をするの?
これであってます。
2015/09/19(土) 14:10:09.60ID:I9CWDfzW
おもしろい事かんがえてるなー
ElixirとかBEAM-VMとか参考になるんじゃねぇの?
274261
垢版 |
2015/09/19(土) 15:18:02.65ID:YlOPp2hb
>>273
高信頼・並列分散に特化したVMのようにあちこちで言われてるみたいですね、ErlangのBEAM-VM.
そう考えるとLLVMは解析容易性特化、JVMはVM自体の実装容易性特化といった所でしょうか。

VMを作るなら何かに特化させるべきなような気がしてきました。
2015/09/20(日) 00:52:44.57ID:m4tWKm8w
演算子に限定する意味は何だろう
cout << (g 1 2 f 3 4) << endl;
こんなの一見して何してるのか判らないしいっそ構文ごと第一級にすればいい
そもそも実行時に構文解析機まで走らせる重い処理系って必要なのかなあ
クロージャじゃあかんのかね
2015/09/20(日) 09:22:45.62ID:tHziPwGz
この程度のアイデアしかないようじゃ才能ないわな
277261
垢版 |
2015/09/20(日) 11:27:11.87ID:oZCwg6h7
>>275
今作ってる実装だと構文はhead, body, precedence, directionをキーとするオブジェクトの配列になってるので
構文も第一級オブジェクトのインスタンスになっています。
説明不足ですんません。
コードは現在こんな感じ。もし読みたければどうぞ。
https://gist.github.com/pixie-grasper/d07388493204a5e370a2
debug-printが多かったりコメントが少なかったりしますが……

> そもそも実行時に構文解析機まで走らせる重い処理系って必要なのかなあ
必要性については私にはまだ分かりませんが、
私は昔レキシカルスコープもクロージャもポインタも継続もマクロも無い素晴らしく酷い言語(古いBASIC)で全てを考えていたので、
その経験から、どんな機能も使い慣れると必要になってくると思っています。

>>276
私馬鹿なもんで。
いいアイデアがあったら是非とも実現してくだされ。
2015/09/20(日) 11:30:35.69ID:O6Xw3ijC
>>275-276
俺にも意味があるようには見えないけど、俺の知らない用途があるのかもしれない
とにかくわからないならスルーしとけよ
2015/09/20(日) 18:18:01.68ID:tHziPwGz
>>277
絶対真似しないと約束するなら教えてもいいぞ
280261
垢版 |
2015/09/20(日) 18:52:58.39ID:oZCwg6h7
>>279
じゃぁ真似せずに似たようなものを考えつくまで考え抜きます。
私馬鹿なので。
2015/09/20(日) 20:15:16.31ID:9UpT3677
>>274
BEAMは引数のMatchで分ける処理がVMにあるんでそういう意味でオモシロイコト -> BEAM参考になるんじゃねぇのって話です
282261
垢版 |
2015/09/20(日) 21:59:23.12ID:oZCwg6h7
>>281
調べてみました。

BEAMだと実行時にモジュール名、関数名、及び引数の数を指定して呼び出す関数を同定するんですね。
実引数の数がコンパイル時には分かるから命令語に引数の数を組み込めるのだと思いますが……
今考えてる言語だと、実引数の数が自明じゃないので使いにくい気がします。

助言、ありがとうございます。
283デフォルトの名無しさん
垢版 |
2015/09/21(月) 19:55:02.85ID:x6IKJHaI
スクリプト型の言語って実行時にコンパイル(構文解析?)が発生するから、コンパイル型の言語より遅いのですよね。

では、アプリケーションの起動時にスクリプトを読み込んだ後のパフォーマンスは、スクリプト型もコンパイル型も大差ないのでしょうか?
2015/09/21(月) 20:31:03.01ID:XzxcjOEi
大差あります
2015/09/21(月) 21:42:55.66ID:LoRahTLC
>>283
「スクリプト型の言語」やら「コンパイル」やらが何を意味してるのかにも依りますが、
よくある速度重視の構成だと、読み込み時に構文解析や意味解析、中間コード生成を終わらせて
実行時に中間コードを(1)実行可能バイナリに変換するパターンと、(2)仮想マシン上でエミュレートするパターンとの二通りがあります。

(1)の場合は変換処理そのものがそれなりに重く、
しかも高度な最適化を掛けるとそれ自体に時間が掛かってしまうので
最適化は殆ど掛けられずコンパイラ型言語の2〜3倍は遅くなりますし、
(2)の場合は1命令実行するのに命令を読み込んで比較してジャンプして、
とCPUがアナログ回路上で並列処理してる計算を逐次的に実行するのでかなり重くなります。
2015/09/22(火) 13:12:55.44ID:f7gaXzgp
比較にならない

スクリプトは柔軟性重視なので速度を出すためのチューニングは後回しにされる

起動時にある程度最適化できるものもあるが、
最適化のために数十秒〜数分かけたりもできない
また実行直前にならないと決まらない内容も多く無駄になってしまう

そもそもコンパイラ型で速度重視のソフトを作る場合は
開発者自身やライブラリがメモリレイアウトなど制御し効率を考慮したコードを書く(書ける)
2015/09/25(金) 18:30:15.12ID:TpmuUHaP
自分でC言語っぽいスクリプト言語とかデータ形式作ってみたけど、どうだろ?
ちなみにスクリプト言語はSC3_Compilerってのに入ってるが。
ttps://osdn.jp/users/mitubasa/pf/BuildContainer/files/
2015/09/26(土) 01:18:18.90ID:4Rxec7m6
>>283
「スクリプト言語」の定義は難しいが、おおむね
(1)(ユーザーから見て)明示的なコンパイルというフェーズを経ずに実行される
(2)変数に型がない
(3)実行時に行える処理の柔軟性が高い(例えば関数定義など)
という特徴を持つ言語を指すことが多いだろう。RubyやPythonなど

で、それぞれの特徴が、実行速度を遅くすることに貢献する。
(1)→ 最適化に時間を割けない
(2)→ 実行時に、変数が指すオブジェクトの種類を調べる処理が毎回入る。
(3)→ これを実現するためにバイトコードインタプリタで実装されることが多く、遅くなる

もちろん厳密な定義ではないので、あくまで「おおむね」という話。
Javascriptみたいな変態事例もあるし断定的なことは何も言えない
言葉の定義の論争は不毛
2015/09/26(土) 11:28:42.59ID:GpPO3Mdd
>>287
(一切実行せずに)サラッと眺めた感じだと
字句解析くらい生成系やライブラリ(flex++やboost::spirit等)に頼ってみたらどうかなってのはあるかな。

変数名としてnCount(整数,カウント)の代わりにixArg(添字,引数)を使うとか
細かいところは幾つかあるかも知れんけど、それなりに読みやすいと思うよ。

stdafx.cppって名前で使ってることは察したけど、VS使うんなら
プロジェクト開くのに必要なファイル(.sln等)を入れるとか、
或いはMinGW/Cygwin/msys2なんかのUnix系ツールでさくっとビルドできるようにcmakeを書くとかしておくと
評価する人が増えると思うよ。
2015/10/04(日) 21:40:28.41ID:Qeh3kLaJ
おれバカで不勉強だから知らなかったえけど、最近の処理系って状態コードのお持ち帰りをしてくれるんだね
手続きAを呼んだ直後にグローバルな状態変数に何がしかの情報が入ってる(何も起きなかったとか、フックして停止させるの推奨みたいな)

面白いな〜
データを加工して返すー>関数(関数内で処理のフローに関係する記述は禁止)
処理のフローに関係するー>手続き(状態コードを標準で返す)
複数個所使うで同じ様な処理をまとめるー>サブルーチン(スタックフレームの無いローカルな手続き)

プログラムを組み上げるときの構造や構成に行儀のよい作法がないと
プログラムのどの時点でどのデータがどの構成や状態にあるのか把握ができなくて発狂するww

で、なんでも記述できる自由度の高い処理系ほど読解困難な発狂プログラムが出来上がると
2015/10/05(月) 23:32:01.45ID:F9TK8Py4
>>290
状態コードのお持ち帰りって何?
2015/10/06(火) 02:07:01.38ID:mXRqVUnf
何を言ってるのかさっぱりワカラン…
2015/10/06(火) 02:50:21.48ID:rErEEAIK
クロージャのことかな・・・
最初Smalltalkやlispの環境のことかと思ったけど
2015/10/06(火) 10:51:51.85ID:SQrzN3D5
coroutineだったりして?
2015/10/06(火) 13:56:11.40ID:6X8NqiS5
継続じゃないの
俺は気持ち悪いとしか思わんけど
2015/10/06(火) 14:17:39.64ID:ztjfyQaD
なんでも記述できる自由度の高い言語ほど……
2015/10/06(火) 22:40:32.31ID:KmJ2byjS
(PEEK/POKEで)なんでも記述できる自由度の高いBASIC言語はいかがですかー
2015/10/07(水) 11:46:38.15ID:YlJ45J+b
文字通りステートコードの事じゃね?
Unixが何十年も前に確立してるけど

# make && make install
2015/10/11(日) 09:14:44.03ID:yW9ExgL4
なんか意味不明なこと書いてすいません

ステートコードで正しいと思います。
バカ正直に戻り値だけと思い込んでいたので

さっき、vs2013のc++起動して、構成プロパティでx64とアセンブラコードの出力に設定して
c++の入門書を買うか悩むこと5分
lispの実装でググって15分
考えるのやめて現実逃避中orz

一番自由度の高いのはアセンブラ(当たり前だけど)
ただし、全て自己責任(自由度が高い=自己責任ですよ〜)

なんか、適当なスクリプト言語が作れないかなと
2015/10/11(日) 16:02:56.87ID:e7nwHPrn
>>299
「自由度」の定義は何?確かに「そのマシンで出来ることがなんでも記述できる」ならアセンブリほぼ一択だけど、
例えば「その言語のプリミティブと同等な機能を作れる」ならCommon Lispは自由度が高いし(マクロ最高!)、
或いは「その言語のプリミティブの機能を別な機能に変更出来る」ならTeXは自由度が高いよね(TeXの\endプリミティブが、なんとLaTeXでは違う機能に置き換わってる)。
例えば「その言語の文法を変えられる」って意味ならswiftやprologなんかは自由度が高い例になるだろうし、
仮にそれらの意味であればアセンブリ言語なんて自由度の欠片もない言語の一つになるよ。


適当なスクリプト言語が作りたいならHQ9+かbrainfuckか何かを作ればいいと思うよ
という冗談はさておき、そのスクリプト言語で何をやりたいかによって色々変わってくるよね。

テキスト処理ならgrepやsed、awkやperlなんかは参考になるだろうし、
統計処理や数式処理なんかはRやmathematicaが有名所かな。
読みやすさ重視ならある意味ではCOBOLやBASICが、別な意味ではpythonやrubyが「読みやすさ」を重視した言語として有名だし
とにかく簡単な文法にしたいならlispやpostscriptなんかが興味深い例ではある。

特殊用途向けの言語が作りたいか、汎用的な言語が作りたいか
汎用的な言語であれば手続き型か関数型か論理型か、関数や型はファーストクラスオブジェクトか、どんな文法か。
特殊用途向けの言語であればどんな用途で使うのか。
ノベルゲーム制作の補助向け(NScripter/吉里吉里等)なのか、文法記述用(regex/LR/PEG等)なのか、画像や構造を記述するもの(svg/postscript等)なのか。
2015/10/12(月) 16:27:55.78ID:xsIpokn9
>>300
丁寧な指摘ありがとうございます。
実際にVS2013をインストールしc++の入門を開いてブレイクポイントーデバッグーアセンブラの表示までたどりつきました
実際のアセンブラのコードを見て少し頭を抱えたしだいです
int a,b,c;
a=1; b=a/2*2;
たったこれだけのコードのアセンブラ出力も、符号拡張命令後の処理の意味が汲み取れませんでした
取り合えず高度な目標はありません

NanaTerryなるアイデアプロセッサを使ってみたらとても使い心地が良かったので
これをシンプルな機能に絞って実装する、そんなプログラムやアイデアを綴るTEXTを扱うtoolを
作りだす為の仕様に絞って色々検討しています。
低機能なlispっぽいなにかになる予定
最近はcコンパイラの実装まで大学のカリキュラムにあると聞いたので凄く刺激を受けました

実際c++の入門などを読んでも言語の仕様に何等かの違和感があるのです
2015/10/12(月) 18:59:19.08ID:ATBGiUj9
こいつ覚えたての言葉を使いたいだけのワナビーだろ
おそらくスレ違いなのにも気づいてないし相手すること無いぞ
2015/10/12(月) 19:02:17.18ID:qifYD3R8
パラドックスが始まった
304デフォルトの名無しさん
垢版 |
2015/12/09(水) 21:43:53.38ID:yqcBT5mk
CでCを作るのと、アセンブラ使ってCコンパイラを作るのと、
どっちが良いかな?
2015/12/09(水) 23:21:35.10ID:0CTdrHjr
CでCを作る時間をCでXを作る時間に充てるのが良い
306デフォルトの名無しさん
垢版 |
2015/12/10(木) 03:57:42.43ID:zEe7T/5S
>>1
デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/

WIXOSS WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html
307デフォルトの名無しさん
垢版 |
2015/12/10(木) 04:01:27.83ID:zEe7T/5S
【 オンラインTCGエディター 】   >>1,>>306

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみて。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳兼PGを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1449623194/-18
2015/12/21(月) 02:59:48.04ID:4Mx5VRPH
>>304
BCPLとかCの生まれをもう一度考えてみると良いんじゃ無いかな?

凸記法で言語の生成を僕が読んだのはBit別冊の何かに書かれていたPlan言語の解説だったけど、ああいう記法って今は使わないのかな?
↑ある言語を生成するのに必要な言語処理系を凸と凹で組み合わせて表記してある奴なんだけど、アカデミックな世界でなんて言う方法かしらないのでこう書いてます。
309デフォルトの名無しさん
垢版 |
2015/12/21(月) 21:20:55.44ID:6WzMDceb
乱数の発生のさせ方は、クロックを利用するものだけかな?
色々ありそうだけど、調べても良くはわからなかった。
2015/12/22(火) 01:30:01.23ID:P1DQx2Lt
時刻ではなく、プログラムを起動してから経過した時間を取得できます。それを種にする
2015/12/22(火) 01:34:09.74ID:P1DQx2Lt
GetTickCount function

システムが起動してから経過したミリ秒を取得
Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724408%28v=vs.85%29.aspx
2015/12/22(火) 14:10:11.43ID:dkSLpih8
>>309
seedを何にするかって話?
/dev/randomとか
2015/12/22(火) 14:11:39.64ID:dkSLpih8
>>310
>>311
プログラムやシステムの起動直後に実行するコード、プログラムではほぼ似た値を使うことになってしまう。
2015/12/22(火) 16:20:29.14ID:FIUTNb/j
>>309
ハードウェアのADコンバータ経由(アナログなノイズジェネレータからADコンバータで拾ってくる奴)で乱数作るとかもあるけど、計算機の乱数は種から一意に求められる様な物が一般的だよ
で種(seed)の値に現在時刻をつかったり、ユーザの挙動(キー入力やマウスの位置)を素にしたりして見かけ上の乱数性を生成しているのが普通。
2015/12/22(火) 18:18:28.54ID:qPz15M1W
専用ハードがあってもいいかと‥
最近のCPUには載っているそうなんだが
http://peace.2ch.net/test/read.cgi/tech/1192628099/337
316デフォルトの名無しさん
垢版 |
2015/12/22(火) 20:55:17.79ID:1duNN4a3
乱数表をあらかじめ組み込んでおいて、起動からの時間により、順繰り
読んで擬似的に乱数を発生させる方法はありかな?
2015/12/22(火) 22:21:41.42ID:HbMu76eU
ねーよ
2015/12/22(火) 22:39:41.89ID:S5fGjlFA
>>316
乱数表に見えるってだけで良いなら擬似乱数列使えばそれで済む話で
わざわざ乱数表全体を組み込む意味がない
2015/12/23(水) 02:10:18.76ID:o2v4fYco
何でそんなに起動からの時間が好きなんだよw
女官じゃないぞ
2015/12/23(水) 14:48:59.82ID:1VnhNGH+
大昔の光栄ゲーでは起動時に RETURN を叩いてもらってそのタイミングで乱数初期化してたw
2015/12/24(木) 23:33:07.59ID:Uv2klDgG
std::random_device
322デフォルトの名無しさん
垢版 |
2015/12/25(金) 21:30:55.13ID:R/sO38u1
ユーザーのマウスの動きを、ミッキー単位で取得して乱数を...と
思ったら、プログラマはマウスを嫌がり、あまり使わないで
tabキー多用する奴も多かったからな。別な手を考えた方が良いかな?
2015/12/25(金) 22:26:16.56ID:DXbDvcZw
なあ、今時のCPUはランダムデバイス持ってることくらいは知っとこうや
幾らくたばりかけてる爺でも
2015/12/26(土) 08:32:40.01ID:CDX6E7Ry
なあ、全員が今時のリッチなCPUを使う訳じゃないことくらいは知っとこうや
幾らゆとりのアホでも
2015/12/26(土) 12:19:14.32ID:NrOPRYuI
CPUを明示して相談しなよ
知らんだけで乱数用のエントロピー生成命令持ってるかもしれんし
IntelならOSがサポートしてなくてもIntel DNRG使えばいい
2015/12/26(土) 13:31:50.28ID:4htfJ0fo
俺の頭の中のcpu(10MHz)が・・・
2015/12/26(土) 13:55:58.15ID:oIXuKyHb
リアルタイムで動画処理、画像認識、空間認識、音声認識その他諸々を全部やってのけるのって地味に凄いよな
時間あたりの消費エネルギーも、要求エネルギーが2000kcal〜4000kcal/dayとしてもおよそ100W〜200Wで非常に効率が良いし
328デフォルトの名無しさん
垢版 |
2015/12/26(土) 20:17:52.51ID:nC5MMPRS
CPUで何でも出来るようになってしまったら、
マの出番はどんどん減ることになりそうだな。
大昔は、足し算と引き算は出来るのに、掛け算と割り算が出来ないのが
当たり前だったからな。30年くらい前のものだとな。
329デフォルトの名無しさん
垢版 |
2015/12/28(月) 10:04:16.17ID:VJBFmUt0
ランダムデバイスに頼るのが良いのか、迷ってしまいそうだな。
こういうのを読んでしまうと...。

ttp://cpplover.blogspot.jp/2013/07/blog-post_14.html
ハードウェア乱数生成器は信頼できるか
2015/12/28(月) 10:25:27.73ID:1a7EtF6d
NSAと戦ってる人か
2015/12/28(月) 12:54:32.70ID:dgI6+oKo
>>329
よくわからんけど生成された値を適当な鍵使って AES 暗号化するんじゃ駄目なの?
2015/12/28(月) 12:58:36.44ID:b3qQlUF/
OSを作る時の話になってるから適当な鍵をどこから持ってくるか熟慮しないといけない
333デフォルトの名無しさん
垢版 |
2015/12/31(木) 19:14:36.65ID:shZW63x7
一度に数十個の乱数を生成するコードを書き、重複チェックを忘れる俺は、
やはりマには向いていないのかもしれん。コード記述の時点で
重複することが頭から抜けていた。ついうっかり...。
2016/01/01(金) 03:47:17.29ID:xJBQ4MUG
>>329
自分の方が質が高いのを用意できるわけw
335デフォルトの名無しさん
垢版 |
2016/01/05(火) 10:14:26.10ID:n8GHd5T0
「ハードよりも、俺の方が正確に動く」と、
一度で良いから言ってみたい。
2016/01/06(水) 02:04:42.23ID:DSMnLqrW
楽するためにプログラミングするのであるが
一向に楽にならず
337デフォルトの名無しさん
垢版 |
2016/01/07(木) 17:58:56.46ID:3JUqZlZh
>>336
顧客が楽になっているだろw
裏でマが血のにじむような努力をしていることを、知る由もないからな。
2016/01/07(木) 18:29:10.67ID:E6rodr+5
70点じゃなくて55点で妥協すれば
費用が100分の1になるって教えてやれよ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況