「コンパイラ・スクリプトエンジン」相談室16 (648レス)
「コンパイラ・スクリプトエンジン」相談室16 http://mevius.5ch.net/test/read.cgi/tech/1405822579/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [sage] 2014/07/20(日) 11:16:19.37 ID:p6eMVAxc プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 Wikiのまとめページ http://www6.atwiki.jp/compilerandscriptengine/ http://mevius.5ch.net/test/read.cgi/tech/1405822579/1
522: デフォルトの名無しさん [] 2016/04/28(木) 00:23:38.80 ID:mWNt94gr 関数呼び出しだとこれでいけそう https://pastebin.mozilla.org/8868995 小さな計算でもツリーが深くなってnew()するノードの数がもりもり増えるけど 何かもっと良い方法あったら教えてちょ http://mevius.5ch.net/test/read.cgi/tech/1405822579/522
523: デフォルトの名無しさん [sage] 2016/04/28(木) 12:59:47.77 ID:Jc879At1 手書きパーサなら 木構造にせずに操車場アルゴリズムかその亜種でLL(1)するのも手だぞ。 文法と文をそれぞれ入力したらテーブル作ってLR(1)するクラスを作るって手もあるけど 大真面目に書いてc++で500行〜1000行くらいにはなったと思う。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/523
524: デフォルトの名無しさん [] 2016/04/28(木) 14:16:09.66 ID:7cooGRk/ lexとyaccは、既存のものを使うべきか、自作すべきか、悩ましいね。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/524
525: デフォルトの名無しさん [sage] 2016/04/28(木) 15:44:59.86 ID:Jc879At1 yaccは、やる気と暇があるなら どういう文法なら曖昧性が無いか、とか、shift/reduce conflictとdangling elseとは何か、とか いろんな事についてよく理解できるようになるって点で一度試しに書いてみる事をお勧めしたい 今までに俺が余暇でC実装した名の付いたアルゴリズムの内だとかなり難しい部類に入るけどな。 lexは文法全く固まってないなら使ったらどう?って程度じゃない? 割と簡単に使えるけど、同じくらいとは言わないものの簡単に自作できるし ASCII範囲の文字は簡単に指定できるけどUnicodeなんかに対応する為にカスタムコードを挟むなら普通に全部組んだほうが楽な事もあるし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/525
526: デフォルトの名無しさん [sage] 2016/04/28(木) 15:46:10.30 ID:Jc879At1 個人的にはPEGが気になるのですよー http://mevius.5ch.net/test/read.cgi/tech/1405822579/526
527: デフォルトの名無しさん [sage] 2016/04/28(木) 18:30:43.97 ID:FI1Tv7gT コンパイラを作るはずがコンパイラジェネレーター作りがメインになってしまう不思議 http://mevius.5ch.net/test/read.cgi/tech/1405822579/527
528: デフォルトの名無しさん [sage] 2016/04/28(木) 18:36:57.28 ID:Jc879At1 そして思うのだ コンパイラジェネレータを書くのに向いてる言語とは・・・・・・ http://mevius.5ch.net/test/read.cgi/tech/1405822579/528
529: デフォルトの名無しさん [sage] 2016/04/28(木) 22:17:59.57 ID:mWNt94gr >>523 そうだな。ここだけツリーにしないで、再帰関数で直接出力すれば良さそうだ http://mevius.5ch.net/test/read.cgi/tech/1405822579/529
530: デフォルトの名無しさん [] 2016/04/29(金) 05:30:33.58 ID:o23yQzXI バイトコードのテキストを読み込んだら バイトコードの1行と対の関係になる命令ノードを 行数だけ配列にして上から順に実行するイメージであってる? なんか構文木のまま実行するのと大して変わらない気がするけど メモリの節約とかどうなんだろう http://mevius.5ch.net/test/read.cgi/tech/1405822579/530
531: デフォルトの名無しさん [sage] 2016/04/29(金) 10:04:10.82 ID:GdtJdaFL バイトコードのテキストってのが若干意味不明だが バイトコードならアセンブル(バイナリ化)しておかないか普通 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のヒープを消費する。 ただ、配列には配列の問題点と言うかでっかい領域を再確保するのが難しい事があるから 文単位ではリストや木を、式単位では配列を使うってのがインタプリタとしては良いんじゃないかなとは思う。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/531
532: デフォルトの名無しさん [] 2016/04/29(金) 13:14:44.61 ID:mG1yRheY コンパイラ作りって、インタプリタよりも、10倍の労力がかかるよな。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/532
533: デフォルトの名無しさん [sage] 2016/04/29(金) 15:48:32.50 ID:qwAEwLKu この辺はlispやschemeで思索しながらやると楽なんだよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/533
534: デフォルトの名無しさん [sage] 2016/04/29(金) 17:57:56.98 ID:ZvoRtCQG コード生成の方は関数型の基礎だけでもやってないとかえって遠回りに http://mevius.5ch.net/test/read.cgi/tech/1405822579/534
535: デフォルトの名無しさん [sage] 2016/04/29(金) 20:10:00.50 ID:YATvpu7C >>533 最終的になんで苦労してまで構文木をSchemeで生成するんだろう?っておもって結局そのままLispのMacroに化けるのである(割とマジで) Lisperが他の言語取得者のタメにDSLを組むことはあってもLisperはLispのママ扱う方がよかったりするのよね。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/535
536: デフォルトの名無しさん [] 2016/04/29(金) 21:15:38.47 ID:o23yQzXI >>531 ありがたい。メモリが4倍くらい節約できるのね もしかしたら構文木のまま動かした方が動的ロードで 面白いことが簡単に実現できるんじゃないかと迷ってたけど(evalとか) パフォーマンスではバイトコードがかなり強力なのね http://mevius.5ch.net/test/read.cgi/tech/1405822579/536
537: デフォルトの名無しさん [] 2016/04/29(金) 23:41:20.66 ID:o23yQzXI >>531 >バイトコードならアセンブル(バイナリ化)しておかないか普通 たしかに普通は読み込み速度的にバイナリデータが望ましいのだけど、 手さぐりで試作するからメモ帳で読み書きできるテキスト形式でやってみるんだ http://mevius.5ch.net/test/read.cgi/tech/1405822579/537
538: デフォルトの名無しさん [sage] 2016/04/30(土) 01:17:44.44 ID:oV2mml7H lispインタプリタって一番簡単な実装(pure lisp?)だと何行くらいで実装できる? http://mevius.5ch.net/test/read.cgi/tech/1405822579/538
539: デフォルトの名無しさん [sage] 2016/04/30(土) 07:15:19.54 ID:wSqWni75 >>538 基本関数だけならものすごい小さいよ Lispが生まれた時代のマシンのメモリ量なんてアドレスのビット数が16以下だし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/539
540: デフォルトの名無しさん [sage] 2016/04/30(土) 10:02:54.88 ID:oKKjAnDv >>538 何で実装するかにも依る swiftやrubyだと100行オーダーで書けるらしい http://xavier.hateblo.jp/entry/2014/08/19/003609 C実装だと2000行くらいみたい https://github.com/kototama/kml http://mevius.5ch.net/test/read.cgi/tech/1405822579/540
541: デフォルトの名無しさん [sage] 2016/04/30(土) 16:03:06.15 ID:ASEjigO2 行というかWin32で20KByteコアのそこそこ速いScheme処理系はCで作ったな 何行だったかは忘れたが数千行にはなる ライブラリやフレームワークにどこまで対応するかだと毎回思う http://mevius.5ch.net/test/read.cgi/tech/1405822579/541
542: デフォルトの名無しさん [] 2016/04/30(土) 17:51:48.40 ID:iJVuG7iJ 自作コンパイラでソフト作ろうとすると、やたらコアを吐くことに...。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/542
543: デフォルトの名無しさん [sage] 2016/04/30(土) 19:28:20.97 ID:wSqWni75 >>542 selfビルド可能になれば普通じゃ無いの?>>core吐かせてバイナリ生成 http://mevius.5ch.net/test/read.cgi/tech/1405822579/543
544: デフォルトの名無しさん [] 2016/05/01(日) 13:17:14.33 ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラは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 http://mevius.5ch.net/test/read.cgi/tech/1405822579/544
545: デフォルトの名無しさん [sage] 2016/05/01(日) 17:25:31.50 ID:EieRhQfe スレ違いだから他所でやって http://mevius.5ch.net/test/read.cgi/tech/1405822579/545
546: デフォルトの名無しさん [sage] 2016/05/01(日) 21:43:24.13 ID:EieRhQfe バイトコードのはずだったのに気づいたら 関数オブジェクトのツリーを作ってた なにやってんだ俺・・・ http://mevius.5ch.net/test/read.cgi/tech/1405822579/546
547: デフォルトの名無しさん [] 2016/05/03(火) 02:36:10.72 ID:sSslXsw5 自作ソフトの暴走はたまにあるが、自作コンパイラの暴走はヤバイよな。 それで別のソフトを作成した日には、最悪の結果が待つことに...。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/547
548: デフォルトの名無しさん [sage] 2016/05/04(水) 02:55:51.64 ID:ug5Kipfy function(機能)はrole(役割)にしよう flowとかprocと悩んだがroleが一番良いと思う http://mevius.5ch.net/test/read.cgi/tech/1405822579/548
549: デフォルトの名無しさん [] 2016/05/04(水) 03:53:55.73 ID:INW31x/s 昔のC言語みたいに、floatとdoubleに分けるメリットは、 今の時代にはないよな? http://mevius.5ch.net/test/read.cgi/tech/1405822579/549
550: デフォルトの名無しさん [sage] 2016/05/04(水) 03:59:22.27 ID:NIqCX6OH むしろ half の出番さえ出てきてる時代。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/550
551: デフォルトの名無しさん [sage] 2016/05/04(水) 10:09:50.25 ID:wjUC1pj0 役割っていうのは受動的な考え方であり縦割り行政的でありfunctionの適切な代替表現ではない roleは与えられた仕事をただこなすだけというイメージ このとき、与えられる対象、つまりデータやオブジェクトがあり 担当個所をroleするという感じ role ≒ class であり、role ≠ function 何にも縛られず自由なfunctionとroleでは思想が違う functionは立場や部署間を飛び越えて連携して機能するイメージ 胸熱であり、自分の仕事をこなすだけのroleなどと一緒にされては困る function( a, b, c, d ); a.role( b, c, d ); http://mevius.5ch.net/test/read.cgi/tech/1405822579/551
552: デフォルトの名無しさん [sage] 2016/05/04(水) 10:16:54.82 ID:wjUC1pj0 例えば、日本は縦割り行政的であり、役人的であると言われ(role) 一方で、アメリカは横のつながりが強く、機能的だと言われる(function) このように、機能と役割は対立する概念として扱われている言葉であり、思想が違う 日本の映画やドラマなんかでよく 「それは自分の仕事じゃないのでやりません」とか 逆に「自分たちの管轄だから余所者は入ってくるな」とか 役割的発想は悪いことのように扱われるのが常 逆に主人公たちは部署間を飛び越えて機能的に行動すると決まっている http://mevius.5ch.net/test/read.cgi/tech/1405822579/552
553: デフォルトの名無しさん [sage] 2016/05/04(水) 12:07:39.94 ID:p+LvbHBp もうちょっとプログラマ的喩えにしようぜ。 procedure=大域環境に対して参照と破壊をするもの function=環境を参照せず、戻り値は引数にのみ依存するもの closure=固有の環境を持ち、その環境に対して参照と破壊をするもの どれも意味が違う。 functionとroleはクラスとインスタンスくらい意味が違うと思う。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/553
554: デフォルトの名無しさん [sage] 2016/05/04(水) 23:28:44.89 ID:wjUC1pj0 歯車でいえば 複数の歯車が上手く連携して動いている様を機能していると言うし 個々の歯車に着目してそれぞれが自分の仕事をしている様を役割をこなしているという 手続き的に時系列に沿って考えると 個々が役割を果たした結果、全体として機能がもたらされて、また別の大きな役割を担う・・・という風に 卵が先か鶏が先か、みたいなところがあって、双方の視点はどちらも重要で 同時に扱ていかなければならないわけだけど 区別して扱われる別の視点であり、function = roleとしてしまうのは単純にセンスないというか早合点 functionとroleの考え方の微妙な違いは非常に重要で 最初の出発点が違うことで資本主義と社会主義など、時としては戦争が起こる場合もある (つまりは、資本主義と社会主義は鶏が先か卵が先か、functionが先かroleがという思想の違い functionはまさに空気のようなもので、人と人をつないで機能させるお金を重視している roleはまさに人そのもの、その役割に主体を置いている) functionをroleと言ってしまうのは教養がないと言われても仕方がない 自分の思考が今何に着目していて何を考えているか把握しておかないと大変なことになる 頭がよくなりたければ囲碁が良い 囲碁は碁石そのものにも着目しなければならないし、碁石と碁石の境界にも着目しなければならない それぞれで見え方が全く変わってくるし、同時に考えなければならない 頭の体操に良い 「物」と「事」は別のものだけど、「物事」という言葉があるように同時に考えなければならないこともしばしば http://mevius.5ch.net/test/read.cgi/tech/1405822579/554
555: デフォルトの名無しさん [sage] 2016/05/04(水) 23:40:58.82 ID:ug5Kipfy 関数ってそんなに抽象的な意味を持ってたのか インプット&アウトプット、リクエスト&レスポンスの手続きくらいに見てたよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/555
556: デフォルトの名無しさん [sage] 2016/05/05(木) 00:33:21.20 ID:dh4q1EnN 関数は二者以上の関係を表しており、二者以上の関係性が何か機能をもたらす というより、逆算して、機能をもたらせるように、二者以上の関係性を作るのがエンジニアの仕事 だから関数もfunctionだし、機能もfunctionという 電子部品だって、回路を組んで組み合わせなければ機能しない 「関」という字が示すように、関係性は何事においても常に重要で 数学や物理はすべて関係性を数式で表すことで成り立っている 「1」という数字が何か意味を持っているというよりは、「1」と他の数字との関係性が「1」自身の立場や性質を決めている 関係性は非常に高等で、目に見えないものであるが故、尊いものとされている というのも物事の関係性を紐解いたり、逆に利用できたり、機能的に考えることができる人は 当然、役割的思考も出来るものとされているから 役割的発想は馬鹿にでもできる アメリカが赤のことを悪とするのもこのためで、そいうった悪の思想から自分たちを守るために 右翼の人たちは「保守」と呼ばれる 赤の思想のほうが理解しやすく馬鹿でも少年でもわかり 簡単で広まりやすいので、自分たちの尊い考え方や社会を 守らなければ、占領されてしまうという恐怖感からある種過剰な防衛をしている 年を取れば自然と物事の関係性の重要さに気付くものだから基本保守になる そういったことを一通り分かったうえであえて福祉にも力を入れるというのが今の先進国のあり方 順番を誤ってはいけない 会社でいえば自分の役割しかしない人は指示待ち人間といわれ歓迎されない 一方で機能的に考える人は他者とのコミュニケーションを図り、関係を大事にし、目的を達成する努力をする 両方の考え方ができる人は機能的発想に加えて他者への配慮もするし、リーダー的 何事も一つの思想だけでどうにかしようとしないほうが良い 例えば「1」をオブジェクトとしてとらえるという、某言語のような考え方は全くする必要ない 数学の「1」にそのような意味はないし、全てをオブジェクトとして再認識して再構築する必要はなく マルチパラダイム言語で良い 1+2は単に1と2を足すという解釈でよく、1に+2というメッセージをどうのこうのという意味不明な再解釈はいらない 考え方を統一しようとする必要はなく、そういった偏った思想をしても良いことはない http://mevius.5ch.net/test/read.cgi/tech/1405822579/556
557: デフォルトの名無しさん [sage] 2016/05/05(木) 01:08:08.43 ID:dh4q1EnN アメリカは自由自由いつも言ってるが、いったい何に対しての自由なのか、 どこを目指しているのかというと 自分が生まれながら背負ったroleから自由である、ということ この辺、人種差別の問題とか貧困の問題とかが出てくる 一方で、社会に対する自分の機能性のようなものは常に非常に重視される 要らなくなったらすぐに首を切られるし、厳しい とにかく機能機能機能機能、個人に対して厳しい、機能性のない人はいりません しかし、生まれ持ったroleからの自由はサポートしましょう その意味で、移民は受け入れる、ただし機能性のある人だけ http://mevius.5ch.net/test/read.cgi/tech/1405822579/557
558: デフォルトの名無しさん [sage] 2016/05/05(木) 01:19:48.20 ID:AqKMDGmp この長文君きもちわるい… http://mevius.5ch.net/test/read.cgi/tech/1405822579/558
559: デフォルトの名無しさん [sage] 2016/05/05(木) 01:42:26.59 ID:3/paarxc >>553 ぼくの作ってるものは偽C言語でグローバル変数もあるから 定義的にはプロシージャが適切なんだろうな それでロールについてはもう少し考えてみるつもりだけど、 malloc()そのものがfunctionとして、malloc()を何につかうのかがroleなのかな けれど関数の多くはライブラリとかAPIではなく単なるサブルーチンのような気がして サブルーチンはロールだとも思うのよね http://mevius.5ch.net/test/read.cgi/tech/1405822579/559
560: デフォルトの名無しさん [sage] 2016/05/05(木) 02:12:56.28 ID:Jo4WiHb1 単に役割って意味なら、変数にだってそれぞれの役割があるよね。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/560
561: デフォルトの名無しさん [sage] 2016/05/05(木) 05:12:54.36 ID:qzGbsflZ 相手するなよ... http://mevius.5ch.net/test/read.cgi/tech/1405822579/561
562: デフォルトの名無しさん [] 2016/05/06(金) 09:34:30.45 ID:pdJO182a 最適化をサポートする機能を付けるのも、面倒だよね。 昔のVC++の売り文句が、「極限までの最適化」などとうたっていたが、 ビルドの時間も長すぎ、他の作業が中断...というオチ付きだったし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/562
563: デフォルトの名無しさん [sage] 2016/05/06(金) 09:52:38.91 ID:WbxBcPoP 神聖なるビルド専用マシンを他の作業に使うのがおかしい 現在だって動画のレンダリングする連中はそんな感じだろう http://mevius.5ch.net/test/read.cgi/tech/1405822579/563
564: デフォルトの名無しさん [] 2016/05/07(土) 02:02:54.76 ID:lPvt8ROe ウチの勤め先には、ビルド専用マシンはなかったな。うらやましい。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/564
565: デフォルトの名無しさん [sage] 2016/05/07(土) 12:49:01.06 ID:TEQEM2qu GoogleにはGOMAって名前のビルド専用クラスタ(2〜300台くらい繋げた奴)があるってよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/565
566: デフォルトの名無しさん [sage] 2016/05/07(土) 14:21:44.92 ID:0EiVc3To そして各チームは一台でも多くのマシンリソースを確保するため 他チームの保有区域への侵略に明け暮れているという http://mevius.5ch.net/test/read.cgi/tech/1405822579/566
567: デフォルトの名無しさん [sage] 2016/05/08(日) 10:02:36.39 ID:jHRrSElx >>565 クラウドサービス提供するぐらいだからマシンあまってんだろうなぁ http://mevius.5ch.net/test/read.cgi/tech/1405822579/567
568: デフォルトの名無しさん [] 2016/05/08(日) 13:05:39.75 ID:EAH4Xwpx 俺の予想では、Googleやマイクロソフトに太刀打ちできるIT企業って、 日本国内にはないような気がする。 社員か誰かが遊び半分みたいな感じで作り上げた「Googleパックマン」 には、参ってしまったからな。あれは凄かった。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/568
569: デフォルトの名無しさん [sage] 2016/05/08(日) 13:17:39.53 ID:EkxZMrhh >>568 日本どころか全世界でみてもAppleくらいしかいねぇよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/569
570: デフォルトの名無しさん [sage] 2016/05/08(日) 13:26:01.54 ID:cY3IZjLs DeNA/GREE ほほう dwango なかなか CookPad おもしろそうな DMM 話じゃないか http://mevius.5ch.net/test/read.cgi/tech/1405822579/570
571: デフォルトの名無しさん [] 2016/05/08(日) 13:27:27.42 ID:cY3IZjLs >>569 Amazon「…」 http://mevius.5ch.net/test/read.cgi/tech/1405822579/571
572: デフォルトの名無しさん [sage] 2016/05/08(日) 21:29:02.01 ID:mw6lNm2M 囲碁のSmart Go Formatというのをパースしたいのですが 読みやすいサンプルプログラムないですか。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/572
573: デフォルトの名無しさん [sage] 2016/05/08(日) 22:54:46.20 ID:EkxZMrhh http://senseis.xmp.net/?SGFFile http://mevius.5ch.net/test/read.cgi/tech/1405822579/573
574: 572 [sage] 2016/05/09(月) 19:17:09.28 ID:QYIZFGji ありがとうございます。 読んでみます。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/574
575: 572 [sage] 2016/05/09(月) 20:40:18.09 ID:QYIZFGji RubyGemあんのか。 うまくいけば自分で書かなくてもイケるかも。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/575
576: デフォルトの名無しさん [] 2016/05/10(火) 13:55:45.68 ID:aTks4HJk うちみたいに規模が小さいと、データセンターも活用するしか 手がないね。自前のデータセンターなど、夢のまた夢だ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/576
577: デフォルトの名無しさん [] 2016/05/13(金) 11:38:51.94 ID:6Wa+P3Ox ビルド専用マシンがあるなら、テスト専用マシンもないとおかしいよね。 共にあるのがソフトハウスの標準なの? うちでは、とてもそこまでの予算をつけてもらえないのだが。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/577
578: デフォルトの名無しさん [sage] 2016/05/14(土) 01:19:35.08 ID:spK37znF 投資に見合うリターンがあれば普通は投資するだろう。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/578
579: デフォルトの名無しさん [] 2016/05/14(土) 02:25:57.07 ID:guvuQQ9l ビルド兼テストマシンなら普通にある http://mevius.5ch.net/test/read.cgi/tech/1405822579/579
580: デフォルトの名無しさん [sage] 2016/05/14(土) 03:51:37.38 ID:9OGuGONK >>577 できたてほやほやの会社で開発が二人しか無い我が社なんかなんもないぞw awsをスポットで借りると割と安いビルド環境作れるからそういうの使ってるけど。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/580
581: デフォルトの名無しさん [] 2016/05/14(土) 10:30:08.43 ID:zu3iiide >>580 それじゃあ、資本金10万円の株式会社と、何ら変わらんだろww http://mevius.5ch.net/test/read.cgi/tech/1405822579/581
582: デフォルトの名無しさん [sage] 2016/05/14(土) 21:33:12.49 ID:GqFlaCrO 客先常駐の偽装派遣か? http://mevius.5ch.net/test/read.cgi/tech/1405822579/582
583: デフォルトの名無しさん [] 2016/05/16(月) 00:37:06.74 ID:HJQsGNoE DOS全盛の時代の時は、「遊び半分で、コンパクトなコンパイラでも 作ってみようかな」 という気も起きたが、これだけ複雑怪奇なWindows全盛時代となっては、 もう手軽に手を出せるレベルじゃないよね。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/583
584: デフォルトの名無しさん [sage] 2016/05/16(月) 09:26:54.72 ID:HysSRgR+ 今ならWASMターゲットでどうよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/584
585: デフォルトの名無しさん [] 2016/05/17(火) 02:22:11.57 ID:1Hk6wPoo 遊びでコンパイラを作るなら、linux用なら、作れば誰か使って くれるかも...。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/585
586: デフォルトの名無しさん [sage] 2016/05/17(火) 06:47:28.73 ID:uw1YLM9D >>583 別にコンパクトなコンパイラのハードルは上がってないと思うが 無償でほぼフルセットの開発環境が入手できる今では意味が薄れた って言うのならわかるけど http://mevius.5ch.net/test/read.cgi/tech/1405822579/586
587: デフォルトの名無しさん [sage] 2016/05/17(火) 12:49:07.23 ID:PnBEFQO4 CとかJavaから呼び出す組み込みスクリプトなら需要ありそう javascriptトランスレータはHaxeがよくできてるけど作ってみたい http://mevius.5ch.net/test/read.cgi/tech/1405822579/587
588: デフォルトの名無しさん [sage] 2016/05/20(金) 02:16:34.68 ID:t8k86oX2 >>356 Forth, Postscript「必要です」 http://mevius.5ch.net/test/read.cgi/tech/1405822579/588
589: デフォルトの名無しさん [] 2016/05/20(金) 23:34:10.65 ID:tlYSnHy5 言語仕様作成と、コンパイラ本体は自分で作り、 デバッガだけ外注して作ってもらうというズルはありえる? 高性能なツールにするには、かなり手間がかかると思うのだが。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/589
590: デフォルトの名無しさん [sage] 2016/05/21(土) 00:37:18.20 ID:jbF82omc デバッガってevalさえあれば簡単なものはできそうだが 高機能てなると難しいのかな http://mevius.5ch.net/test/read.cgi/tech/1405822579/590
591: デフォルトの名無しさん [sage] 2016/05/21(土) 10:16:04.77 ID:4qmWB+Wj その「高性能な」デバッガに何を求めてるかにも依るような。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/591
592: デフォルトの名無しさん [] 2016/05/21(土) 18:55:29.44 ID:r6iEFhaA 不具合な動作が時々あるソフトで、たまたま高性能なデバッガに 分析させたら、ソースもないのに、分析されたソフト内部のソースを 画面に表示し、 「ヌル文字列を格納するための領域に、別の文字を格納し、領域を 破壊しています」 とか何とかメッセージを出した例まであるからな。 こういうデバッガは値段が高いだろ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/592
593: デフォルトの名無しさん [sage] 2016/05/23(月) 19:41:11.89 ID:h8XB4lAi 頭悪そうだね http://mevius.5ch.net/test/read.cgi/tech/1405822579/593
594: デフォルトの名無しさん [] 2016/05/26(木) 00:28:35.77 ID:R75m14iA 予約語テーブルに、どのくらい詰め込めば良いかが悩ましい。 あまり増やしすぎると、C++と同じ道をたどるだけだし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/594
595: デフォルトの名無しさん [sage] 2016/05/26(木) 00:40:19.83 ID:SiuzFNyH C++と同じ道をたどれれば最高じゃないか http://mevius.5ch.net/test/read.cgi/tech/1405822579/595
596: デフォルトの名無しさん [sage] 2016/05/26(木) 07:23:51.59 ID:6iXHX0kN てか、C++ って機能のわりに予約語は少ない方じゃね? http://mevius.5ch.net/test/read.cgi/tech/1405822579/596
597: デフォルトの名無しさん [sage] 2016/05/27(金) 15:25:55.45 ID:xTig+h/w アンダーバー付きの予約語は嫌だ http://mevius.5ch.net/test/read.cgi/tech/1405822579/597
598: デフォルトの名無しさん [] 2016/05/27(金) 21:42:12.01 ID:DWOzzldt 俺はiostream関数も嫌だな。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/598
599: デフォルトの名無しさん [sage] 2016/05/27(金) 23:33:16.53 ID:64E4c/Qq 抽象関数に実装なし・マーカーとか、書けばわかりやすいのに、 func(){ } = 0 とか、意味不明なことをやって、キーワードを減らしている http://mevius.5ch.net/test/read.cgi/tech/1405822579/599
600: デフォルトの名無しさん [] 2016/05/31(火) 21:45:44.53 ID:0yna7kxs #include <PANAMA_PAPERS.Lib> main() { for(Datsuzei = 0; Datsuzei <= mugendai; Datsuzei++) } こんな予約語やライブラリがあれば、俺のお金も無限に増える はずなのに。消費税など、上げないでもらいたいよな。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/600
601: デフォルトの名無しさん [sage] 2016/05/31(火) 22:03:33.81 ID:TRYwrF1a お金が無限に増えたらジンバブエみたいになるぞ・・・・・・ http://mevius.5ch.net/test/read.cgi/tech/1405822579/601
602: デフォルトの名無しさん [sage] 2016/05/31(火) 22:10:48.45 ID:JlIYRfhe ジンバブエってdoubleが桁あふれしたんだっけw? http://mevius.5ch.net/test/read.cgi/tech/1405822579/602
603: デフォルトの名無しさん [sage] 2016/06/01(水) 20:32:23.48 ID:72v9yor7 COBOL使ってたから大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1405822579/603
604: デフォルトの名無しさん [sage] 2016/06/01(水) 22:55:39.98 ID:z/VHQJBB ワロタww せめてrubyにしてくだしあ http://mevius.5ch.net/test/read.cgi/tech/1405822579/604
605: デフォルトの名無しさん [] 2016/06/05(日) 02:48:48.10 ID:itWJAX/I フリーのコンパイラって、信用できる? 遊び程度でソフト作るなら良いけど、フリーだとサポートも 期待できないし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/605
606: デフォルトの名無しさん [sage] 2016/06/05(日) 03:05:17.84 ID:wHhH7979 gccもclangもjavacもc#も信用ならんって分野ももしかしたらどこかにはあるのかもな http://mevius.5ch.net/test/read.cgi/tech/1405822579/606
607: デフォルトの名無しさん [] 2016/06/05(日) 03:35:16.04 ID:itWJAX/I gnuのように、ソースが公開されていてもやばい部分もあるのかな? http://mevius.5ch.net/test/read.cgi/tech/1405822579/607
608: デフォルトの名無しさん [sage] 2016/06/05(日) 09:08:18.42 ID:n7k60ruZ 事故った時の補償の話なら先に契約で決めておくしかない どうしても必要なら補償付きのお高いメーカー製を使えばいい そこまで気にしないなら適当に人気のやつを選べばいい ただし最適化を強めにすると地雷を踏むリスクが高い http://mevius.5ch.net/test/read.cgi/tech/1405822579/608
609: デフォルトの名無しさん [sage] 2016/06/05(日) 09:10:42.69 ID:n7k60ruZ ライブラリとかOSとかに比べればコンパイラ自身のバグは極めて少ない ただし最適化を強めにすると(ry http://mevius.5ch.net/test/read.cgi/tech/1405822579/609
610: デフォルトの名無しさん [] 2016/06/05(日) 14:53:16.00 ID:D97p9ZEl 最適化有効にしてバグるのも大抵そのプログラムのバグだから http://mevius.5ch.net/test/read.cgi/tech/1405822579/610
611: デフォルトの名無しさん [sage] 2016/06/11(土) 01:39:10.14 ID:cDt3abig >>605 有料でもサポートしてもらえる範囲は限られてる http://mevius.5ch.net/test/read.cgi/tech/1405822579/611
612: デフォルトの名無しさん [] 2016/06/11(土) 06:06:42.00 ID:MaD03lMp 今考えたら昔のN88BASICも、実は凄かったんだな。 コンパイラを作りの前の基礎教養として、価値があると思う。 知識が多いほうが有利だし。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/612
613: デフォルトの名無しさん [] 2016/08/06(土) 21:46:00.33 ID:pVg13zPK グラフィックライブラリは、やたら予約語の文字数が長くてウンザリ した経験があるな。わかりやすくコンパクトな予約語で良いのに。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/613
614: デフォルトの名無しさん [sage] 2016/08/06(土) 22:54:17.43 ID:Jz+gSdkD 予約語? http://mevius.5ch.net/test/read.cgi/tech/1405822579/614
615: デフォルトの名無しさん [sage] 2016/08/22(月) 17:08:41.63 ID:oW9zLe2W 昔のBASICは名前空間みたいな整理はされてなくて ライブラリに相当する部分も予約語として扱ってたんだよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/615
616: デフォルトの名無しさん [sage] 2016/09/13(火) 22:37:20.41 ID:0YzbOJ/I HSPとかもそうだな http://mevius.5ch.net/test/read.cgi/tech/1405822579/616
617: デフォルトの名無しさん [sage] 2016/10/17(月) 13:00:51.48 ID:Vg9Wd9rs >>613 高々COLORとかPOINTでしょ? PHIGS辺りのサードパーティライブラリと勘違いしてないか それともCLSに比べたら長いって話? http://mevius.5ch.net/test/read.cgi/tech/1405822579/617
618: デフォルトの名無しさん [sage] 2016/10/17(月) 13:06:46.54 ID:Vg9Wd9rs パラメーターがダラダラ長いっていうのなら分かるんだけどな タートルグラフィック以前の設計で カレントペンオブジェクトって概念がまだないから http://mevius.5ch.net/test/read.cgi/tech/1405822579/618
619: デフォルトの名無しさん [sage] 2017/03/20(月) 21:03:09.17 ID:FgPIWm6o haskellのdo構文 http://mevius.5ch.net/test/read.cgi/tech/1405822579/619
620: デフォルトの名無しさん [] 2017/05/15(月) 00:51:21.49 ID:SFBD2YKR Amazon で「Flex & Bison」で検索したらこんなの出て来て驚いた。 http://amzn.asia/2GvBmZs http://mevius.5ch.net/test/read.cgi/tech/1405822579/620
621: デフォルトの名無しさん [sage] 2017/05/15(月) 18:24:26.90 ID:DeqHpRpX たけーなオイ http://mevius.5ch.net/test/read.cgi/tech/1405822579/621
622: デフォルトの名無しさん [] 2017/06/26(月) 19:12:09.78 ID:6CpK5SZQ >>606 実際コンパイラはソフトウェア検証の好対象 CakeMLとか http://mevius.5ch.net/test/read.cgi/tech/1405822579/622
623: デフォルトの名無しさん [sage] 2018/02/16(金) 06:02:50.68 ID:W1XJdyx1 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ http://mevius.5ch.net/test/read.cgi/tech/1405822579/623
624: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2018/03/02(金) 16:53:16.42 ID:R33psDql http://www.softantenna.com/wp/review/tiny-interepter-and-compiler/ http://mevius.5ch.net/test/read.cgi/tech/1405822579/624
625: デフォルトの名無しさん [] 2018/05/23(水) 22:10:50.46 ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 RSQUI http://mevius.5ch.net/test/read.cgi/tech/1405822579/625
626: デフォルトの名無しさん [] 2018/07/04(水) 23:52:46.72 ID:gFgZc5FG CL2 http://mevius.5ch.net/test/read.cgi/tech/1405822579/626
627: デフォルトの名無しさん [sage] 2018/07/16(月) 22:53:08.29 ID:oM74pxCP テスト😊 http://mevius.5ch.net/test/read.cgi/tech/1405822579/627
628: ◆QZaw55cn4c [sage] 2018/09/04(火) 14:52:35.77 ID:lJV/Mb/R 形式言語の祖・生成文法のチョムスキー90歳の言葉 http://www.videonews.com/marugeki-talk/908/ http://mevius.5ch.net/test/read.cgi/tech/1405822579/628
629: デフォルトの名無しさん [] 2019/03/21(木) 17:55:33.49 ID:YzD9JPpd esprima/escodegenなんかでJS ASTを扱ってる人に質問。 ASTを舐めて変数の型を推論したものをノードに紐付けて記録しておきたいんだけど、JS ASTの場合 ASTの中にメタデータをぶら下げるのと外で持つのとどっちが一般的なんだろう? 中に持つ場合はどこにどういうプロパティ名でぶら下げるか、外の場合はノードの位置を特定する パスのようなものが必要になるけどそれをどうするか。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/629
630: デフォルトの名無しさん [sage] 2021/02/24(水) 20:03:26.16 ID:1LsYaFKv test http://mevius.5ch.net/test/read.cgi/tech/1405822579/630
631: デフォルトの名無しさん [sage] 2021/06/01(火) 15:18:43.13 ID:IjgT90G7 お前ら元気か? 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 http://mevius.5ch.net/test/read.cgi/tech/1405822579/631
632: デフォルトの名無しさん [sage] 2021/06/01(火) 15:25:20.70 ID:IjgT90G7 Prologなら型システムを作るのもお手の物だ。 t(I,int):- integer(I). t(E1+E2,int):- t(E1,int), t(E2,int). :- t(1+2+3,T),!,writeln(T). :- halt. これだけ。Prologは関数というか述語のネストをできなくして 述語の引数は全てクォートとされた式のように扱われ、 変数がアンクォートな感じに書ける。 故にLispのS式より複雑な優先順位付きの演算子を使った式が扱えて便利だ。 ってことで、暇な奴がいたら使ってみて欲しいんダゼ。 じゃあなw http://mevius.5ch.net/test/read.cgi/tech/1405822579/632
633: デフォルトの名無しさん [sage] 2021/06/23(水) 07:02:20.99 ID:HYjDIJ1V Prolog興味あるけどCとかJavaとかPythonとかのメジャーどころと違って教科書みたいなアカデミックな本しか見つからないから並以下グラマの俺には無理 http://mevius.5ch.net/test/read.cgi/tech/1405822579/633
634: デフォルトの名無しさん [sage] 2021/10/13(水) 08:22:07.76 ID:Qk99MJFD 岩波のprologのプログラミング作法読んでみたら? 第5世代が成果をオープンソースに出来ていればなあ http://mevius.5ch.net/test/read.cgi/tech/1405822579/634
635: デフォルトの名無しさん [sage] 2023/07/05(水) 03:42:10.87 ID:e/cCV0Lv >>311 人は死後49日は漂うと云われているな http://mevius.5ch.net/test/read.cgi/tech/1405822579/635
636: デフォルトの名無しさん [sage] 2023/09/24(日) 11:28:47.13 ID:Iodo3XEj インタプリタの作り方 −言語設計/開発の基本と2つの方式による実装− - インプレスブックス ttps://book.impress.co.jp/books/1122101087 http://mevius.5ch.net/test/read.cgi/tech/1405822579/636
637: デフォルトの名無しさん [sage] 2023/10/06(金) 08:06:12.42 ID:NmxdZAP9 バックエンドの作り方はググれば解説が出てくるが “実用的な”バックエンドの作り方はさっぱりわからない RX用のバックエンドが欲しいんだがなー http://mevius.5ch.net/test/read.cgi/tech/1405822579/637
638: デフォルトの名無しさん [] 2023/11/11(土) 06:58:34.37 ID:uMtlBPBy double a = 2.71828; というコードをコンパイルするときに、2進浮動小数点数に変換しないといけないと思います。 2進数浮動小数点数に丸めるときに、四捨五入(0捨1入)したり、一番近い2進浮動小数点数に変換したりといろいろな方法がありますが、その方式を決定するのもコンパイラの仕事ですか? 計算機イプシロンを ε_M とします。 2進浮動小数点数に丸めるときの方式として、四捨五入(0捨1入)が採用されているかどうかを確かめる方法として、 eps = 2^(-52) 1 + (1/2) * eps を計算させて、それが 1 + eps に等しいかどうかをみるという方法が数値解析の本で紹介されています。 1 + (1/2) * eps を計算するときに、丸めとかで変な浮動小数点数になって、この紹介されている方法が実行できないとかないですか? http://mevius.5ch.net/test/read.cgi/tech/1405822579/638
639: デフォルトの名無しさん [] 2023/11/11(土) 07:01:57.70 ID:uMtlBPBy あと、 double a = 2.71828 * 3.141592; というコードがあったとき、 コンパイラは、 2.71828 を丸めた2進浮動小数点数と 3.141592 を丸めた2進浮動小数点数を掛けよという機械語に翻訳するんですか? それともこんな簡単な計算はコンパイラで予め行って、その結果を a に代入するという機械語を生成するんですか? http://mevius.5ch.net/test/read.cgi/tech/1405822579/639
640: デフォルトの名無しさん [] 2023/11/11(土) 08:35:32.43 ID:fuGMacjx double a = math.E + path.PI; http://mevius.5ch.net/test/read.cgi/tech/1405822579/640
641: デフォルトの名無しさん [] 2023/11/11(土) 08:37:19.10 ID:fuGMacjx 宿題は宿題スレへ http://mevius.5ch.net/test/read.cgi/tech/1405822579/641
642: デフォルトの名無しさん [sage] 2023/11/11(土) 11:05:25.10 ID:5AzCeqvD はい あります はい 場合によります(最適化という追加処理) http://mevius.5ch.net/test/read.cgi/tech/1405822579/642
643: デフォルトの名無しさん [age] 2025/05/12(月) 14:33:58.90 ID:Zw0HuL6G こういう言語作る系スレが廃れた原因は何だろう http://mevius.5ch.net/test/read.cgi/tech/1405822579/643
644: デフォルトの名無しさん [sage] 2025/05/12(月) 15:01:28.97 ID:zCv6/zTu >>639 そういうコードはコンパイル時に計算されて 実行時には計算結果がそのまま代入されるけど 「コンパイル時に計算」の際の浮動小数点数での計算の扱いには無頓着で良いと思ってるの? http://mevius.5ch.net/test/read.cgi/tech/1405822579/644
645: デフォルトの名無しさん [sage] 2025/05/12(月) 15:24:34.24 ID:FL+WAIid C言語にはfesetenvのような浮動小数点数プロセッサのモード切替関数もあるからな コンパイル時に計算してしまうことでそれが反映されなくなるのもそれはそれで問題になるケースがある http://mevius.5ch.net/test/read.cgi/tech/1405822579/645
646: デフォルトの名無しさん [sage] 2025/05/13(火) 09:27:05.77 ID:C/NhftFY Rustなら多い日も安心 http://mevius.5ch.net/test/read.cgi/tech/1405822579/646
647: デフォルトの名無しさん [sage] 2025/06/30(月) 18:56:31.06 ID:YQWckD/5 あれから色々勉強しましたがCoq(Rocq)での証明や Prolog で操作的意味論や型システムを書くのは楽しいです。 11年かぁ。 $ apt install swi-prolog $ vi 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,I),writeln(I). :- halt. $ swipl e.pl 10 と簡単に言語を作れるので便利だし、最近はAIがプログラム書いてくれるし便利になったなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/647
648: デフォルトの名無しさん [sage] 2025/07/12(土) 09:48:27.49 ID:tq7D7WVM 書き込み消えた気がする。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/648
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s