「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
284: 2015/09/21(月)20:31 ID:XzxcjOEi(1) AAS
大差あります
285: 2015/09/21(月)21:42 ID:LoRahTLC(1) AAS
>>283
「スクリプト型の言語」やら「コンパイル」やらが何を意味してるのかにも依りますが、
よくある速度重視の構成だと、読み込み時に構文解析や意味解析、中間コード生成を終わらせて
実行時に中間コードを(1)実行可能バイナリに変換するパターンと、(2)仮想マシン上でエミュレートするパターンとの二通りがあります。
(1)の場合は変換処理そのものがそれなりに重く、
しかも高度な最適化を掛けるとそれ自体に時間が掛かってしまうので
最適化は殆ど掛けられずコンパイラ型言語の2〜3倍は遅くなりますし、
(2)の場合は1命令実行するのに命令を読み込んで比較してジャンプして、
とCPUがアナログ回路上で並列処理してる計算を逐次的に実行するのでかなり重くなります。
286: 2015/09/22(火)13:12 ID:f7gaXzgp(1) AAS
比較にならない
スクリプトは柔軟性重視なので速度を出すためのチューニングは後回しにされる
起動時にある程度最適化できるものもあるが、
最適化のために数十秒〜数分かけたりもできない
また実行直前にならないと決まらない内容も多く無駄になってしまう
そもそもコンパイラ型で速度重視のソフトを作る場合は
開発者自身やライブラリがメモリレイアウトなど制御し効率を考慮したコードを書く(書ける)
287(1): 2015/09/25(金)18:30 ID:TpmuUHaP(1) AAS
自分でC言語っぽいスクリプト言語とかデータ形式作ってみたけど、どうだろ?
ちなみにスクリプト言語はSC3_Compilerってのに入ってるが。
外部リンク:osdn.jp
288: 2015/09/26(土)01:18 ID:4Rxec7m6(1) AAS
>>283
「スクリプト言語」の定義は難しいが、おおむね
(1)(ユーザーから見て)明示的なコンパイルというフェーズを経ずに実行される
(2)変数に型がない
(3)実行時に行える処理の柔軟性が高い(例えば関数定義など)
という特徴を持つ言語を指すことが多いだろう。RubyやPythonなど
で、それぞれの特徴が、実行速度を遅くすることに貢献する。
(1)→ 最適化に時間を割けない
(2)→ 実行時に、変数が指すオブジェクトの種類を調べる処理が毎回入る。
(3)→ これを実現するためにバイトコードインタプリタで実装されることが多く、遅くなる
もちろん厳密な定義ではないので、あくまで「おおむね」という話。
Javascriptみたいな変態事例もあるし断定的なことは何も言えない
言葉の定義の論争は不毛
289: 2015/09/26(土)11:28 ID:GpPO3Mdd(1) AAS
>>287
(一切実行せずに)サラッと眺めた感じだと
字句解析くらい生成系やライブラリ(flex++やboost::spirit等)に頼ってみたらどうかなってのはあるかな。
変数名としてnCount(整数,カウント)の代わりにixArg(添字,引数)を使うとか
細かいところは幾つかあるかも知れんけど、それなりに読みやすいと思うよ。
stdafx.cppって名前で使ってることは察したけど、VS使うんなら
プロジェクト開くのに必要なファイル(.sln等)を入れるとか、
或いはMinGW/Cygwin/msys2なんかのUnix系ツールでさくっとビルドできるようにcmakeを書くとかしておくと
評価する人が増えると思うよ。
290(1): 2015/10/04(日)21:40 ID:Qeh3kLaJ(1) AAS
おれバカで不勉強だから知らなかったえけど、最近の処理系って状態コードのお持ち帰りをしてくれるんだね
手続きAを呼んだ直後にグローバルな状態変数に何がしかの情報が入ってる(何も起きなかったとか、フックして停止させるの推奨みたいな)
面白いな〜
データを加工して返すー>関数(関数内で処理のフローに関係する記述は禁止)
処理のフローに関係するー>手続き(状態コードを標準で返す)
複数個所使うで同じ様な処理をまとめるー>サブルーチン(スタックフレームの無いローカルな手続き)
プログラムを組み上げるときの構造や構成に行儀のよい作法がないと
プログラムのどの時点でどのデータがどの構成や状態にあるのか把握ができなくて発狂するww
で、なんでも記述できる自由度の高い処理系ほど読解困難な発狂プログラムが出来上がると
291: 2015/10/05(月)23:32 ID:F9TK8Py4(1) AAS
>>290
状態コードのお持ち帰りって何?
292: 2015/10/06(火)02:07 ID:mXRqVUnf(1) AAS
何を言ってるのかさっぱりワカラン…
293: 2015/10/06(火)02:50 ID:rErEEAIK(1) AAS
クロージャのことかな・・・
最初Smalltalkやlispの環境のことかと思ったけど
294: 2015/10/06(火)10:51 ID:SQrzN3D5(1) AAS
coroutineだったりして?
295: 2015/10/06(火)13:56 ID:6X8NqiS5(1) AAS
継続じゃないの
俺は気持ち悪いとしか思わんけど
296: 2015/10/06(火)14:17 ID:ztjfyQaD(1) AAS
なんでも記述できる自由度の高い言語ほど……
297: 2015/10/06(火)22:40 ID:KmJ2byjS(1) AAS
(PEEK/POKEで)なんでも記述できる自由度の高いBASIC言語はいかがですかー
298: 2015/10/07(水)11:46 ID:YlJ45J+b(1) AAS
文字通りステートコードの事じゃね?
Unixが何十年も前に確立してるけど
# make && make install
299(1): 2015/10/11(日)09:14 ID:yW9ExgL4(1) AAS
なんか意味不明なこと書いてすいません
ステートコードで正しいと思います。
バカ正直に戻り値だけと思い込んでいたので
さっき、vs2013のc++起動して、構成プロパティでx64とアセンブラコードの出力に設定して
c++の入門書を買うか悩むこと5分
lispの実装でググって15分
考えるのやめて現実逃避中orz
一番自由度の高いのはアセンブラ(当たり前だけど)
ただし、全て自己責任(自由度が高い=自己責任ですよ〜)
なんか、適当なスクリプト言語が作れないかなと
300(1): 2015/10/11(日)16:02 ID:e7nwHPrn(1) AAS
>>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等)なのか。
301: 2015/10/12(月)16:27 ID:xsIpokn9(1) AAS
>>300
丁寧な指摘ありがとうございます。
実際にVS2013をインストールしc++の入門を開いてブレイクポイントーデバッグーアセンブラの表示までたどりつきました
実際のアセンブラのコードを見て少し頭を抱えたしだいです
int a,b,c;
a=1; b=a/2*2;
たったこれだけのコードのアセンブラ出力も、符号拡張命令後の処理の意味が汲み取れませんでした
取り合えず高度な目標はありません
NanaTerryなるアイデアプロセッサを使ってみたらとても使い心地が良かったので
これをシンプルな機能に絞って実装する、そんなプログラムやアイデアを綴るTEXTを扱うtoolを
作りだす為の仕様に絞って色々検討しています。
低機能なlispっぽいなにかになる予定
最近はcコンパイラの実装まで大学のカリキュラムにあると聞いたので凄く刺激を受けました
実際c++の入門などを読んでも言語の仕様に何等かの違和感があるのです
302: 2015/10/12(月)18:59 ID:ATBGiUj9(1) AAS
こいつ覚えたての言葉を使いたいだけのワナビーだろ
おそらくスレ違いなのにも気づいてないし相手すること無いぞ
303: 2015/10/12(月)19:02 ID:qifYD3R8(1) AAS
パラドックスが始まった
304(1): 2015/12/09(水)21:43 ID:yqcBT5mk(1) AAS
CでCを作るのと、アセンブラ使ってCコンパイラを作るのと、
どっちが良いかな?
305: 2015/12/09(水)23:21 ID:0CTdrHjr(1) AAS
CでCを作る時間をCでXを作る時間に充てるのが良い
306(1): 2015/12/10(木)03:57 ID:zEe7T/5S(1/2) AAS
>>1
デュエル・マスターズ Android版 ,i-OS版、公式 外部リンク:dm.takaratomy.co.jp
デュエル・マスターズ対戦CGI ex
外部リンク[html]:web.archive.org
デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a
外部リンク[sak]:web.archive.org ura.ne.jp/hsp.html
ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
外部リンク:web.archive.org
「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
外部リンク[html]:web.archive.org
遊戯王 Automatic Dueling System
外部リンク[html]:web.archive.org
遊戯王 デュエル・オンライン
外部リンク[html]:web.archive.org
外部リンク:web.archive.org
WIXOSS WEBXOSS 外部リンク[html]:webxoss.com 外部リンク:webxoss.com
BG(ボードゲーム)Engine 外部リンク:web.archive.org
外部リンク:web.archive.org
アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 外部リンク[html]:homepage1.nifty.com
外部リンク[html]:web.archive.org
307: 2015/12/10(木)04:01 ID:zEe7T/5S(2/2) AAS
【 オンラインTCGエディター 】 >>1>>306
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。
↑
下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。
さ〜て、インド人ベンダーと日本人の翻訳兼PGを見つけよっと!ww
2chスレ:entrance2
308: 2015/12/21(月)02:59 ID:4Mx5VRPH(1) AAS
>>304
BCPLとかCの生まれをもう一度考えてみると良いんじゃ無いかな?
凸記法で言語の生成を僕が読んだのはBit別冊の何かに書かれていたPlan言語の解説だったけど、ああいう記法って今は使わないのかな?
↑ある言語を生成するのに必要な言語処理系を凸と凹で組み合わせて表記してある奴なんだけど、アカデミックな世界でなんて言う方法かしらないのでこう書いてます。
309(2): 2015/12/21(月)21:20 ID:6WzMDceb(1) AAS
乱数の発生のさせ方は、クロックを利用するものだけかな?
色々ありそうだけど、調べても良くはわからなかった。
310(1): 2015/12/22(火)01:30 ID:P1DQx2Lt(1/2) AAS
時刻ではなく、プログラムを起動してから経過した時間を取得できます。それを種にする
311(2): 2015/12/22(火)01:34 ID:P1DQx2Lt(2/2) AAS
GetTickCount function
システムが起動してから経過したミリ秒を取得
Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days.
外部リンク[aspx]:msdn.microsoft.com
312: 2015/12/22(火)14:10 ID:dkSLpih8(1/2) AAS
>>309
seedを何にするかって話?
/dev/randomとか
313: 2015/12/22(火)14:11 ID:dkSLpih8(2/2) AAS
>>310
>>311
プログラムやシステムの起動直後に実行するコード、プログラムではほぼ似た値を使うことになってしまう。
上下前次1-新書関写板覧索設栞歴
あと 336 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.021s