15/08/24 08:19:25.57 jJXNOMmM.net
clojureのdefmultiみたいな奴じゃないの?
263:デフォルトの名無しさん
15/08/24 11:49:46.23 BYoao/vR.net
多重ディスパッチのニッチな要求に応えるものか
それとも単純な動的バインディングだけの問題なのか
264:デフォルトの名無しさん
15/08/26 18:36:02.43 XR0u/yGZ.net
マルチメソッドはC++相談室を検索すればなんなのかがわかる
265:片山博文MZ ◆T6xkBnTXz7B0
15/08/30 17:45:45.69 bYlp1Mb/.net
>>249
パターンマッチを効率よく行う
266:デフォルトの名無しさん
15/08/30 19:15:42.50 nhXJHOe7.net
型を連想配列やトライ木で管理すればO(1)
267:デフォルトの名無しさん
15/08/30 20:08:17.93 brcjELIg.net
>>259
clojureはソレだね
268:デフォルトの名無しさん
15/09/17 12:38:19.48 mHCGeegj.net
中間言語の設計に関するノウハウとかアンチパターンとかが書かれた本誰か知ってる?
LLVMとかP-codeとかJava VMとか、あるいはKnuthのMIX/MMIXみたいな機械語に近いレベルの言語を
ソフトウェア実装すること前提に設計する場合について知りたい。
今言語設計してて、そろそろ構文解析できそうだから学んでおきたいんだけど。
269:デフォルトの名無しさん
15/09/17 19:56:34.99 7ftMaB4B.net
最初はネイティブに落とした方がいいぞ
中間言語とか遠回りしてたらアホみたいだぞ
270:デフォルトの名無しさん
15/09/18 15:07:01.58 QAQ6VXx0.net
そんな物他人に教わるくらいならおとなしく既存のを使っとけ
271:デフォルトの名無しさん
15/09/18 20:35:24.73 F4ynHS7Z.net
本として出して需要あるか?もしかしたらサーベイ論文なら探せばあるかも
272:261
15/09/18 21:16:12.07 ArWsl8Ey.net
>>262
素直にコンパイル出来ない言語を設計してるので(clispのような)、snippetの表現をx86/amd64表記にする意義が薄いんですよね。
>>263
凝り性なもので。
>>264
一応ciniiは一通り眺めたけど、中間言語の設計に関する論文って無いんですよね。
素直に
273:「中間言語」で調べると自然言語の翻訳に使う方が大量に引っかかってつらい……
274:デフォルトの名無しさん
15/09/18 22:17:11.93 i7DEL3du.net
>>265
動的型付け必須系?
ならErlangの論文とか資料あさるといいかも
275:261
15/09/19 09:19:04.79 YlOPp2hb.net
>>266
swiftのように演算子をユーザー定義出来て、
c++のように同名異引数の関数を定義出来て、
Lispのように引数間のカンマが要らず、
Rubyのようにカッコを省ける
そんな言語を設計中です。
それらの両立のために実行中に文法を書き換えて構文解析器を再構成するという手法を採ってるので、コンパイル出来ないんですよね……
clispのリードマクロを文脈依存に拡張したものだと言えば大体あってるかと。
ちょっとErlang関連の資料を見てみます。
276:デフォルトの名無しさん
15/09/19 10:26:16.30 7hgo9IJ4.net
>>267
列挙してあることはシンタックス上のことで全部コンパイル時に静的に解決出来そうに見えるけど無理なの?
277:デフォルトの名無しさん
15/09/19 11:29:33.20 I9CWDfzW.net
>>267
コンパイル時の都合だよね?
VMの設計とはなんの関係もなさげなんだけど
278:261
15/09/19 12:48:32.00 YlOPp2hb.net
>>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の実装が楽になるので。
279:デフォルトの名無しさん
15/09/19 13:15:38.32 hJISNbn0.net
g 1 2 f 3 4は構文解析後にはどういうツリーになっているの?
フラットなままで構文解析終えて実行時にまたプチ構文解析をするの?
280:261
15/09/19 13:24:30.87 YlOPp2hb.net
>>271
字句解析でばらばらにしてLL(1)でカッコの対応等について解いた背の低い木にして、その後実行時にLR(1)で式毎に再度解析するので
> フラットなままで構文解析終えて実行時にまたプチ構文解析をするの?
これであってます。
281:デフォルトの名無しさん
15/09/19 14:10:09.60 I9CWDfzW.net
おもしろい事かんがえてるなー
ElixirとかBEAM-VMとか参考になるんじゃねぇの?
282:261
15/09/19 15:18:02.65 YlOPp2hb.net
>>273
高信頼・並列分散に特化したVMのようにあちこちで言われてるみたいですね、ErlangのBEAM-VM.
そう考えるとLLVMは解析容易性特化、JVMはVM自体の実装容易性特化といった所でしょうか。
VMを作るなら何かに特化させるべきなような気がしてきました。
283:デフォルトの名無しさん
15/09/20 00:52:44.57 m4tWKm8w.net
演算子に限定する意味は何だろう
cout << (g 1 2 f 3 4) << endl;
こんなの一見して何してるのか判らないしいっそ構文ごと第一級にすればいい
そもそも実行時に構文解析機まで走らせる重い処理系って必要なのかなあ
クロージャじゃあかんのかね
284:デフォルトの名無しさん
15/09/20 09:22:45.62 tHziPwGz.net
この程度のアイデアしかないようじゃ才能ないわな
285:261
15/09/20 11:27:11.87 oZCwg6h7.net
>>275
今作ってる実装だと構文はhead, body, precedence, directionをキーとするオブジェクトの配列になってるので
構文も第一級オブジェクトのインスタンスになっています。
説明不足ですんません。
コードは現在こんな感じ。もし読みたければどうぞ。
URLリンク(gist.github.com)
debug-printが多かったりコメントが少なかったりしますが……
> そもそも実行時に構文解析機まで走らせる重い処理系って必要なのかなあ
必要性については私にはまだ分かりませんが、
私は昔レキシカルスコープもクロージャもポインタも継続もマクロも無い素晴らしく酷い言語(古いBASIC)で全てを考えていたので、
その経験から、どんな機能も使い慣れると必要になってくると思っています。
>>276
私馬鹿なもんで。
いいアイデアがあったら是非とも実現してくだされ。
286:デフォルトの名無しさん
15/09/20 11:30:35.69 O6Xw3ijC.net
>>275-276
俺にも意味があるようには見えないけど、俺の知らない用途があるのかもしれない
とにかくわからないならスルーしとけよ
287:デフォルトの名無しさん
15/09/20 18:18:01.68 tHziPwGz.net
>>277
絶対真似しないと約束するなら教えてもいいぞ
288:261
15/09/20 18:52:58.39 oZCwg6h7.net
>>279
じゃぁ真似せずに似たようなものを考えつくまで考え抜きます。
私馬鹿なので。
289:デフォルトの名無しさん
15/09/20 20:15:16.31 9UpT3677.net
>>274
BEAMは引数のMatchで分ける処理がVMにあるんでそういう意味でオモシロイコト -> BEAM参考になるんじゃねぇのって話です
290:261
15/09/20 21:59:23.12 oZCwg6h7.net
>>281
調べてみました。
BEAMだと実行時にモジュール名、関数名、及び引数の数を指定して呼び出す関数を同定するんですね。
実引数の数がコンパイル時には分かるから命令語に引数の数を組み込めるのだと思いますが……
今考えてる言語だと、実引数の数が自明じゃないので使いにくい気がします。
助言、ありがとうございます。
291:デフォルトの名無しさん
15/09/21 19:55:02.85 x6IKJHaI.net
スクリプト型の言語って実行時にコンパイル(構文解析?)が発生するから、コンパイル型の言語より遅いのですよね。
では、アプリケーションの起動時にスクリプトを読み込んだ後のパフォーマンスは、スクリプト型もコンパイル型も大差ないのでしょうか?
292:デフォルトの名無しさん
15/09/21 20:31:03.01 XzxcjOEi.net
大差あります
293:デフォルトの名無しさん
15/09/21 21:42:55.66 LoRahTLC.net
>>283
「スクリプト型の言語」やら「コンパイル」やらが何を意味してるのかにも依りますが、
よくある速度重視の構成だと、読み込み時に構文解析や意味解析、中間コード生成を終わらせて
実行時に中間コードを(1)実行可能バイナリに変換するパターンと、(2)仮想マシン上でエミュレートするパターンとの二通りがあります。
(1)の場合は変換処理そのものがそれなりに重く、
しかも高度な最適化を掛けるとそれ自体に時間が掛かってしまうので
最適化は殆ど掛けられずコンパイラ型言語の2~3倍は遅くなりますし、
(2)の場合は1命令実行するのに命令を読み込んで比較してジャンプして、
とCPUがアナログ回路上で並列処理してる計算を逐次的に実行するのでかなり重くなります。
294:デフォルトの名無しさん
15/09/22 13:12:55.44 f7gaXzgp.net
比較にならない
スクリプトは柔軟性重視なので速度を出すためのチューニングは後回しにされる
起動時にある程度最適化できるものもあるが、
最適化のために数十秒~数分かけたりもできない
また実行直前にならないと決まらない内容も多く無駄になってしまう
そもそもコンパイラ型で速度重視のソフトを作る場合は
開発者自身やライブラリがメモリレイアウトなど制御し効率を考慮したコードを書く(書ける)
295:デフォルトの名無しさん
15/09/25 18:30:15.12 TpmuUHaP.net
自分でC言語っぽいスクリプト言語とかデータ形式作ってみたけど、どうだろ?
ちなみにスクリプト言語はSC3_Compilerってのに入ってるが。
URLリンク(osdn.jp)
296:デフォルトの名無しさん
15/09/26 01:18:18.90 4Rxec7m6.net
>>283
「スクリプト言語」の定義は難しいが、おおむね
(1)(ユーザーから見て)明示的なコンパイルというフェーズを経ずに実行される
(2)変数に型がない
(3)実行時に行える処理の柔軟性が高い(例えば関数定義など)
という特徴を持つ言語を指すことが多いだろう。RubyやPythonなど
で、それぞれの特徴が、実行速度を遅くすることに貢献する。
(1)→ 最適化に時間を割けない
(2)→ 実行時に、変数が指すオブジェクトの種類を調べる処理が毎回入る。
(3)→ これを実現するためにバイトコードインタプリタで実装されることが多く、遅くなる
もちろん厳密な定義ではないので、あくまで「おおむね」という話。
Javascriptみたいな変態事例もあるし断定的なことは何も言えない
言葉の定義の論争は不毛
297:デフォルトの名無しさん
15/09/26 11:28:42.59 GpPO3Mdd.net
>>287
(一切実行せずに)サラッと眺めた感じだと
字句解析くらい生成系やライブラリ(flex++やboost::spirit等)に頼ってみたらどうかなってのはあるかな。
変数名としてnCount(整数,カウント)の代わりにixArg(添字,引数)を使うとか
細かいところは幾つかあるかも知れんけど、それなりに読みやすいと思うよ。
stdafx.cppって名前で使ってることは察したけど、VS使うんなら
プロジェクト開くのに必要なファイル(.sln等)を入れるとか、
或いはMinGW/Cygwin/msys2なんかのUnix系ツールでさくっとビルドできるようにcmakeを書くとかしておくと
評価する人が増えると思うよ。
298:デフォルトの名無しさん
15/10/04 21:40:28.41 Qeh3kLaJ.net
おれバカで不勉強だから知らなかったえけど、最近の処理系って状態コードのお持ち帰りをしてくれるんだね
手続きAを呼んだ直後にグローバルな状態変数に何がしかの情報が入ってる(何も起きなかったとか、フックして停止させるの推奨みたいな)
面白いな~
データを加工して返すー>関数(関数内で処理のフローに関係する記述は禁止)
処理のフローに関係するー>手続き(状態コードを標準で返す)
複数個所使うで同じ様な処理をまとめるー>サブルーチン(スタックフレームの無いローカルな手続き)
プログラムを組み上げるときの構造や構成に行儀のよい作法がないと
プログラムのどの時点でどのデータがどの構成や状態にあるのか把握ができなくて発狂するww
で、なんでも記述できる自由度の高い処理系ほど読解困難な発狂プログラムが出来上がると
299:デフォルトの名無しさん
15/10/05 23:32:01.45 F9TK8Py4.net
>>290
状態コードのお持ち帰りって何?
300:デフォルトの名無しさん
15/10/06 02:07:01.38 mXRqVUnf.net
何を言ってるのかさっぱりワカラン…
301:デフォルトの名無しさん
15/10/06 02:50:21.48 rErEEAIK.net
クロージャのことかな・・・
最初Smalltalkやlispの環境のことかと思ったけど
302:デフォルトの名無しさん
15/10/06 10:51:51.85 SQrzN3D5.net
coroutineだったりして?
303:デフォルトの名無しさん
15/10/06 13:56:11.40 6X8NqiS5.net
継続じゃないの
俺は気持ち悪いとしか思わんけど
304:デフォルトの名無しさん
15/10/06 14:17:39.64 ztjfyQaD.net
なんでも記述できる自由度の高い言語ほど……
305:デフォルトの名無しさん
15/10/06 22:40:32.31 KmJ2byjS.net
(PEEK/POKEで)なんでも記述できる自由度の高いBASIC言語はいかがですかー
306:デフォルトの名無しさん
15/10/07 11:46:38.15 YlJ45J+b.net
文字通りステートコードの事じゃね?
Unixが何十年も前に確立してるけど
# make && make install
307:デフォルトの名無しさん
15/10/11 09:14:44.03 yW9ExgL4.net
なんか意味不明なこと書いてすいません
ステートコードで正しいと思います。
バカ正直に戻り値だけと思い込んでいたので
さっき、vs2013のc++起動して、構成プロパティでx64とアセンブラコードの出力に設定して
c++の入門書を買うか悩むこと5分
lispの実装でググって15分
考えるのやめて現実逃避中orz
一番自由度の高いのはアセンブラ(当たり前だけど)
ただし、全て自己責任(自由度が高い=自己責任ですよ~)
なんか、適当なスクリプト言語が作れないかなと
308:デフォルトの名無しさん
15/10/11 16:02:56.87 e7nwHPrn.net
>>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等)なのか。
309:デフォルトの名無しさん
15/10/12 16:27:55.78 xsIpokn9.net
>>300
丁寧な指摘ありがとうございます。
実際にVS2013をインストールしc++の入門を開いてブレイクポイントーデバッグーアセンブラの表示までたどりつきました
実際のアセンブラのコードを見て少し頭を抱えたしだいです
int a,b,c;
a=1; b=a/2*2;
たったこれだけのコードのアセンブラ出力も、符号拡張命令後の処理の意味が汲み取れませんでした
取り合えず高度な目標はありません
NanaTerryなるアイデアプロセッサを使ってみたらとても使い心地が良かったので
これをシンプルな機能に絞って実装する、そんなプログラムやアイデアを綴るTEXTを扱うtoolを
作りだす為の仕様に絞って色々検討しています。
低機能なlispっぽいなにかになる予定
最近はcコンパイラの実装まで大学のカリキュラムにあると聞いたので凄く刺激を受けました
実際c++の入門などを読んでも言語の仕様に何等かの違和感があるのです
310:デフォルトの名無しさん
15/10/12 18:59:19.08 ATBGiUj9.net
こいつ覚えたての言葉を使いたいだけのワナビーだろ
おそらくスレ違いなのにも気づいてないし相手すること無いぞ
311:デフォルトの名無しさん
15/10/12 19:02:17.18 qifYD3R8.net
パラドックスが始まった
312:デフォルトの名無しさん
15/12/09 21:43:53.38 yqcBT5mk.net
CでCを作るのと、アセンブラ使ってCコンパイラを作るのと、
どっちが良いかな?
313:デフォルトの名無しさん
15/12/09 23:21:35.10 0CTdrHjr.net
CでCを作る時間をCでXを作る時間に充てるのが良い
314:デフォルトの名無しさん
15/12/10 03:57:42.43 zEe7T/5S.net
>>1
デュエル・マスターズ Android版 ,i-OS版、公式 URLリンク(dm.takaratomy.co.jp)
デュエル・マスターズ対戦CGI ex
URLリンク(web.archive.org)URLリンク(www53.atwiki.jp)
デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a
URLリンク(web.archive.org)URLリンク(uhyohyohyo.sak)<)URLリンク(kiimaa.jugem.jp)
「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
URLリンク(web.archive.org)URLリンク(supersolenoid.blog63.fc2.com)
遊戯王 Automatic Dueling System
URLリンク(web.archive.org)URLリンク(www3.atwiki.jp)
遊戯王 デュエル・オンライン
URLリンク(web.archive.org)URLリンク(www31.atwiki.jp)
URLリンク(web.archive.org)URLリンク(do.yugioh-portal.net)
WIXOSS WEBXOSS URLリンク(webxoss.com) URLリンク(webxoss.com)
BG(ボードゲーム)Engine URLリンク(web.archive.org)
URLリンク(web.archive.org)URLリンク(14owl.hateblo.jp)
アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 URLリンク(homepage1.nifty.com)
URLリンク(web.archive.org)URLリンク(homepage1.nifty.com)
315:デフォルトの名無しさん
15/12/10 04:01:27.83 zEe7T/5S.net
【 オンラインTCGエディター 】 >>1,>>306
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持
316:っておりながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。 WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正。 ↓ 機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ-グ用でサーバー稼動。 ↑ 下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。 さ~て、インド人ベンダーと日本人の翻訳兼PGを見つけよっと!ww http://wc2014.2ch.net/test/read.cgi/entrance2/1449623194/-18
317:デフォルトの名無しさん
15/12/21 02:59:48.04 4Mx5VRPH.net
>>304
BCPLとかCの生まれをもう一度考えてみると良いんじゃ無いかな?
凸記法で言語の生成を僕が読んだのはBit別冊の何かに書かれていたPlan言語の解説だったけど、ああいう記法って今は使わないのかな?
↑ある言語を生成するのに必要な言語処理系を凸と凹で組み合わせて表記してある奴なんだけど、アカデミックな世界でなんて言う方法かしらないのでこう書いてます。
318:デフォルトの名無しさん
15/12/21 21:20:55.44 6WzMDceb.net
乱数の発生のさせ方は、クロックを利用するものだけかな?
色々ありそうだけど、調べても良くはわからなかった。
319:デフォルトの名無しさん
15/12/22 01:30:01.23 P1DQx2Lt.net
時刻ではなく、プログラムを起動してから経過した時間を取得できます。それを種にする
320:デフォルトの名無しさん
15/12/22 01:34:09.74 P1DQx2Lt.net
GetTickCount function
システムが起動してから経過したミリ秒を取得
Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days.
URLリンク(msdn.microsoft.com)
321:デフォルトの名無しさん
15/12/22 14:10:11.43 dkSLpih8.net
>>309
see
322:dを何にするかって話? /dev/randomとか
323:デフォルトの名無しさん
15/12/22 14:11:39.64 dkSLpih8.net
>>310
>>311
プログラムやシステムの起動直後に実行するコード、プログラムではほぼ似た値を使うことになってしまう。
324:デフォルトの名無しさん
15/12/22 16:20:29.14 FIUTNb/j.net
>>309
ハードウェアのADコンバータ経由(アナログなノイズジェネレータからADコンバータで拾ってくる奴)で乱数作るとかもあるけど、計算機の乱数は種から一意に求められる様な物が一般的だよ
で種(seed)の値に現在時刻をつかったり、ユーザの挙動(キー入力やマウスの位置)を素にしたりして見かけ上の乱数性を生成しているのが普通。
325:デフォルトの名無しさん
15/12/22 18:18:28.54 qPz15M1W.net
専用ハードがあってもいいかと‥
最近のCPUには載っているそうなんだが
スレリンク(tech板:337番)
326:デフォルトの名無しさん
15/12/22 20:55:17.79 1duNN4a3.net
乱数表をあらかじめ組み込んでおいて、起動からの時間により、順繰り
読んで擬似的に乱数を発生させる方法はありかな?
327:デフォルトの名無しさん
15/12/22 22:21:41.42 HbMu76eU.net
ねーよ
328:デフォルトの名無しさん
15/12/22 22:39:41.89 S5fGjlFA.net
>>316
乱数表に見えるってだけで良いなら擬似乱数列使えばそれで済む話で
わざわざ乱数表全体を組み込む意味がない
329:デフォルトの名無しさん
15/12/23 02:10:18.76 o2v4fYco.net
何でそんなに起動からの時間が好きなんだよw
女官じゃないぞ
330:デフォルトの名無しさん
15/12/23 14:48:59.82 1VnhNGH+.net
大昔の光栄ゲーでは起動時に RETURN を叩いてもらってそのタイミングで乱数初期化してたw
331:デフォルトの名無しさん
15/12/24 23:33:07.59 Uv2klDgG.net
std::random_device
332:デフォルトの名無しさん
15/12/25 21:30:55.13 R/sO38u1.net
ユーザーのマウスの動きを、ミッキー単位で取得して乱数を...と
思ったら、プログラマはマウスを嫌がり、あまり使わないで
tabキー多用する奴も多かったからな。別な手を考えた方が良いかな?
333:デフォルトの名無しさん
15/12/25 22:26:16.56 DXbDvcZw.net
なあ、今時のCPUはランダムデバイス持ってることくらいは知っとこうや
幾らくたばりかけてる爺でも
334:デフォルトの名無しさん
15/12/26 08:32:40.01 CDX6E7Ry.net
なあ、全員が今時のリッチなCPUを使う訳じゃないことくらいは知っとこうや
幾らゆとりのアホでも
335:デフォルトの名無しさん
15/12/26 12:19:14.32 NrOPRYuI.net
CPUを明示して相談しなよ
知らんだけで乱数用のエントロピー生成命令持ってるかもしれんし
IntelならOSがサポートしてなくてもIntel DNRG使えばいい
336:デフォルトの名無しさん
15/12/26 13:31:50.28 4htfJ0fo.net
俺の頭の中のcpu(10MHz)が・・・
337:デフォルトの名無しさん
15/12/26 13:55:58.15 oIXuKyHb.net
リアルタイムで動画処理、画像認識、空間認識、音声認識その他諸々を全部やってのけるのって地味に凄いよな
時間あたりの消費エネルギーも、要求エネルギーが2000kcal~4000kcal/dayとしてもおよそ100W~200Wで非常に効率が良いし
338:デフォルトの名無しさん
15/12/26 20:17:52.51 nC5MMPRS.net
CPUで何でも出来るようになってしまったら、
マの出番はどんどん減ることになりそうだな。
大昔は、足し算と引き算は出来るのに、掛け算と割り算が出来ないのが
当たり前だったからな。30年くらい前のものだとな。
339:デフォルトの名無しさん
15/12/28 10:04:16.17 VJBFmUt0.net
ランダムデバイスに頼るのが良いのか、迷ってしまいそうだな。
こういうのを読んでしまうと...。
URLリンク(cpplover.blogspot.jp)
ハードウェア乱数生成器は信頼できるか
340:デフォルトの名無しさん
15/12/28 10:25:27.73 1a7EtF6d.net
NSAと戦ってる人か
341:デフォルトの名無しさん
15/12/28 12:54:32.70 dgI6+oKo.net
>>329
よくわからんけど生成された値を適当な鍵使って AES 暗号化するんじゃ駄目なの?
342:デフォルトの名無しさん
15/12/28 12:58:36.44 b3qQlUF/.net
OSを作る時の話になってるから適当な鍵をどこから持ってくるか熟慮しないといけない
343:デフォルトの名無しさん
15/12/31 19:14:36.65 shZW63x7.net
一度に数十個の乱数を生成するコードを書き、重複チェックを忘れる俺は、
やはりマには向いていないのかもしれん。コード記述の時点で
重複することが頭から抜けていた。ついうっかり...。
344:デフォルトの名無しさん
16/01/01 03:47:17.29 xJBQ4MUG.net
>>329
自分の方が質が高いのを用意できるわけw
345:デフォルトの名無しさん
16/01/05 10:14:26.10 n8GHd5T0.net
「ハードよりも、俺の方が正確に動く」と、
一度で良いから言ってみたい。
346:デフォルトの名無しさん
16/01/06 02:04:42.23 DSMnLqrW.net
楽するためにプログラミングするのであるが
一向に楽にならず
347:デフォルトの名無しさん
16/01/07 17:58:56.46 3JUqZlZh.net
>>336
顧客が楽になっているだろw
裏でマが血のにじむような努力をしていることを、知る由もないからな。
348:デフォルトの名無しさん
16/01/07 18:29:10.67 E6rodr+5.net
70点じゃなくて55点で妥協すれば
費用が100分の1になるって教えてやれよ
349:デフォルトの名無しさん
16/01/10 10:05:01.35 KKgUy8RE.net
>>338
それは、「バグ入りソフトを出荷する可能性も高くなる」諸刃の剣では?
350:デフォルトの名無しさん
16/01/10 12:22:10.90 a81L0ZQ5.net
妥協するのは仕様でしょ
仕様で無理難題いうの辞めたら
コストも下がるし品質も上がるみたいな
けどスレ違いの話じゃね?
351:デフォルトの名無しさん
16/01/11 20:54:13.20 J50s7Qe5.net
「妥協しないワガママな顧客」に、
「見積もりを二桁足して出したら、予想通り、注文が来なかった」
と言っていたな。最初から断る口実だったのかな。
352:デフォルトの名無しさん
16/01/12 19:46:25.75 7kdSKUGZ.net
>>338
66.66 点くらいで負かりませんか?
353:デフォルトの名無しさん
16/01/13 17:31:32.57 DkyDX7cg.net
>>342
それだと、100万円の費用を85万円に値引くのが限界では?
354:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 20:05:16.26 ds1B8EUq.net
C言語の呼び出し規約に関する文法に
詳しいサイトとかソースとかありますか?
355:デフォルトの名無しさん
16/01/15 22:22:03.06 EuNWEiBo.net
そこで言う呼び出し規約ってのは引数がスタックでどう配置されるかって話?
356:デフォルトの名無しさん
16/01/15 22:31:09.13 +0giQcLD.net
呼び出し規約に関する文法って何ぞ?
357:デフォルトの名無しさん
16/01/15 22:55:08.00 y9x+XKWj.net
C言語のABIは色々あるぞ
基本はcdeclかstdcallだけど
スタック使わずレジスタでやりとりしたり
環境や処理系毎に異なる
358:デフォルトの名無しさん
16/01/16 00:11:40.49 4AnwHYnZ.net
呼び出し規約自体は文法に現れんと思うが
359:デフォルトの名無しさん
16/01/16 01:23:45.39 7+H4Uotl.net
上のcdeclとかstdcall辺りが関数の属性値として付くぐらいじゃないかと
文法的にはこれらは両立しないから複数書いたらエラーとかその程度でしょ
360:デフォルトの名無しさん
16/01/16 01:24:46.12 7+H4Uotl.net
それとgccの__attribute__())構文なんてのもある
括弧
361:の中はもう何でもあり
362:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 12:33:39.48 lRbtk3RI.net
属性について調べればいいのか
ありがとさん
363:デフォルトの名無しさん
16/01/16 12:54:05.36 H0Ul8NcN.net
>>347
独自指定子、pragma指定、
FORTRANのライブラリ呼び出すのあったね
今はextern宣言か
extern "C++"とか
364:デフォルトの名無しさん
16/01/17 14:03:21.22 WTe5Q/ML.net
サポートされる種類は環境依存だし
構文は実装依存だから
規格では書いてない
とりあえず wikipedia 見れば
365:デフォルトの名無しさん
16/01/18 06:53:14.27 TV7ry5Rb.net
>>353
環境依存と実装依存ってどう使い分けてるんだ?
366:デフォルトの名無しさん
16/01/18 08:53:28.44 XM4mBu50.net
>>354
実装であるgccはいろんな環境(プラットフォーム)で動いてる
構文はどの環境でも同じだが
どんな呼び出し規約のライブラリがあるかは
環境ごとに違う
367:デフォルトの名無しさん
16/01/19 11:13:57.61 79hXpIDE.net
新しいコンパイラを作る際、わざわざ「手動でスタックを積み上げたり
開放したりする」命令は、あった方が良いのかな?
メモリ節約や速度に直接、関係するなら言語仕様を作る段階で
考えるけどね。今のパソコンはスピードが速いから、不要といえば不要かも
しれないが。
368:デフォルトの名無しさん
16/01/19 12:41:03.92 uAThxx94.net
そのレベルならインラインアセンブラみたいな
抜け道を作るかどうかって話になるんじゃないの
369:デフォルトの名無しさん
16/01/19 21:16:12.58 j62B2E0v.net
>>356
命令ってどういうこと?
Cのallocaみたいなのを言ってるの
370:デフォルトの名無しさん
16/01/19 23:54:06.44 Xdnj5x+8.net
確保開放やらはSPレジスタをいじるでいいんじゃないかな・・・
SP変更時に無効なSP値だったらエラーにするとかその程度で
コンパイラもよほど変な事しない限りpush/pop命令なんて使わんし
371:デフォルトの名無しさん
16/01/20 12:29:31.81 zFAeGKrq.net
>>356
言語自体の仕様にも依るんじゃないかな。
あと用途とか。
モノリシックカーネルのドライバ書くのに使いますーCとアセンブリの良いとこ取りですーってんなら
手動でスタック積んだり降ろしたりする命令も使うだろうけど
いまいち用途がピンと来ない。
仮にllvm-irの使用を前提にするなら、ネイティブのスタック積んだり下ろしたりするのって意味あんの?っていう議論もありか?
言語仕様を練ってて
シンプルな構文にシンプルな継続(のようなもの)を追加したら
全体的に美しさに欠ける感じになって悩んでる。
372:デフォルトの名無しさん
16/01/22 12:29:02.92 97wZpIfH.net
高級言語の側で、わざわざ、pushやpop命令を言語仕様に入れる必要は
なかったか。メリットも予想ほどないみたいだな。
実行上で、スピードアップになるかと思っていたが。
373:デフォルトの名無しさん
16/01/22 12:55:06.86 8nADuqf6.net
メモリやキャッシュはレジスタよりずっと遅いからなぁ。
レジスタへのアクセスに対してL1キャッシュのアクセスには2〜3倍の時間が掛かるって言われてる。
つまり、レジスタ間mov命令に対してpush/popは1命令あたり2〜3倍遅いって事だ。
C言語のregister修飾子は知ってる?変数がレジスタに乗っかるようにする為の物なんだけど。
グラフ彩色で変数生存期間に対するレジスタの使用を最適化出来る事が知られる以前の産物だから、今は滅多に使われないけどね。
374:片山博文MZ ◆T6xkBnTXz7B0
16/01/22 13:18:42.18 0V0RVdAH.net
バイト列xからバイト列C(x)への変換器Cがあるとき、
Cの逆変換器C^(-1)を求める一般的な方法は何か?
375:デフォルトの名無しさん
16/01/22 20:49:57.23 TW3FacBd.net
>>363
逆アセンブラです。
376:デフォルトの名無しさん
16/01/22 21:58:03.16 bvwDmPF2.net
変換器Cの変換の性質がbijectiveであるという条件をつけなければいけないのではないか。
377:デフォルトの名無しさん
16/01/22 22:13:13.93 9qqofano.net
この方法が分かれば、どんな暗号文も解読できるね!
378:片山博文MZ ◆T6xkBnTXz7B0
16/01/22 22:54:36.97 0V0RVdAH.net
数学板でじっくり考えることにしたよ。
有限数列上の変換について [無断転載禁止]・2ch.net
スレリンク(math板)
379:デフォルトの名無しさん
16/01/23 09:04:11.89 VPAh/uPo.net
変換器が可逆計算できるとは限らないから一般的な方法は無いだろ。
380:デフォルトの名無しさん
16/01/23 15:07:58.00 0d2orZXz.net
メモ化とテーブルルックアップw
381:デフォルトの名無しさん
16/01/31 19:36:30.55 T/RwY0g5.net
多少勉強すると、いまさらながら、Cがアセンブラにかなり近いレベルの
言語であることが、良くわかるな。
その分、マスターするのに時間もかかったが。
382:デフォルトの名無しさん
16/01/31 19:52:06.23 Vno/qq2m.net
C言語をマスターしたって奴は絶対に信用しないことにしている
383:デフォルトの名無しさん
16/01/31 20:53:44.66 7LoAMsY1.net
入門書一冊読みました=マスターしました
384:デフォルトの名無しさん
16/01/31 21:17:31.75 QH+McMgz.net
これが本当のマスターベーション
385:デフォルトの名無しさん
16/02/01 16:11:44.37 aq9Mx2ga.net
そんなあなたにスタンディングマスターオベーション
386:デフォルトの名無しさん
16/02/02 10:57:23.41 9eq1u0GM.net
>>371
「C言語をマスターしました」
という奴の化けの皮をはがすのは、意外に簡単だからな。
簡単な計算機プログラムを書かせるか、あるいは、ピタゴラスの定理の
コードでも書かせるか。もっとも、そこで化けの皮がはがれるようなら、
とてもコンパイラの領域まで、進むことは出来ないだろうな。
387:デフォルトの名無しさん
16/02/02 11:36:11.92 7f7wf/mW.net
コンパイラを書ける最低レベルに達しているかどうかの判定がしたければ
「入力された多項式を微分する関数書くならどう書く?」ってくらいは聞きたいけど。
C言語云々じゃなくてデータ構造とアルゴリズムの問題だけど、
Cでやるならポインタと再帰とラムダ算法について知ってなきゃ答えられない。
388:デフォルトの名無しさん
16/02/02 20:19:50.93 WkrnCzmR.net
>>376
単純な多項式に限定していいなら再帰いらんでしょ
最終的に多項式に変換できる式と言うなら別だけど
389:デフォルトの名無しさん
16/02/02 22:20:22.51 7f7wf/mW.net
>>377
すまん
素で項数無限だったり微分不能な関数が入ってたりしないって意味で多項式って言っとったわ。
log(x^2+8*x)とかsin(kx+wt)とかも多項式(笑)
390:デフォルトの名無しさん
16/02/03 11:44:18.92 tCheJck0.net
面接時「Cを三年ほど仕事で使っていました」
↓
採用後「誰だ。あいつを採用したのは!」
「最低、Cを仕事で三年間使っていること」
を条件に採用した会社で、こんなこともないわけではないからな。
本人の申告ほどあてにならないものはない。コンパイラ作成に到達する
など、夢のまた夢。
391:デフォルトの名無しさん
16/02/03 11:59:22.08 uEOUJl1K.net
他人の突っ込んだバグを直せるのが中級者
自分の突っ込んだバグを直せるのが上級者
それ以外は何の参考にもならない
392:デフォルトの名無しさん
16/02/03 12:36:45.52 Gb259GwX.net
それ以外っつーとどんなバグも直せない奴か
そりゃ確かに考慮に値しないな
393:デフォルトの名無しさん
16/02/03 13:57:01.05 WaqhOfMD.net
まあもともとCはコンパイラを書くには向いてないからな
GADTとかある関数型言語で書くのが一番楽
あとコンパイラが糞になるのは大抵対象言語の糞文法と糞デザインのせい
394:デフォルトの名無しさん
16/02/03 13:57:40.61 WaqhOfMD.net
Rubyがなぜあんな巨大な糞なのかというと(お察しください
395:デフォルトの名無しさん
16/02/03 14:06:49.98 uEOUJl1K.net
実用性を求められそれに応えるごとに汚れていくのさ
ピュアでいられるのはお子様だからさ
396:デフォルトの名無しさん
16/02/03 14:17:35.65 WaqhOfMD.net
残念だがルビーの文法とデザインが腐ってるのは初期からだw
397:デフォルトの名無しさん
16/02/04 01:55:33.07 VXt+BkjY.net
∩___∩ ∩___∩
♪ | ノ ⌒ ⌒ヽハッ __ _,, -ー ,, ハッ / ⌒ ⌒ 丶|
/ (●) (●) ハッ (/ "つ`..,: ハッ (●) (●) 丶 今、どんな気持ち?
| ( _●_) ミ :/ MZうy ::::::i:. ミ (_●_ ) | ねぇ、どんな気持ち?
___ 彡 |∪| ミ :i ─::!,, ミ、 |∪| 、彡____
ヽ___ ヽノ、`\ ヽ.....::::::::: ::::ij(_::● / ヽノ ___/
/ /ヽ < r " .r ミノ~. 〉 /\ 丶
/ /  ̄ :|::| ::::| :::i ゚。  ̄♪ \ 丶
/ / ♪ :|::| ::::| :::|: \ 丶
(_ ⌒丶... :` | ::::| :::|_: /⌒_)
| /ヽ }. :.,' ::( :::} } ヘ /
し )). ::i `.-‐" J´((
ソ トントン Darkなんちゃら… ソ トントン
398:デフォルトの名無しさん
16/02/04 13:25:41.80 +rC6IKS8.net
優れた文法を手本とするには、どの言語が良いんだ?
どれもこれも長所と短所があるし。
399:デフォルトの名無しさん
16/02/04 15:53:27.61 69F/iNHk.net
優れた文法とは。
400:デフォルトの名無しさん
16/02/04 16:18:01.49 ri7+Aiuk.net
5色のうちからユーザーが好みのものを選べるのがいいんじゃないか
401:デフォルトの名無しさん
16/02/04 16:29:33.62 69F/iNHk.net
5色か
Whitespace
H9Q+
brainfuck
Lazy K
INTERCAL
あたりの文法を参考に・・・・・・
402:デフォルトの名無しさん
16/02/05 13:29:53.12 BBqIJr5G.net
フロントエンドとミドルエンドとバックエンドに分けてフロントエンドはユーザーが作れるようにしておけばいいんじゃないのか?
403:デフォルトの名無しさん
16/02/05 20:10:50.78 um7ZPY3u.net
>>388
言語仕様に「整合性がある」言語の事だが。
一長一短だからな。
404:デフォルトの名無しさん
16/02/05 21:49:15.21 hmTKeVMY.net
でもテンプレートの奥深くみたいな訳の分からないエラーメッセージとか無しでな
405:デフォルトの名無しさん
16/02/05 22:53:24.24 AF25xcuE.net
ミドルにエンドは無いと思うんだが、LLVMがそんな呼び方してるのはなんか意図があるんだろうか
406:デフォルトの名無しさん
16/02/06 00:48:13.75 utAdfs60.net
>>392
大概の言語仕様は無矛盾だと(=整合性があると)思うけど。
407:デフォルトの名無しさん
16/02/06 10:06:04.94 XRyA0EjL.net
最強言語(キリッ
でも標準ライブラリも効率的なデバッグの仕組みも考えたことすらありません
408:デフォルトの名無しさん
16/02/06 12:37:09.68 4z0/BkxB.net
そもそも文法がマトモにパーズできるようなものでないと
処理系がバグりまくる(C++や
409:Rubyの惨状を見よ) 静的型を用意するなら型理論に沿ったマトモな型システムでないと 処理系がバグりまくる(C++テンプレートやSwiftの惨状を見よ) オブジェクト指向と関数型の変な折衷をするとこれまた型が アレになって走査パスが増えて処理系が超遅くなる(Scalaの惨状を見よ) 人間が読めて、他のプログラムから容易に生成できて (これは文法が糞だと目も当てられない事になる)、 マトモな言語機能を持った言語以外を作るなと言いたい CやLispより退化してどうするんだ
410:デフォルトの名無しさん
16/02/06 15:40:31.20 lxi6Zpfn.net
手段が目的になってる人はそう思うんだろう
411:デフォルトの名無しさん
16/02/07 11:42:14.16 CwVox+Js.net
かなり昔の事だが、C++のANSI規格作成で、携わっていた委員の一人が、
C++の文法の一部を誤解して覚えていたことが発覚し、周りに苦笑された
事もあったらしいからな。
「言語仕様を作る側」の頭のレベルも念頭に置かないと。
それでなければ整合性には程遠い。
412:デフォルトの名無しさん
16/03/09 17:29:58.75 ISN2ur/+.net
gccですら実装を見送る規格は止めてほしい
CとC++の中間ぐらいの言語が欲しい
プリプロセッサとテンプレートは採用で
413:デフォルトの名無しさん
16/03/14 22:18:27.17 5P+EA/8R.net
名前空間付きC言語程度の言語つくってみようかしらん
特に目的はないけどこれなら作れそうくらいな動機で
414:デフォルトの名無しさん
16/03/15 19:07:41.78 RIoPtDsj.net
>>401
前方参照OKにしてくれ
415:デフォルトの名無しさん
16/03/15 23:33:07.78 8e1lo7mI.net
前方宣言のことだよね?
名前空間のインターフェースみたいなのできたら面白いかも
416:デフォルトの名無しさん
16/03/16 21:23:00.37 ejdJRW9Z.net
いや、多分、前方宣言じゃなく、前方参照のことだろう
417:デフォルトの名無しさん
16/03/17 11:20:18.13 U4keFPtS.net
前方参照でC++でもいまだにエラーとしてる理由って何だっけ
2パスを嫌ってる?
でもC++って何パスもしてる気がするよね
418:デフォルトの名無しさん
16/03/17 11:51:54.16 go3n9QI1.net
Java「クラスの外に宣言書けないようにすればいいのに」
419:デフォルトの名無しさん
16/03/17 19:00:40.54 HqjZona4.net
ヘッダーファイルという糞文化
420:デフォルトの名無しさん
16/03/19 04:08:08.77 YkVYTtmN.net
ポインタは*がなんかダサくて嫌だ
421:デフォルトの名無しさん
16/03/22 01:20:09.95 rf8iBlA4.net
3大OSで動くようにjavaでランタイム書こうと思うんだがポインタないのが不便だね
C言語ソースに変換するほうが楽だと思うけどもう少し粘る
422:片山博文MZ ◆T6xkBnTXz7B0
16/03/22 02:43:19.96 p3cxKPtY.net
LLVMの話はここでいいんだよな?
LLVM+Clangを仮想Ubuntuでビルドしているが、かなり時間が掛かる。
三日間以上か。やはりC++コンパイラを仮想環境でビルドするのは無理があるのか。
実機なら数時間でビルドできるのだろうか。
423:デフォルトの名無しさん
16/03/22 06:20:07.57 2k6rwd23.net
>>409
もうC#でよくね?
424:デフォルトの名無しさん
16/03/22 13:27:29.78 YJW8F40f.net
>>410
仮装マシンの設定間違ってるだけじゃないの?(メモリ配分とかCPU割り当てとか、Networkドライブでコンパイルしちゃったとか)
425:デフォルトの名無しさん
16/03/23 03:14:26.98 o57PmMMS.net
とりあえず関数の外側までパースしつつJVMのバイトコードを勉強してる
helloworldするためのprintln()はどうやって作ればいいのだろう?
426:デフォルトの名無しさん
16/03/23 10:56:44.60 fhNbIMvx.net
>>413
JVM にはI/Oはない。 ネイティブコードのライブラリに投げる。
427:デフォルトの名無しさん
16/03/25 00:41
428::07.93 ID:LUc1dGhA.net
429:デフォルトの名無しさん
16/03/25 06:42:35.83 IRDGuB0e.net
その組み込み関数=ネイティブコードのライブラリなんでは・・・
430:デフォルトの名無しさん
16/03/26 08:43:48.51 drxQ1xsy.net
何がしたいのか分からん
JVM を呼ぶフロントエンドとグルーを作るだけなんでしょ
431:デフォルトの名無しさん
16/03/31 23:33:53.46 m6GiZo6g.net
業務ソフト開発用のコンパイラと、ゲーム開発用のコンパイラは、
当然、分けて考えないとダメだよな?
432:デフォルトの名無しさん
16/04/01 03:11:11.66 38psm3gC.net
>>418
だめとは何が?
成果物によっては業務だと下手すると死人が出る
ゲームだと下手するとクレームで会社が倒産する
でもその成果物はコンパイラ以外にも色んな工程を経て作られたものだから
最終的にコンパイラが原因だったとしてもコンパイラやその開発者が追及を受ける謂れはない
例えばキミの作ったゴミコンパイラで死人が出たとして責任とれますか?
433:デフォルトの名無しさん
16/04/01 12:33:03.11 EVZZ0pNr.net
そのときは体で詫びます
434:デフォルトの名無しさん
16/04/01 13:14:37.42 TsVr6Gke.net
業務なら信頼性と生産性重視
ゲームなら実行時の性能重視 欲を言えばGPUのデバッグしやすければ勝つる
つうか強みをわかりやすくバーンと出して後は選んでもらうだけだべ
435:デフォルトの名無しさん
16/04/02 11:20:43.68 5nWyUO1B.net
30年以上前に出た、ゲームセンターにあるゲームは、
意外にバグを多く含んでいたんだよな。それを承知で、
みんな遊んでいたから。コンパイラのせいには出来ないだろうが。
初期のナムコ製品なんて、バグ発見と、それを悪用した点数稼ぎが
やたら多かった。
436:デフォルトの名無しさん
16/04/02 12:06:49.67 pO9IxWzb.net
支障のあるバグだけど修正困難なので放置されていた
というのが正しい
ゲーセンのインカムに影響するようなバグは回収されるはず
数年前にサ○ラ大戦のパチのバグで回収になって
50億の損害が出たとかあったな
437:デフォルトの名無しさん
16/04/02 12:24:29.40 k2fP1WMZ.net
>>422
その頃のアーケードゲームはコンパイラつかってないだろ、8ビットでz80、良くて6809の時代でコンパイラはi8080向けの LSI-Cが出たか出ないかの時代だぞ
>>423
サクラ大戦ってそんなに売上げあったん?
438:デフォルトの名無しさん
16/04/02 19:15:30.37 P1i243h5.net
>>424
> サクラ大戦ってそんなに売上げあったん?
ゲームじゃなくてこう言う話でしょ
URLリンク(slosoku.com)
439:デフォルトの名無しさん
16/04/02 22:12:51.38 k2fP1WMZ.net
>>425
パチスロかパチンコなのね
440:デフォルトの名無しさん
16/04/03 02:39:40.29 iadWYSqN.net
千円の物が百万個売れると10億なので
ゲームの方も50億くらいはあるんじゃないの
441:デフォルトの名無しさん
16/04/03 21:47:29.31 2hoiGC6I.net
その昔、ナムコのゲーム開発部隊では、OSを作っていたのが二人いたそうだ。
苦心惨憺の末、ギャラガというゲームを作ったライトサイドプログラマー
の大森田氏。一方、ダークサイドプログラマーとして名高い島岡弘氏。
今ではコンパイラ作りの情報はありふれているが、やはり、当時としては
相当凄かったらしく、一目置かれていたとか。
今だと、コンパイラ作るだけでは、誰も誉めてくれないからな。
中身を見るまでは、お褒めの言葉にも預かれない。
442:片山博文MZ ◆T6xkBnTXz7B0
16/04/03 21:57:18.40 YoKWiOlG.net
ヘイジャックども、英語の重要な技術文書をどんどん翻訳して
WikiBookやGitHubに上げていこっぜ、ベイベー。
443:デフォルトの名無しさん
16/04/04 01:03:07.07 DatNOwTQ.net
>>429
MSの技術解説部分も、昔は翻訳するのに制限がかかっていなかったか?
そのためにVC++を使いこなすために英文マニュアルとの格闘に
なって苦労したぜ。C++特有のわかりづらさと、英文マニュアルと、
初めて使う統合開発環境に戸惑い、ドえらく時間がかかった経験が...。
444:片山博文MZ ◆T6xkBnTXz7B0
16/04/04 08:31:57.12 P4S1l6wk.net
>>430
翻訳権ってMSDNにもあるんかいな。
いい加減、日本の著作権法にもフェアユースを
明記してほしいよな。
445:デフォルトの名無しさん
16/04/04 16:51:18.37 nzuN3Nfl.net
MindのUnicodeとか版コンパイラ作りたい
446:デフォルトの名無しさん
16/04/04 21:22:22.97 DatNOwTQ.net
VC++のWindowsAPIの説明がわかりづらかったので、Delphiを使い始め
たら、同じく日本語化がまったくされておらず、詳しい人に聞いたら、
「翻訳してはならない」と聞かされて唖然としたよw
今では、遠い昔の話だが。
447:デフォルトの名無しさん
16/04/06 23:25:48.22 WLNAeUhL.net
やっと関数の外側をパースできたわ
448:デフォルトの名無しさん
16/04/09 04:04:13.10 NXdWBRID.net
「豊富なライブラリやツール群を用意した、高額のコンパイラ」と、
「格安のコンパイラだが、別売オプションのライブラリも用意しないと、
たいしたソフトは作れない」ものでは、商売上、どちらが賢いだろうか?
449:デフォルトの名無しさん
16/04/09 04:51:56.27 u1ofpue+.net
どっちも無理
450:デフォルトの名無しさん
16/04/09 07:04:44.02 FoBfIIvs.net
頭いい大学行くとコンパイラ理論とか習えたのかな?
独学してるけどさ、あらゆる犠牲を払わなきゃ理解、応用するまでいかなくない?
451:デフォルトの名無しさん
16/04/09 09:51:43.80 VHmuSaPj.net
京大はCコンパイラを全員に書かせるって聞いた
452:デフォルトの名無しさん
16/04/09 10:55:12.53 yIzAT5uL.net
コンパイラを自作するのは意味があるけど
Cが引きずるクソ設計を知ったら二度とC/C++をつかわなくなるはず
453:デフォルトの名無しさん
16/04/09 16:46:46.79 NknyIt7s.net
PascalのコードをCのコードに変換するプログラムを作れとかいう
何も考えずに出題されたとしか考えられない課題にはマジで困った
まず、関数内関数とかCに無いですしお寿司
適当な名前付けてグローバルに放り出すとしても
それだけではローカル変数のキャプチャが出来ないから
どうすんだこれ?って感じで、まぁ引数で渡すしかないんだけど
課題提出までの時間も全然足りてないし、誰も出来なかった
454:デフォルトの名無しさん
16/04/09 17:17:55.52 yIzAT5uL.net
>>440
しかるべきところにぶち上げて資質を問うべき
455:デフォルトの名無しさん
16/04/09 17:43:08.14 YNau7unG.net
ローカル変数は参照渡しすればいいだけじゃね?
456:デフォルトの名無しさん
16/04/09 21:34:08.79 YC7vrxdl.net
>>440
要するに p2c 作れってことだろ
パクれとは言わんけどコード参考にすればいいだけ
457:デフォルトの名無しさん
16/04/10 02:18:39.46 tVvAXki7.net
>>440
それ何日でやれと言われたんだ? 不可能では無いけど課題と言うにはレベル高すぎてビックリ
458:デフォルトの名無しさん
16/04/10 03:55:26.52 DcOaBboz.net
昔の事でよく覚えてないが、一か月ぐらいじゃなかったかね、良くわからんが
笑えるのが、その�
459:\フトを作ること自体は前座でしかなく その後、作ったソフトを持ち寄って、レビューか何かをするのが本題の講義であって ソフトは皆で議論をする上での、ほんの話題のための「種」にすぎないってのがね よくあるじゃない、プロジェクトマネンジメントとかコードレビューとかの ちょっと実際のプロジェクトを模範した感じの、実戦風のワイワイガヤガヤ系の講義 あんな感じのやつだった これがコンパイラの講義の課題ならまだわかるんだけどねぇ どちらにせよ、プログラミング覚えたての学部生には酷な課題 二年生でC習って、三年生でいきなりこれ作れって、そりゃ無理ですって 普通にPascalのインタプリタ作るのだって、実力的にまだ厳しいのに そこからさらにCに変換しろだなんて いくつかのチームに分かれていて、チームごとに与えられる課題は違っていたんだけど 俺は最も簡単な課題が当たったから何でもなかったけど
460:デフォルトの名無しさん
16/04/10 09:23:24.83 fTRAmtFw.net
関数内関数ってトランスレーター的には別に難しくないだろ
3日もあればできるんじゃね
461:デフォルトの名無しさん
16/04/10 09:34:58.78 372ncJJS.net
>>440 > マジで困った
>>445 > 何でもなかったけど
痴呆症乙
462:デフォルトの名無しさん
16/04/10 10:26:51.59 hSypwT6Y.net
誰も提出できなかったけど本題じゃないから授業は進んだってことだろ
463:デフォルトの名無しさん
16/04/10 11:06:35.40 jQD3kWDp.net
ただのホラフキ―じゃん
464:デフォルトの名無しさん
16/04/11 11:50:30.22 3nONGRtl.net
大昔のMacはpascalでの開発を前提にしていたからな。
(Macツールボックスは、Pascalで呼び出しを前提にしていた)
途中からはCやC++用にツールは変貌していったが。
465:デフォルトの名無しさん
16/04/11 17:10:55.05 suuESVM3.net
>>450
なつかしすぎるなぁ、light speed Cとか買ったとき「ああ、これでCで書ける」などと感動したわ
466:デフォルトの名無しさん
16/04/11 18:25:37.58 8c5Uimxv.net
C言語より動的型付け言語の方が先に広まってたって意外だなあ
467:デフォルトの名無しさん
16/04/12 02:21:49.83 0eQ6kuw9.net
AppleのMPW。あるいはハイパーカード。
Think Cや、Code Warriorなど、一時は、Macで夢のようなソフト作りに
あこがれた時期もあった。でも、遠い昔の話だ。
468:デフォルトの名無しさん
16/04/12 09:22:22.73 Pd8H+utR.net
静的型付けのほうが高度なんだよ
469:デフォルトの名無しさん
16/04/13 01:10:21.79 inw4nZY2.net
俺もアセンブラ→静的型→動的型の順で作られてきたと思ってたけど
ジョブスの伝記漫画でウォズがアセンブラでBasic作る話があったような気がする
470:デフォルトの名無しさん
16/04/13 01:14:40.21 rXMD6+sH.net
基本文字列だけでいいんだよ
型なんて文字列をどう解釈するかの話だよ
471:デフォルトの名無しさん
16/04/13 01:23:46.16 2h1lI58Z.net
>>455
しらないのか?Microsoft
472:デフォルトの名無しさん
16/04/13 13:34:00.12 a0UNLavD.net
もっとも愛着のあるコンパイラは、Quick BASICだった。
遠い昔の話。でも、凄く使いやすかったんだよな。
473:デフォルトの名無しさん
16/04/13 17:57:30.26 V3wVZgaP.net
コンパイラの初心者本?
「Tiny BasicをCで書く」
出版社: ソシム (2016/4/22)
ISBN-10: 4802610203
ISBN-13: 978-4802610209
474:デフォルトの名無しさん
16/04/14 00:25:42.75 Nyx2HJFW.net
関数の先頭にfunctionキーワードを付けるとして長すぎるから変えようと思うんだけど
doとかjobではおかしいかなあ?
475:デフォルトの名無しさん
16/04/14 01:10:11.46 FsF2j7W4.net
>>460
fnじゃだめなん?
Clojureだと(fn [arg] brabrabra)な感じ
476:デフォルトの名無しさん
16/04/14 01:29:14.13 Nyx2HJFW.net
>>461
rustのfunc, iface, modとかもそうだけど省略形はいまいちだなと思う
rubyにfor() do {}構文があるんだけど、それで関数やラムダ式の記号に
do良さげかなと思うんだけどどうかな?
477:Office & Gamers @ 試験運用中(トリなしw
16/04/14 02:42:08.95 co1HctEv.net
コンパイラの醍醐味は式の展開だから、ここを自分で書ければあとはそれほど難しくないw
478:デフォルトの名無しさん
16/04/14 08:30:10.02 BY7gxQ6D.net
define ならわかるが do はないだろう
479:デフォルトの名無しさん
16/04/14 09:12:23.12 d9D6y2bX.net
dogazer
480:デフォルトの名無しさん
16/04/14 09:35:38.15 HeHUqy+f.net
関数も変数もletで
481:デフォルトの名無しさん
16/04/14 12:27:04.84 kJxBjGsl.net
予約語テーブルに何を入れるかが難しい。
何でも詰め込みすぎると、肥大化しすぎたC++になってしまうし。
482:デフォルトの名無しさん
16/04/14 18:04:51.72 FsF2j7W4.net
>>462
そうかなぁ?
一般名詞や動詞とかぶりそうも無い省略形ってコンピュータ言語には向いているとおもうのだ。
defunとかdefnとか
無名関数作るのにはUnicode圏が一般化した今ならλ一文字とか
483:デフォルトの名無しさん
16/04/14 20:06:31.03 VC8/A0Ig.net
略語もセンスがいるよな
ところで、defunって何の略?
どうでも良いけどλなんか変換しなきゃ出てこないし入力速度最悪だな
484:デフォルトの名無しさん
16/04/14 20:21:19.82 gC/abIq/.net
>>469
> defunって何の略?
DEfine FUNction じゃね?
485:デフォルトの名無しさん
16/04/14 20:43:14.68 FsF2j7W4.net
>>469
>>470氏が書いているけどdefine functionの略だよ、common lispとかemacs lispとかでつかわれてる
λ自体は”lambda”をテキストエディタ側で差し替えるとか一文字入力のマクロをバインドすればいいだけだと思うのだよね(IDE作り込みの一環)
どっちかっつーとワタシの一押しは関数定義の宣言句に省略形を許せば良くない?ってだけなのでスレ違いではある。
486:デフォルトの名無しさん
16/04/17 00:39:50.58 SCILLDG5.net
letはconstの代わりに使う言語があるね
関数宣言にdoがないとなると色々と候補に悩んでしまうぜ
job, fun, flow, verb, work, act(action)
487:デフォルトの名無しさん
16/04/17 01:15:23.96 iuB497/s.net
>>472
再代入を許さない言語だとletがconstと等価になるからじゃないのかな?
>>460
関数宣言がfunction hoge(args)と言う形をとる事をやめて予約語(function)無しでも可能な感じはしないでもないのだけど文法に制限って起きうるかな?
(Return型) function-name(Args....)
とか
function-name(Args):Return-Type
前者はCだし、後者はJScriptの宣言形式だけど、これじゃイヤな理由も思いつかない。
グローバル変数の定義とか外部変数定義とかのvar,static,externやら名前空間のnamespaceとかpackageとかimport等の特殊な予約語彙だけ文の開始から除外すれば後者の方法で関数は定義できると思うのだけど。
488:デフォルトの名無しさん
16/04/17 03:41:30.77 SCILLDG5.net
>>473
>予約語なくせば?
変数宣言でも関数宣言でも先頭に予約語が付いてIDEが色つけてくれ�
489:ス方が見やすいじゃない? もしくは関数宣言をすべて関数ポインタ(クロージャ?)のみにして、変数化してしまうか? var function-name = ->(args...){ ... }
490:デフォルトの名無しさん
16/04/17 16:43:33.52 3szJoJiC.net
基本的に、普通のブロックと、関数(クロージャ)との、区別をどうするかという問題が有るからね
普通のブロックは大体{ something }こんな感じだろうけど、これは呼び出しなしで即座に実行するのが普通
一方でクロージャは呼び出さない限りは実行されない
関数やクロージャなどを引数に取る関数が有ったとして
func_name( { something } );
こんな感じに呼び出した場合、{ something }を実行した結果を関数に渡すのか
{ something }その物を関数に渡すのか、コンパイラはよくわからない
func_nameの呼び出し引数の型がクロージャであることをコンパイラが分かっていたとしても
{ something }を実行した結果がクロージャになり、それを関数に渡すという可能性もあるのでコンパイラは判断できない
そのため、明確にするためにfunc_name( function{ something } );のように
何か普通のブロックとクロージャを区別する文法が要るのだね
そうこうしていると、Javascriptが出来上がる
491:デフォルトの名無しさん
16/04/17 17:47:06.17 SCILLDG5.net
結局function代替ワードが必要だと気付く
ラムダ記号=>だと引数に使うときダサイもんね
492:デフォルトの名無しさん
16/04/18 12:27:13.85 keXFBRJQ.net
新しいコンパイラを使うとき、「特有のクセのある」
のがグラフィック関数なんだよな。
個人的には、グラフィック関数も、ANSIで定めて欲しいくらい。
493:デフォルトの名無しさん
16/04/18 13:16:18.87 pknZG/q+.net
グラフィックなぁ
b800:0000らへんを好き勝手に弄らせてくれるなら歓迎するのだわ # ネタが古いか
494:デフォルトの名無しさん
16/04/19 13:33:12.70 6Wh9TF6d.net
8色でいいんか?
495:デフォルトの名無しさん
16/04/20 02:49:26.81 dZcIDvSg.net
最近はいじっていないので、最新のツールはよくわからんが、
昔のツールでは、RGBの三原色を元に、すべてのグラフィックを
再現していたからなあ。今考えると、ずいぶん、原始的だった。
496:デフォルトの名無しさん
16/04/20 05:43:15.95 wqKcWsga.net
>>480
最新をよくわかってないのによく原始的だと解るね?
497:デフォルトの名無しさん
16/04/20 06:55:13.29 XnBYIzBk.net
シマノのギアの仕組みをよくわかってない俺にもギアのないママチャリは原始的だと思う
498:デフォルトの名無しさん
16/04/20 07:16:40.91 wqKcWsga.net
自転車に例えるなら車輪を回転させて走らせるのは原始的だったなぁって言ってるのが >>480 なんだけどね
499:デフォルトの名無しさん
16/04/20 07:52:09.40 UfNx2Znx.net
えっ今もRGBじゃないの?
500:デフォルトの名無しさん
16/04/20 08:22:02.22 r07pzD8i.net
>>483
それはお前が勝手にそう思ってるだけ
ギア付きのチャリより直結のチャリの方がより原始的なのはわかるだろ?
501:デフォルトの名無しさん
16/04/20 08:29:41.63 r07pzD8i.net
>>484
ツールって言うのか何を示すのか、グラフィックっと言うものの範囲にもよる
ディスプレイ表示機構に限定すれば RGB 以外のは見たことない
グラフィックツールの話なら HSB とかの他のカラーモデルを扱えるものはあるし、プリンタは CMYK だし
そもそもこのスレで長々引っ張る話でもないし
502:デフォルトの名無しさん
16/04/20 09:12:43.14 UfNx2Znx.net
CMYKなんて大昔からあった
503:デフォルトの名無しさん
16/04/20 10:07:43.41 wqKcWsga.net
>>485
RGBっていうコンピューターグラフィックス上で今でも最も基本的な部分を指して原始的って言ってるからギア云々は的外れって言ってんの
504:デフォルトの名無しさん
16/04/20 11:06:43.66 fkY4xDrs.net
グラフィック関数ってOpenGLとかそういうはなしじゃないのか・・・
505:デフォルトの名無しさん
16/04/20 12:29:24.43 r07pzD8i.net
>>488
だからそれってお前のちんけな知識で語ってるだけだろ w
どういう風に対応付けるかなんて色々あるのに知識のない奴ってそれしか思い付かないから自分の考えが一番って思ってるんだよな
506:デフォルトの名無しさん
16/04/20 14:01:09.01 ljSF0mgB.net
おまえのことか
507:デフォルトの名無しさん
16/04/20 15:33:41.96 9SnFE2FG.net
例えが悪いって言ってんのにどういう風に対応付けするかは色々って何言ってるのか解りませんわ。
508:デフォルトの名無しさん
16/04/20 19:30:01.52 r07pzD8i.net
>>492
> 例えが悪いって言ってんの
お前かそう思ってるだけ
って何回言えば理解するんだ?
509:デフォルトの名無しさん
16/04/20 20:27:51.87 ljSF0mgB.net
いや、お前こそが、そう思っているだけだろ
車輪の話は分かりやすかった
510:デフォルトの名無しさん
16/04/20 22:17:47.57 iD79AHEd.net
どっちもどっち
下らんことでお山の大将になりたがるなよ
511:デフォルトの名無しさん
16/04/21 01:56:58.28 q7849b+A.net
変な所を指摘したらお山の大将になりたがる猿呼ばわりか、めんどくせえスレだな
512:デフォルトの名無しさん
16/04/21 02:20:43.14 mxlfT2Ft.net
スレ違いだから首釣って死ねって事だ
言わせんな
513:デフォルトの名無しさん
16/04/21 12:57:39.05 DAo9Zovx.net
エプソンのプリンターも当然、CMYKだが、
「純正を使わないと、すぐに故障する」
ような構造にしてあったよな?
あれはハードの構造でそうしているのか。コードにも、純正な否かを
判断する部分を盛り込んでいるのかどうか。
514:デフォルトの名無しさん
16/04/21 19:57:24.72 T4pmkcSw.net
エプソンに限らずプリンターは色の三原色持ってるのが当たり前
515:デフォルトの名無しさん
16/04/22 00:36:11.07 2IHAQJXj.net
純正インク以外で壊れやすくなるのは単に質が悪いから
プリンター本体は採算度外視でインクで儲けるビジネスモデルだったのに本体壊したら元も子もない
516:デフォルトの名無しさん
16/04/22 12:06:11.49 300wiAoM.net
プリンター本体も、五年もたって故障すれば、部品製造打ち切りで
修理不能で買わざるを得ないからな。キャノンはどうか知らんが、
エプソンはそうだった。とかいって、うちの勤め先の規模では、
プリンター市場に参入出来る資金力などない。
せいぜい、大手からおこぼれで仕事をもらい、コードをいじくるしか出来ない。
517:デフォルトの名無しさん
16/04/22 18:41:13.87 U46HjcWC.net
ずいぶん横道にそれているが、おまえらスクリプトつくってるのか?
518:デフォルトの名無しさん
16/04/22 20:38:22.94 TT82zXSl.net
>>496
指摘が的はずれって言われてるんだろ
519:デフォルトの名無しさん
16/04/22 20:39:29.07 FoP6yTJa.net
誰がもこみちにそれているねん!!
(´・ω・`)b
520:デフォルトの名無しさん
16/04/22 20:40:58.67 FoP6yTJa.net
>>502
スクリプト言語を利用してスクリプトを作っているという意味か?
それとも自分でスクリプト言語の仕様決めて実装設計しているということか?
521:デフォルトの名無しさん
16/04/22 21:49:45.09 cAq2nbH2.net
スレタイ嫁
522:デフォルトの名無しさん
16/04/22 23:35:58.89 Eun++jyx.net
>>505
後者の実装にスクリプト言語使っても問題はないんじゃなかろうか?
523:デフォルトの名無しさん
16/04/23 07:12:36.15 FJYQwL85.net
ここで産まれたスクリプトあんの?
524:デフォルトの名無しさん
16/04/23 12:40:11.44 OaaA/Nov.net
秀丸は、スクリプトを自作するときの参考になるのかね?
一応、役に立ったことは事実だが。
525:デフォルトの名無しさん
16/04/23 18:35:58.00 vG+aKQwy.net
禿丸エディタを何の参考にする気だ
526:デフォルトの名無しさん
16/04/24 00:18:07.79 dKv+k22E.net
秀丸は、「作業の自動化スクリプト」を書くのに便利だからな。
その仕様を元にすれば、スクリプトを自作するのに役に立つのではないかと
思ったのだが。
527:デフォルトの名無しさん
16/04/24 01:48:37.36 M7ZCbRga.net
「作業の自動化スクリプト」専用のスクリプトならgradleあたりが参考に良さそうだな
ちなみに俺はantは好きだけどmavenは大嫌い
528:デフォルトの名無しさん
16/04/25 02:57:23.38 ouB2BnTZ.net
まあ秀丸はテキスト処理に特化した
自動化スクリプトの参考にはなるかもね
あれはスクリプトっていうよりマクロだけど
529:デフォルトの名無しさん
16/04/25 10:50:38.19 9hQeUDgV.net
しかし秀丸には、CやWindows APIの命令が、多数というか、
かなり含まれている感じだが。
530:デフォルトの名無しさん
16/04/25 17:05:01.77 lstHaTya.net
だからなんだよって感じだが。
531:デフォルトの名無しさん
16/04/25 17:27:42.97 ouB2BnTZ.net
そのまま車輪の再発明をしてしまうと
元の秀丸を使った方が便利だから
自作スクリプトを秀丸と差別化する必要はある
532:デフォルトの名無しさん
16/04/26 03:16:17.88 r83feNEN.net
そうか。秀丸に存在しない命令を考えなければならないな。
533:デフォルトの名無しさん
16/04/27 00:31:37.93 Toh8P/+A.net
相変わらず手書きパーサー書いてるが、できるだけ1発でパースしつつ(LR法?)
外側から順に何度も段階分けながらパースする(LL法?)なコードも混じってる…
意味解析までたどり着くまでで力尽きそうw
534:デフォルトの名無しさん
16/04/27 06:02:05.40 vmi3tpS2.net
よほどの理由がないなら手書きなんかやめといた方が
Bison GLR 使ってた時は不自由さがなくてよかった
semantic predicate 機能は成熟しただろうか
535:デフォルトの名無しさん
16/04/27 07:02:50.92 h/kgFFlp.net
趣味でやってるんだろ
ほっといてやれや
536:デフォルトの名無しさん
16/04/27 11:26:55.96 9/2UzNftp
手書きは面倒だけど柔軟性あるし速いので、有名な言語でも採用してる所は多い気がする。
537:デフォルトの名無しさん
16/04/27 23:38:58.25 Toh8P/+A.net
手書きパーサー製作も残すは四則演算&関数呼び出しとなったが
ツリーの形状はこんな感じで良いのだろうか?
URLリンク(pastebin.mozilla.org)
>>519
本よむところから始めるのはしんどいのでな・・・
538:デフォルトの名無しさん
16/04/28 00:23:38.80 mWNt94gr.net
関数呼び出しだとこれでいけそう
URLリンク(pastebin.mozilla.org)
小さな計算でもツリーが深くなってnew()するノードの数がもりもり増えるけど
何かもっと良い方法あったら教えてちょ
539:デフォルトの名無しさん
16/04/28 12:59:47.77 Jc879At1.net
手書きパーサなら
木構造にせずに操車場アルゴリズムかその亜種でLL(1)するのも手だぞ。
文法と文をそれぞれ入力したらテーブル作ってLR(1)するクラスを作るって手もあるけど
大真面目に書いてc++で500行~1000行くらいにはなったと思う。
540:デフォルトの名無しさん
16/04/28 14:16:09.66 7cooGRk/.net
lexとyaccは、既存のものを使うべきか、自作すべきか、悩ましいね。
541:デフォルトの名無しさん
16/04/28 15:44:59.86 Jc879At1.net
yaccは、やる気と暇があるなら
どういう文法なら曖昧性が無いか、とか、shift/reduce conflictとdangling elseとは何か、とか
いろんな事についてよく理解できるようになるって点で一度試しに書いてみる事をお勧めしたい
今までに俺が余暇でC実装した名の付いたアルゴリズムの内だとかなり難しい部類に入るけどな。
lexは文法全く固まって�
542:ネいなら使ったらどう?って程度じゃない? 割と簡単に使えるけど、同じくらいとは言わないものの簡単に自作できるし ASCII範囲の文字は簡単に指定できるけどUnicodeなんかに対応する為にカスタムコードを挟むなら普通に全部組んだほうが楽な事もあるし。
543:デフォルトの名無しさん
16/04/28 15:46:10.30 Jc879At1.net
個人的にはPEGが気になるのですよー
544:デフォルトの名無しさん
16/04/28 18:30:43.97 FI1Tv7gT.net
コンパイラを作るはずがコンパイラジェネレーター作りがメインになってしまう不思議
545:デフォルトの名無しさん
16/04/28 18:36:57.28 Jc879At1.net
そして思うのだ
コンパイラジェネレータを書くのに向いてる言語とは・・・・・・
546:デフォルトの名無しさん
16/04/28 22:17:59.57 mWNt94gr.net
>>524
そうだな。ここだけツリーにしないで、再帰関数で直接出力すれば良さそうだ
547:デフォルトの名無しさん
16/04/29 05:30:33.58 o23yQzXI.net
バイトコードのテキストを読み込んだら
バイトコードの1行と対の関係になる命令ノードを
行数だけ配列にして上から順に実行するイメージであってる?
なんか構文木のまま実行するのと大して変わらない気がするけど
メモリの節約とかどうなんだろう
548:デフォルトの名無しさん
16/04/29 10:04:10.82 GdtJdaFL.net
バイトコードのテキストってのが若干意味不明だが
バイトコードならアセンブル(バイナリ化)しておかないか普通
a = b + c * d
を二分木のASTで
(st (ldptr local[0]) (add (ld local[1]) (mul (ld local[2]) (ld local[3]))))
みたいに格納して、ポインタ1つあたり64 bits、ノード構造体のサイズが24 bytesと仮定して
glibc mallocを使うことを仮定して全部で32 bytes * 7 = 224 bytesのヒープを消費する。
一方でレジスタ型VMを仮定して、簡単の為に1命令32 bits固定長とすると、例えば
ldptr r0, local[0] / ld r1, local[1] / ld r2, local[2] / ld r3, local[3] /
mul r4, r2, r3 / add r5, r1, r4 / st r0, r5
の7命令で与式が表現できるから、
配列の中身の長さが2^nに拡大されて予約される事を仮定すると4 bytes * 8 = 32 bytes
これに配列の管理領域が2ワード16 bytes、
glibc mallocを使うことを仮定すると2箇所の領域の管理で2ワード16 bytes必要で
合計で64 bytesのヒープを消費する。
ただ、配列には配列の問題点と言うかでっかい領域を再確保するのが難しい事があるから
文単位ではリストや木を、式単位では配列を使うってのがインタプリタとしては良いんじゃないかなとは思う。
549:デフォルトの名無しさん
16/04/29 13:14:44.61 mG1yRheY.net
コンパイラ作りって、インタプリタよりも、10倍の労力がかかるよな。
550:デフォルトの名無しさん
16/04/29 15:48:32.50 qwAEwLKu.net
この辺はlispやschemeで思索しながらやると楽なんだよ
551:デフォルトの名無しさん
16/04/29 17:57:56.98 ZvoRtCQG.net
コード生成の方は関数型の基礎だけでもやってないとかえって遠回りに
552:デフォルトの名無しさん
16/04/29 20:10:00.50 YATvpu7C.net
>>534
最終的になんで苦労してまで構文木をSchemeで生成するんだろう?っておもって結局そのままLispのMacroに化けるのである(割とマジで)
Lisperが他の言語取得者のタメにDSLを組むことはあってもLisperはLispのママ扱う方がよかったりするのよね。
553:デフォルトの名無しさん
16/04/29 21:15:38.47 o23yQzXI.net
>>532
ありがたい。メモリが4倍くらい節約できるのね
もしかしたら構文木のまま動かした方が動的ロードで
面白いことが簡単に実現できるんじゃないかと迷ってたけど(evalとか)
パフォーマンスではバイトコードがかなり強力なのね
554:デフォルトの名無しさん
16/04/29 23:41:20.66 o23yQzXI.net
>>532
>バイトコードならアセンブル(バイナリ化)しておかないか普通
たしかに普通は読み込み速度的にバイナリデータが望ましいのだけど、
手さぐりで試作するからメモ帳で読み書きできるテキスト形式でやってみるんだ
555:デフォルトの名無しさん
16/04/30 01:17:44.44 oV2mml7H.net
lispインタプリタって一番簡単な実装(pure lisp?)だと何行くらいで実装できる?
556:デフォルトの名無しさん
16/04/30 07:15:19.54 wSqWni75.net
>>539
基本関数だけならものすごい小さいよ
Lispが生まれた時代のマシンのメモリ量なんてアドレスのビット数が16以下だし。
557:デフォルトの名無しさん
16/04/30 10:02:54.88 oKKjAnDv.net
>>539
何で実装するかにも依る
swiftやrubyだと100行オーダーで書けるらしい
URLリンク(xavier.hateblo.jp)
C実装だと2000行くらいみたい
URLリンク(github.com)
558:デフォルトの名無しさん
16/04/30 16:03:06.15 ASEjigO2.net
行というかWin32で20KByteコアのそこそこ速いScheme処理系はCで作ったな
何行だったかは忘れたが数千行にはなる
ライブラリやフレームワークにどこまで対応するかだと毎回思う
559:デフォルトの名無しさん
16/04/30 17:51:48.40 iJVuG7iJ.net
自作コンパイラでソフト作ろうとすると、やたらコアを吐くことに...。
560:デフォルトの名無しさん
16/04/30 19:28:20.97 wSqWni75.net
>>543
selfビルド可能になれば普通じゃ無いの?>>core吐かせてバイナリ生成
561:デフォルトの名無しさん
16/05/01 13:17:14.33 tKi6j9CT.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
8
562:デフォルトの名無しさん
16/05/01 17:25:31.50 EieRhQfe.net
スレ違いだから他所でやって
563:デフォルトの名無しさん
16/05/01 21:43:24.13 EieRhQfe.net
バイトコードのはずだったのに気づいたら
関数オブジェクトのツリーを作ってた
なにやってんだ俺・・・
564:デフォルトの名無しさん
16/05/03 02:36:10.72 sSslXsw5.net
自作ソフトの暴走はたまにあるが、自作コンパイラの暴走はヤバイよな。
それで別のソフトを作成した日には、最悪の結果が待つことに...。
565:デフォルトの名無しさん
16/05/04 02:55:51.64 ug5Kip
566:fy.net
567:デフォルトの名無しさん
16/05/04 03:53:55.73 INW31x/s.net
昔のC言語みたいに、floatとdoubleに分けるメリットは、
今の時代にはないよな?
568:デフォルトの名無しさん
16/05/04 03:59:22.27 NIqCX6OH.net
むしろ half の出番さえ出てきてる時代。
569:デフォルトの名無しさん
16/05/04 10:09:50.25 wjUC1pj0.net
役割っていうのは受動的な考え方であり縦割り行政的でありfunctionの適切な代替表現ではない
roleは与えられた仕事をただこなすだけというイメージ
このとき、与えられる対象、つまりデータやオブジェクトがあり
担当個所をroleするという感じ
role ≒ class であり、role ≠ function
何にも縛られず自由なfunctionとroleでは思想が違う
functionは立場や部署間を飛び越えて連携して機能するイメージ
胸熱であり、自分の仕事をこなすだけのroleなどと一緒にされては困る
function( a, b, c, d );
a.role( b, c, d );
570:デフォルトの名無しさん
16/05/04 10:16:54.82 wjUC1pj0.net
例えば、日本は縦割り行政的であり、役人的であると言われ(role)
一方で、アメリカは横のつながりが強く、機能的だと言われる(function)
このように、機能と役割は対立する概念として扱われている言葉であり、思想が違う
日本の映画やドラマなんかでよく
「それは自分の仕事じゃないのでやりません」とか
逆に「自分たちの管轄だから余所者は入ってくるな」とか
役割的発想は悪いことのように扱われるのが常
逆に主人公たちは部署間を飛び越えて機能的に行動すると決まっている
571:デフォルトの名無しさん
16/05/04 12:07:39.94 p+LvbHBp.net
もうちょっとプログラマ的喩えにしようぜ。
procedure=大域環境に対して参照と破壊をするもの
function=環境を参照せず、戻り値は引数にのみ依存するもの
closure=固有の環境を持ち、その環境に対して参照と破壊をするもの
どれも意味が違う。
functionとroleはクラスとインスタンスくらい意味が違うと思う。
572:デフォルトの名無しさん
16/05/04 23:28:44.89 wjUC1pj0.net
歯車でいえば
複数の歯車が上手く連携して動いている様を機能していると言うし
個々の歯車に着目してそれぞれが自分の仕事をしている様を役割をこなしているという
手続き的に時系列に沿って考えると
個々が役割を果たした結果、全体として機能がもたらされて、また別の大きな役割を担う・・・という風に
卵が先か鶏が先か、みたいなところがあって、双方の視点はどちらも重要で
同時に扱ていかなければならないわけだけど
区別して扱われる別の視点であり、function = roleとしてしまうのは単純にセンスないというか早合点
functionとroleの考え方の微妙な違いは非常に重要で
最初の出発点が違うことで資本主義と社会主義など、時としては戦争が起こる場合もある
(つまりは、資本主義と社会主義は鶏が先か卵が先か、functionが先かroleがという思想の違い
functionはまさに空気のようなもので、人と人をつないで機能させるお金を重視している
roleはまさに人そのもの、その役割に主体を置いている)
functionをroleと言ってしまうのは教養がないと言われても仕方がない
自分の思考が今何に着目していて何を考えているか把握しておかないと大変なことになる
頭がよくなりたければ囲碁が良い
囲碁は碁石そのものにも着目しなければならないし、碁石と碁石の境界にも着目しなければならない
それぞれで見え方が全く変わってくるし、同時に考えなければならない
頭の体操に良い
「物」と「事」は別のものだけど、「物事」という言葉があるように同時に考えなければならないこともしばしば
573:デフォルトの名無しさん
16/05/04 23:40:58.82 ug5Kipfy.net
関数ってそんなに抽象的な意味を持ってたのか
インプット&アウトプット、リクエスト&レスポンスの手続きくらいに見てたよ
574:デフォルトの名無しさん
16/05/05 00:33:21.20 dh4q1EnN.net
関数は二者以上の関係を表しており、二者以上の関係性が何か機能をもたらす
というより、逆算して、機能をもたらせるように、二者以上の関係性を作るのがエンジニアの仕事
だから関数もfunctionだし、機能もfunctionという
電子部品だって、回路を組んで組み合わせなければ機能しない
「関」という字が示すように、関係性は何事においても常に重要で
数学や物理はすべて関係性を数式で表すことで成り立っている
「1」という数字が何か意味を持っているというよりは、「1」と他の数字との関係性が「1」自身の立場や性質を決めている
関係性は非常に高等で、目に見えないものであるが故、尊いものとされている
というのも物事の関係性を紐解いたり、逆に利用できたり、機能的に考えることができる人は
当然、役割的思考も出来るものとされているから
役割的発想は馬鹿にでもできる
アメリカが赤のことを悪とするのもこのためで、そいうった悪の思想から自分たちを守るために
右翼の人たちは「保守」と呼ばれる
赤の思想のほうが理解しやすく馬鹿でも少年でもわかり
簡単で広まりやすいので、自分たちの尊い考え方や社会を
守らなければ、占領されてしまうという恐怖感からある種過剰な防衛をしている
年を取れば自然と物事の関係性の重要さに気付くものだから基本保守になる
そういったことを一通り分かったうえであえて福祉にも力を入れるというのが今の先進国のあり方
順番を誤ってはいけない
会社でいえば自分の役割しかしない人は指示待ち人間といわれ歓迎されない
一方で機能的に考える人は他者とのコミュニケーションを図り、関係を大事にし、目的を達成する努力をする
両方の考え方ができる人は機能的発想に加えて他者への配慮もするし、リーダー的
何事も一つの思想だけでどうにかしようとしないほうが良い
例えば「1」をオブジェクトとしてとらえるという、某言語のような考え方は全くする必要ない
数学の「1」にそのような意味はないし、全てをオブジェクトとして再認識して再構築する必要はなく
マルチパラダイム言語で良い
1+2は単に1と2を足すという解釈でよく、1に+2というメッセージをどうのこうのという意味不明な再解釈はいらない
考え方を統一しようとする必要はなく、そういった偏った思想をしても良いことはない
575:デフォルトの名無しさん
16/05/05 01:08:08.43 dh4q1EnN.net
アメリカは自由自由いつも言ってるが、いったい何に対しての自由なのか、
どこを目指しているのかというと
自分が生まれながら背負ったroleから自由である、ということ
この辺、人種差別の問題とか貧困の問題とかが出てくる
一方で、社会に対する自分の機能性のようなものは常に非常に重視される
要らなくなったらすぐに首を切られるし、厳しい
とにかく機能機能機能機能、個人に対して厳しい、機能性のない人はいりません
しかし、生まれ持ったroleからの自由はサポートしましょう
その意味で、移民は受け入れる、ただし機能性のある人だけ
576:デフォルトの名無しさん
16/05/05 01:19:48.20 AqKMDGmp.net
この長文君きもちわるい…
577:デフォルトの名無しさん
16/05/05 01:42:26.59 3/paarxc.net
>>554
ぼくの作ってるものは偽C言語でグローバル変数もあるから
定義的にはプロシージャが適切なんだろうな
それでロールについてはもう少し考えてみるつもりだけど、
malloc()そのものがfunctionとして、malloc()を何につかうのかがroleなのかな
けれど関数の多くはライブラリとかAPIではなく単なるサブルーチンのような気がして
サブルーチンはロールだとも思うのよね
578:デフォルトの名無しさん
16/05/05 02:12:56.28 Jo4WiHb1.net
単に役割って意味なら、変数にだってそれぞれの役割があるよね。
579:デフォルトの名無しさん
16/05/05 05:12:54.36 qzGbsflZ.net
相手するなよ...
580:デフォルトの名無しさん
16/05/06 09:34:30.45 pdJO182a.net
最適化をサポートする機能を付けるのも、面倒だよね。
昔のVC++の売り文句が、「極限までの最適化」などとうたっていたが、
ビルドの時間も長すぎ、他の作業が中断...というオチ付きだったし。
581:デフォルトの名無しさん
16/05/06 09:52:38.91 WbxBcPoP.net
神聖なるビルド専用マシンを他の作業に使うのがおかしい
現在だって動画のレンダリングする連中はそんな感じだろう
582:デフォルトの名無しさん
16/05/06 19:11:06.89 5HLOeR1MW
どこの解説サイト見ても構文木の枝は最大二本にしか分かれないだけど、
二本以上の枝で根や葉を管理しても問題ないよね?
こんな感じのデータ構造にしたいんだけど。
class ForStmtNode : Node { Node init, cond, inc, body; }
こうしちゃいけない理由でもあるのかな。
583:デフォルトの名無しさん
16/05/07 02:02:54.76 lPvt8ROe.net
ウチの勤め先には、ビルド専用マシンはなかったな。うらやましい。
584:デフォルトの名無しさん
16/05/07 12:49:01.06 TEQEM2qu.net
GoogleにはGOMAって名前のビルド専用クラスタ(2~300台くらい繋げた奴)があるってよ
585:デフォルトの名無しさん
16/05/07 14:21:44.92 0EiVc3To.net
そして各チームは一台でも多くのマシンリソースを確保するため
他チームの保有区域への侵略に明け暮れているという
586:デフォルトの名無しさん
16/05/07 18:52:54.52 IlJOE3r59
>>565
無いよー
でも、なんか勘違いしてる気がする
587:デフォルトの名無しさん
16/05/07 22:38:35.98 hfPhBXdU5
>>569
本当だ、これだと抽象構文木だね。
class ForStmtNode : Node { List<Node> children; }
とりあえずこれでいいってことだね。
588:デフォルトの名無しさん
16/05/08 10:02:36.39 jHRrSElx.net
>>567
クラウドサービス提供するぐらいだからマシンあまってんだろうなぁ
589:デフォルトの名無しさん
16/05/08 13:05:39.75 EAH4Xwpx.net
俺の予想では、Googleやマイクロソフトに太刀打ちできるIT企業って、
日本国内にはないような気がする。
社員か誰かが遊び半分みたいな感じで作り上げた「Googleパックマン」
には、参ってしまったからな。あれは凄かった。
590:デフォルトの名無しさん
16/05/08 13:17:39.53 EkxZMrhh.net
>>572
日本どころか全世界でみてもAppleくらいしかいねぇよ
591:デフォルトの名無しさん
16/05/08 13:26:01.54 cY3IZjLs.net
DeNA/GREE ほほう
dwango なかなか
CookPad おもしろそうな
DMM 話じゃないか
592:デフォルトの名無しさん
16/05/08 13:27:27.42 cY3IZjLs.net
>>573
Amazon「…」
593:デフォルトの名無しさん
16/05/08 21:29:02.01 mw6lNm2M.net
囲碁のSmart Go Formatというのをパースしたいのですが
読みやすいサンプルプログラムないですか。
594:デフォルトの名無しさん
16/05/08 22:54:46.20 EkxZMrhh.net
URLリンク(senseis.xmp.net)
595:デフォルトの名無しさん
16/05/09 00:01:18.08 VGqIwUSF4
字句解析→構文木→抽象構文木
の順で解析することが多いと思うんだけど
字句解析→抽象構文木
の順でLexerからトークン読みながら一気にATS作るのってどうなのかな。
処理スピードやメモリ効率はかなり良くなる気がするんだけど。
596:572
16/05/09 19:17:09.28 QYIZFGji.net
ありがとうございます。
読んでみます。
597:572
16/05/09 20:40:18.09 QYIZFGji.net
RubyGemあんのか。
うまくいけば自分で書かなくてもイケるかも。
598:デフォルトの名無しさん
16/05/10 13:55:45.68 aTks4HJk.net
うちみたいに規模が小さいと、データセンターも活用するしか
手がないね。自前のデータセンターなど、夢のまた夢だ。
599:デフォルトの名無しさん
16/05/13 11:38:51.94 6Wa+P3Ox.net
ビルド専用マシンがあるなら、テスト専用マシンもないとおかしいよね。
共にあるのがソフトハウスの標準なの?
うちでは、とてもそこまでの予算をつけてもらえないのだが。
600:デフォルトの名無しさん
16/05/14 01:19:35.08 spK37znF.net
投資に見合うリターンがあれば普通は投資するだろう。
601:デフォルトの名無しさん
16/05/14 02:25:57.07 guvuQQ9l.net
ビルド兼テストマシンなら普通にある
602:デフォルトの名無しさん
16/05/14 03:51:37.38 9OGuGONK.net
>>582
できたてほやほやの会社で開発が二人しか無い我が社なんかなんもないぞw
awsをスポットで借りると割と安いビルド環境作れるからそういうの使ってるけど。
603:デフォルトの名無しさん
16/05/14 10:30:08.43 zu3iiide.net
>>585
それじゃあ、資本金10万円の株式会社と、何ら変わらんだろww
604:デフォルトの名無しさん
16/05/14 21:33:12.49 GqFlaCrO.net
客先常駐の偽装派遣か?
605:デフォルトの名無しさん
16/05/16 00:37:06.74 HJQsGNoE.net
DOS全盛の時代の時は、「遊び半分で、コンパクトなコンパイラでも
作ってみようかな」
という気も起きたが、これだけ複雑怪奇なWindows全盛時代となっては、
もう手軽に手を出せるレベルじゃないよね。
606:デフォルトの名無しさん
16/05/16 09:26:54.72 HysSRgR+.net
今ならWASMターゲットでどうよ
607:デフォルトの名無しさん
16/05/16 20:25:52.51 1m5lkdv7T
>>578
なんかアレだが、
パーサの出力を抽象構文木にすることは大変ではない。
勿論、具象構文木で出すこともできるが
逆に手間がかかるので理由がない限りしない。
608:デフォルトの名無しさん
16/05/16 22:26:29.32 kgWFY/O22
通常の構文木も作っておかないと、デバッカに対応する時やエラーメッセージを出す時に困るかも。
609:デフォルトの名無しさん
16/05/17 02:22:11.57 1Hk6wPoo.net
遊びでコンパイラを作るなら、linux用なら、作れば誰か使って
くれるかも...。
610:デフォルトの名無しさん
16/05/17 06:47:28.73 uw1YLM9D.net
>>588
別にコンパクトなコンパイラのハードルは上がってないと思うが
無償でほぼフルセットの開発環境が入手できる今では意味が薄れた
って言うのならわかるけど
611:デフォルトの名無しさん
16/05/17 12:49:07.23 PnBEFQO4.net
CとかJavaから呼び出す組み込みスクリプトなら需要ありそう
javascriptトランスレータはHaxeがよくできてるけど作ってみたい
612:デフォルトの名無しさん
16/05/18 21:25:50.30 EzbR6hZga
構文エラーならパースの時点で解決しないといけないし、
それ以降は、構文木の各ノードにソースコード上の位置情報をいれておけば結構ok
パーサ自体のデバッグには有用
613:デフォルトの名無しさん
16/05/20 02:16:34.68 t8k86oX2.net
>>356
Forth, Postscript「必要です」
614:デフォルトの名無しさん
16/05/20 23:34:10.65 tlYSnHy5.net
言語仕様作成と、コンパイラ本体は自分で作り、
�
615:fバッガだけ外注して作ってもらうというズルはありえる? 高性能なツールにするには、かなり手間がかかると思うのだが。
616:デフォルトの名無しさん
16/05/21 00:37:18.20 jbF82omc.net
デバッガってevalさえあれば簡単なものはできそうだが
高機能てなると難しいのかな
617:デフォルトの名無しさん
16/05/21 10:16:04.77 4qmWB+Wj.net
その「高性能な」デバッガに何を求めてるかにも依るような。
618:デフォルトの名無しさん
16/05/21 18:55:29.44 r6iEFhaA.net
不具合な動作が時々あるソフトで、たまたま高性能なデバッガに
分析させたら、ソースもないのに、分析されたソフト内部のソースを
画面に表示し、
「ヌル文字列を格納するための領域に、別の文字を格納し、領域を
破壊しています」
とか何とかメッセージを出した例まであるからな。
こういうデバッガは値段が高いだろ。
619:デフォルトの名無しさん
16/05/23 19:41:11.89 h8XB4lAi.net
頭悪そうだね
620:デフォルトの名無しさん
16/05/26 00:28:35.77 R75m14iA.net
予約語テーブルに、どのくらい詰め込めば良いかが悩ましい。
あまり増やしすぎると、C++と同じ道をたどるだけだし。
621:デフォルトの名無しさん
16/05/26 00:40:19.83 SiuzFNyH.net
C++と同じ道をたどれれば最高じゃないか
622:デフォルトの名無しさん
16/05/26 07:23:51.59 6iXHX0kN.net
てか、C++ って機能のわりに予約語は少ない方じゃね?
623:デフォルトの名無しさん
16/05/26 09:28:47.76 8g8oY2SCK
最近のC++はほとんどの機能を標準ライブラリ側で提供しようとしてるから予約語自体は少ない
std::moveとかstd::initializer_listという形で予約後を回避してる
根本的な解決にはなってないんだけど。
624:デフォルトの名無しさん
16/05/27 15:25:55.45 xTig+h/w.net
アンダーバー付きの予約語は嫌だ
625:デフォルトの名無しさん
16/05/27 21:42:12.01 DWOzzldt.net
俺はiostream関数も嫌だな。
626:デフォルトの名無しさん
16/05/27 23:33:16.53 64E4c/Qq.net
抽象関数に実装なし・マーカーとか、書けばわかりやすいのに、
func(){ } = 0
とか、意味不明なことをやって、キーワードを減らしている
627:デフォルトの名無しさん
16/05/31 21:45:44.53 0yna7kxs.net
#include <PANAMA_PAPERS.Lib>
main()
{
for(Datsuzei = 0; Datsuzei <= mugendai; Datsuzei++)
}
こんな予約語やライブラリがあれば、俺のお金も無限に増える
はずなのに。消費税など、上げないでもらいたいよな。
628:デフォルトの名無しさん
16/05/31 22:03:33.81 TRYwrF1a.net
お金が無限に増えたらジンバブエみたいになるぞ・・・・・・
629:デフォルトの名無しさん
16/05/31 22:10:48.45 JlIYRfhe.net
ジンバブエってdoubleが桁あふれしたんだっけw?
630:デフォルトの名無しさん
16/06/01 20:32:23.48 72v9yor7.net
COBOL使ってたから大丈夫
631:デフォルトの名無しさん
16/06/01 22:55:39.98 z/VHQJBB.net
ワロタww
せめてrubyにしてくだしあ
632:デフォルトの名無しさん
16/06/05 02:48:48.10 itWJAX/I.net
フリーのコンパイラって、信用できる?
遊び程度でソフト作るなら良いけど、フリーだとサポートも
期待できないし。
633:デフォルトの名無しさん
16/06/05 03:05:17.84 wHhH7979.net
gccもclangもjavacもc#も信用ならんって分野ももしかしたらどこかにはあるのかもな
634:デフォルトの名無しさん
16/06/05 03:35:16.04 itWJAX/I.net
gnuのように、ソースが公開されていてもやばい部分もあるのかな?
635:デフォルトの名無しさん
16/06/05 09:08:18.42 n7k60ruZ.net
事故った時の補償の話なら先に契約で決めておくしかない
どうしても必要なら補償付きのお高いメーカー製を使えばいい
そこまで気にしないなら適当に人気のやつを選べばいい
ただし最適化を強めにすると地雷を踏むリスクが高い
636:デフォルトの名無しさん
16/06/05 09:10:42.69 n7k60ruZ.net
ライブラリとかOSとかに比べればコンパイラ自身のバグは極めて少ない
ただし最適化を強めにすると(ry
637:デフォルトの名無しさん
16/06/05 14:53:16.00 D97p9ZEl.net
最適化有効にしてバグるのも大抵そのプログラムのバグだから
638:デフォルトの名無しさん
16/06/11 01:39:10.14 cDt3abig.net
>>614
有料でもサポートしてもらえる範囲は限られてる
639:デフォルトの名無しさん
16/06/11 06:06:42.00 MaD03lMp.net
今考えたら昔のN88BASICも、実は凄かったんだな。
コンパイラを作りの前の基礎教養として、価値があると思う。
知識が多いほうが有利だし。
640:デフォルトの名無しさん
16/08/06 21:46:00.33 pVg13zPK.net
グラフィックライブラリは、やたら予約語の文字数が長くてウンザリ
した経験があるな。わかりやすくコンパクトな予約語で良いのに。
641:デフォルトの名無しさん
16/08/06 22:54:17.43 Jz+gSdkD.net
予約語?
642:デフォルトの名無しさん
16/08/22 17:08:41.63 oW9zLe2W.net
昔のBASICは名前空間みたいな整理はされてなくて
ライブラリに相当する部分も予約語として扱ってたんだよ
643:デフォルトの名無しさん
16/09/13 22:37:20.41 0YzbOJ/I.net
HSPとかもそうだな
644:デフォルトの名無しさん
16/10/17 13:00:51.48 Vg9Wd9rs.net
>>622
高々COLORとかPOINTでしょ?
PHIGS辺りのサードパーティライブラリと勘違いしてないか
それともCLSに比べたら長いって話?
645:デフォルトの名無しさん
16/10/17 13:06:46.54 Vg9Wd9rs.net
パラメーターがダラダラ長いっていうのなら分かるんだけどな
タートルグラフィック以前の設計で
カレントペンオブジェクトって概念がまだないから
646:デフォルトの名無しさん
17/03/20 21:03:09.17 FgPIWm6o.net
haskellのdo構文
647:デフォルトの名無しさん
17/05/15 00:51:21.49 SFBD2YKR.net
Amazon で「Flex & Bison」で検索したらこんなの出て来て驚いた。
URLリンク(amzn.asia)
648:デフォルトの名無しさん
17/05/15 18:24:26.90 DeqHpRpX.net
たけーなオイ
649:デフォルトの名無しさん
17/06/26 19:12:09.78 6CpK5SZQ.net
>>615
実際コンパイラはソフトウェア検証の好対象
CakeMLとか
650:デフォルトの名無しさん
18/02/16 06:02:50.68 W1XJdyx1.net
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
651:片山博文MZ
18/03/02 16:53:16.42 R33psDql.net
URLリンク(www.softantenna.com)
652:デフォルトの名無しさん
18/05/23 22:10:50.46 Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
RSQUI
653:デフォルトの名無しさん
18/07/04 23:52:46.72 gFgZc5FG.net
CL2
654:デフォルトの名無しさん
18/07/16 22:53:08.29 oM74pxCP.net
テスト😊
655:
18/09/04 14:52:35.77 lJV/Mb/R.net
形式言語の祖・生成文法のチョムスキー90歳の言葉
URLリンク(www.videonews.com)
656:デフォルトの名無しさん
19/03/21 17:55:33.49 YzD9JPpd.net
esprima/escodegenなんかでJS ASTを扱ってる人に質問。
ASTを舐めて変数の型を推論したものをノードに紐付けて記録しておきたいんだけど、JS ASTの場合
ASTの中にメタデータをぶら下げるのと外で持つのとどっちが一般的なんだろう?
中に持つ場合はどこにどういうプロパティ名でぶら下げるか、外の場合はノードの位置を特定する
パスのようなものが必要になるけどそれをどうするか。
657:デフォルトの名無しさん
21/02/24 20:03:26.16 1LsYaFKv.net
test
658:デフォルトの名無しさん
21/06/01 15:18:43.13 IjgT90G7.net
お前ら元気か?
Prologおじさんが2003年頃からPrologの人気がなくなったとか言ってたんだが、2chのせいではないかと思ってきてみたぜ。
めっちゃ過疎ってるじゃないか。というか2chいつの間にか5chになってたんだな。
Prologは操作的意味論をそのまま書き下して言語作れるので良いぞw
% e.pl
e(I, I) :- integer(I).
e(E1+E2, I) :- e(E1, I1), e(E2, I2), I is I1+I2.
:- e(1+2+3+4,R),!,writeln(R).
:- halt.
というファイルを作って
$ swipl e.pl
10
だ。こんな短く言語実装できる言語は他にないぜw