[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2ch.scのread.cgiへ]
Update time : 07/24 14:25 / Filesize : 172 KB / Number-of Response : 672
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

Wikiのまとめページ
www6.atwiki.jp/compilerandscriptengine/

513 名前:デフォルトの名無しさん [2016/04/21(木) 12:57:39.05 ID:DAo9Zovx.net]
エプソンのプリンターも当然、CMYKだが、
「純正を使わないと、すぐに故障する」
ような構造にしてあったよな?

あれはハードの構造でそうしているのか。コードにも、純正な否かを
判断する部分を盛り込んでいるのかどうか。

514 名前:デフォルトの名無しさん [2016/04/21(木) 19:57:24.72 ID:T4pmkcSw.net]
エプソンに限らずプリンターは色の三原色持ってるのが当たり前

515 名前:デフォルトの名無しさん [2016/04/22(金) 00:36:11.07 ID:2IHAQJXj.net]
純正インク以外で壊れやすくなるのは単に質が悪いから
プリンター本体は採算度外視でインクで儲けるビジネスモデルだったのに本体壊したら元も子もない

516 名前:デフォルトの名無しさん [2016/04/22(金) 12:06:11.49 ID:300wiAoM.net]
プリンター本体も、五年もたって故障すれば、部品製造打ち切りで
修理不能で買わざるを得ないからな。キャノンはどうか知らんが、
エプソンはそうだった。とかいって、うちの勤め先の規模では、
プリンター市場に参入出来る資金力などない。
せいぜい、大手からおこぼれで仕事をもらい、コードをいじくるしか出来ない。

517 名前:デフォルトの名無しさん [2016/04/22(金) 18:41:13.87 ID:U46HjcWC.net]
ずいぶん横道にそれているが、おまえらスクリプトつくってるのか?

518 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 20:38:22.94 ID:TT82zXSl.net]
>>496
指摘が的はずれって言われてるんだろ

519 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 20:39:29.07 ID:FoP6yTJa.net]
誰がもこみちにそれているねん!!

(´・ω・`)b

520 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 20:40:58.67 ID:FoP6yTJa.net]
>>502
スクリプト言語を利用してスクリプトを作っているという意味か?
それとも自分でスクリプト言語の仕様決めて実装設計しているということか?

521 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 21:49:45.09 ID:cAq2nbH2.net]
スレタイ嫁



522 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 23:35:58.89 ID:Eun++jyx.net]
>>505
後者の実装にスクリプト言語使っても問題はないんじゃなかろうか?

523 名前:デフォルトの名無しさん [2016/04/23(土) 07:12:36.15 ID:FJYQwL85.net]
ここで産まれたスクリプトあんの?

524 名前:デフォルトの名無しさん [2016/04/23(土) 12:40:11.44 ID:OaaA/Nov.net]
秀丸は、スクリプトを自作するときの参考になるのかね?
一応、役に立ったことは事実だが。

525 名前:デフォルトの名無しさん [2016/04/23(土) 18:35:58.00 ID:vG+aKQwy.net]
禿丸エディタを何の参考にする気だ

526 名前:デフォルトの名無しさん [2016/04/24(日) 00:18:07.79 ID:dKv+k22E.net]
秀丸は、「作業の自動化スクリプト」を書くのに便利だからな。
その仕様を元にすれば、スクリプトを自作するのに役に立つのではないかと
思ったのだが。

527 名前:デフォルトの名無しさん [2016/04/24(日) 01:48:37.36 ID:M7ZCbRga.net]
「作業の自動化スクリプト」専用のスクリプトならgradleあたりが参考に良さそうだな
ちなみに俺はantは好きだけどmavenは大嫌い

528 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 02:57:23.38 ID:ouB2BnTZ.net]
まあ秀丸はテキスト処理に特化した
自動化スクリプトの参考にはなるかもね
あれはスクリプトっていうよりマクロだけど

529 名前:デフォルトの名無しさん [2016/04/25(月) 10:50:38.19 ID:9hQeUDgV.net]
しかし秀丸には、CやWindows APIの命令が、多数というか、
かなり含まれている感じだが。

530 名前:デフォルトの名無しさん [2016/04/25(月) 17:05:01.77 ID:lstHaTya.net]
だからなんだよって感じだが。

531 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 17:27:42.97 ID:ouB2BnTZ.net]
そのまま車輪の再発明をしてしまうと
元の秀丸を使った方が便利だから
自作スクリプトを秀丸と差別化する必要はある



532 名前:デフォルトの名無しさん [2016/04/26(火) 03:16:17.88 ID:r83feNEN.net]
そうか。秀丸に存在しない命令を考えなければならないな。

533 名前:デフォルトの名無しさん [2016/04/27(水) 00:31:37.93 ID:Toh8P/+A.net]
相変わらず手書きパーサー書いてるが、できるだけ1発でパースしつつ(LR法?)
外側から順に何度も段階分けながらパースする(LL法?)なコードも混じってる…
意味解析までたどり着くまでで力尽きそうw

534 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 06:02:05.40 ID:vmi3tpS2.net]
よほどの理由がないなら手書きなんかやめといた方が

Bison GLR 使ってた時は不自由さがなくてよかった
semantic predicate 機能は成熟しただろうか

535 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 07:02:50.92 ID:h/kgFFlp.net]
趣味でやってるんだろ
ほっといてやれや

536 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 11:26:55.96 ID:9/2UzNftp]
手書きは面倒だけど柔軟性あるし速いので、有名な言語でも採用してる所は多い気がする。

537 名前:デフォルトの名無しさん [2016/04/27(水) 23:38:58.25 ID:Toh8P/+A.net]
手書きパーサー製作も残すは四則演算&関数呼び出しとなったが
ツリーの形状はこんな感じで良いのだろうか?
https://pastebin.mozilla.org/8868990

>>519
本よむところから始めるのはしんどいのでな・・・

538 名前:デフォルトの名無しさん [2016/04/28(木) 00:23:38.80 ID:mWNt94gr.net]
関数呼び出しだとこれでいけそう
https://pastebin.mozilla.org/8868995

小さな計算でもツリーが深くなってnew()するノードの数がもりもり増えるけど
何かもっと良い方法あったら教えてちょ

539 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 12:59:47.77 ID:Jc879At1.net]
手書きパーサなら
木構造にせずに操車場アルゴリズムかその亜種でLL(1)するのも手だぞ。

文法と文をそれぞれ入力したらテーブル作ってLR(1)するクラスを作るって手もあるけど
大真面目に書いてc++で500行〜1000行くらいにはなったと思う。

540 名前:デフォルトの名無しさん [2016/04/28(木) 14:16:09.66 ID:7cooGRk/.net]
lexとyaccは、既存のものを使うべきか、自作すべきか、悩ましいね。

541 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 15:44:59.86 ID:Jc879At1.net]
yaccは、やる気と暇があるなら
どういう文法なら曖昧性が無いか、とか、shift/reduce conflictとdangling elseとは何か、とか
いろんな事についてよく理解できるようになるって点で一度試しに書いてみる事をお勧めしたい
今までに俺が余暇でC実装した名の付いたアルゴリズムの内だとかなり難しい部類に入るけどな。

lexは文法全く固まって



542 名前:ネいなら使ったらどう?って程度じゃない?
割と簡単に使えるけど、同じくらいとは言わないものの簡単に自作できるし
ASCII範囲の文字は簡単に指定できるけどUnicodeなんかに対応する為にカスタムコードを挟むなら普通に全部組んだほうが楽な事もあるし。
[]
[ここ壊れてます]

543 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 15:46:10.30 ID:Jc879At1.net]
個人的にはPEGが気になるのですよー

544 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 18:30:43.97 ID:FI1Tv7gT.net]
コンパイラを作るはずがコンパイラジェネレーター作りがメインになってしまう不思議

545 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 18:36:57.28 ID:Jc879At1.net]
そして思うのだ

コンパイラジェネレータを書くのに向いてる言語とは・・・・・・

546 名前:デフォルトの名無しさん mailto:sage [2016/04/28(木) 22:17:59.57 ID:mWNt94gr.net]
>>524
そうだな。ここだけツリーにしないで、再帰関数で直接出力すれば良さそうだ

547 名前:デフォルトの名無しさん [2016/04/29(金) 05:30:33.58 ID:o23yQzXI.net]
バイトコードのテキストを読み込んだら
バイトコードの1行と対の関係になる命令ノードを
行数だけ配列にして上から順に実行するイメージであってる?

なんか構文木のまま実行するのと大して変わらない気がするけど
メモリの節約とかどうなんだろう

548 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 10:04:10.82 ID: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 名前:デフォルトの名無しさん [2016/04/29(金) 13:14:44.61 ID:mG1yRheY.net]
コンパイラ作りって、インタプリタよりも、10倍の労力がかかるよな。

550 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 15:48:32.50 ID:qwAEwLKu.net]
この辺はlispやschemeで思索しながらやると楽なんだよ

551 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 17:57:56.98 ID:ZvoRtCQG.net]
コード生成の方は関数型の基礎だけでもやってないとかえって遠回りに



552 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 20:10:00.50 ID:YATvpu7C.net]
>>534
最終的になんで苦労してまで構文木をSchemeで生成するんだろう?っておもって結局そのままLispのMacroに化けるのである(割とマジで)
Lisperが他の言語取得者のタメにDSLを組むことはあってもLisperはLispのママ扱う方がよかったりするのよね。

553 名前:デフォルトの名無しさん [2016/04/29(金) 21:15:38.47 ID:o23yQzXI.net]
>>532
ありがたい。メモリが4倍くらい節約できるのね
もしかしたら構文木のまま動かした方が動的ロードで
面白いことが簡単に実現できるんじゃないかと迷ってたけど(evalとか)
パフォーマンスではバイトコードがかなり強力なのね

554 名前:デフォルトの名無しさん [2016/04/29(金) 23:41:20.66 ID:o23yQzXI.net]
>>532
>バイトコードならアセンブル(バイナリ化)しておかないか普通
たしかに普通は読み込み速度的にバイナリデータが望ましいのだけど、
手さぐりで試作するからメモ帳で読み書きできるテキスト形式でやってみるんだ

555 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 01:17:44.44 ID:oV2mml7H.net]
lispインタプリタって一番簡単な実装(pure lisp?)だと何行くらいで実装できる?

556 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 07:15:19.54 ID:wSqWni75.net]
>>539
基本関数だけならものすごい小さいよ
Lispが生まれた時代のマシンのメモリ量なんてアドレスのビット数が16以下だし。

557 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 10:02:54.88 ID:oKKjAnDv.net]
>>539
何で実装するかにも依る

swiftやrubyだと100行オーダーで書けるらしい
xavier.hateblo.jp/entry/2014/08/19/003609

C実装だと2000行くらいみたい
https://github.com/kototama/kml

558 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 16:03:06.15 ID:ASEjigO2.net]
行というかWin32で20KByteコアのそこそこ速いScheme処理系はCで作ったな
何行だったかは忘れたが数千行にはなる
ライブラリやフレームワークにどこまで対応するかだと毎回思う

559 名前:デフォルトの名無しさん [2016/04/30(土) 17:51:48.40 ID:iJVuG7iJ.net]
自作コンパイラでソフト作ろうとすると、やたらコアを吐くことに...。

560 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 19:28:20.97 ID:wSqWni75.net]
>>543
selfビルド可能になれば普通じゃ無いの?>>core吐かせてバイナリ生成

561 名前:デフォルトの名無しさん [2016/05/01(日) 13:17:14.33 ID:tKi6j9CT.net]
匿名通信(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的に分散され、特定のサーバーに依存しません




562 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 17:25:31.50 ID:EieRhQfe.net]
スレ違いだから他所でやって

563 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 21:43:24.13 ID:EieRhQfe.net]
バイトコードのはずだったのに気づいたら
関数オブジェクトのツリーを作ってた
なにやってんだ俺・・・

564 名前:デフォルトの名無しさん [2016/05/03(火) 02:36:10.72 ID:sSslXsw5.net]
自作ソフトの暴走はたまにあるが、自作コンパイラの暴走はヤバイよな。
それで別のソフトを作成した日には、最悪の結果が待つことに...。

565 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 02:55:51.64 ID:ug5Kip ]
[ここ壊れてます]

566 名前:fy.net mailto: function(機能)はrole(役割)にしよう
flowとかprocと悩んだがroleが一番良いと思う
[]
[ここ壊れてます]

567 名前:デフォルトの名無しさん [2016/05/04(水) 03:53:55.73 ID:INW31x/s.net]
昔のC言語みたいに、floatとdoubleに分けるメリットは、
今の時代にはないよな?

568 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 03:59:22.27 ID:NIqCX6OH.net]
むしろ half の出番さえ出てきてる時代。

569 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 10:09:50.25 ID:wjUC1pj0.net]
役割っていうのは受動的な考え方であり縦割り行政的でありfunctionの適切な代替表現ではない
roleは与えられた仕事をただこなすだけというイメージ
このとき、与えられる対象、つまりデータやオブジェクトがあり
担当個所をroleするという感じ
role ≒ class であり、role ≠ function

何にも縛られず自由なfunctionとroleでは思想が違う
functionは立場や部署間を飛び越えて連携して機能するイメージ
胸熱であり、自分の仕事をこなすだけのroleなどと一緒にされては困る

function( a, b, c, d );
a.role( b, c, d );

570 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 10:16:54.82 ID:wjUC1pj0.net]
例えば、日本は縦割り行政的であり、役人的であると言われ(role)
一方で、アメリカは横のつながりが強く、機能的だと言われる(function)
このように、機能と役割は対立する概念として扱われている言葉であり、思想が違う

日本の映画やドラマなんかでよく
「それは自分の仕事じゃないのでやりません」とか
逆に「自分たちの管轄だから余所者は入ってくるな」とか
役割的発想は悪いことのように扱われるのが常
逆に主人公たちは部署間を飛び越えて機能的に行動すると決まっている

571 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 12:07:39.94 ID:p+LvbHBp.net]
もうちょっとプログラマ的喩えにしようぜ。

procedure=大域環境に対して参照と破壊をするもの
function=環境を参照せず、戻り値は引数にのみ依存するもの
closure=固有の環境を持ち、その環境に対して参照と破壊をするもの
どれも意味が違う。

functionとroleはクラスとインスタンスくらい意味が違うと思う。



572 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 23:28:44.89 ID:wjUC1pj0.net]
歯車でいえば
複数の歯車が上手く連携して動いている様を機能していると言うし
個々の歯車に着目してそれぞれが自分の仕事をしている様を役割をこなしているという

手続き的に時系列に沿って考えると
個々が役割を果たした結果、全体として機能がもたらされて、また別の大きな役割を担う・・・という風に
卵が先か鶏が先か、みたいなところがあって、双方の視点はどちらも重要で
同時に扱ていかなければならないわけだけど
区別して扱われる別の視点であり、function = roleとしてしまうのは単純にセンスないというか早合点
functionとroleの考え方の微妙な違いは非常に重要で
最初の出発点が違うことで資本主義と社会主義など、時としては戦争が起こる場合もある
(つまりは、資本主義と社会主義は鶏が先か卵が先か、functionが先かroleがという思想の違い
 functionはまさに空気のようなもので、人と人をつないで機能させるお金を重視している
 roleはまさに人そのもの、その役割に主体を置いている)
functionをroleと言ってしまうのは教養がないと言われても仕方がない
自分の思考が今何に着目していて何を考えているか把握しておかないと大変なことになる
頭がよくなりたければ囲碁が良い
囲碁は碁石そのものにも着目しなければならないし、碁石と碁石の境界にも着目しなければならない
それぞれで見え方が全く変わってくるし、同時に考えなければならない
頭の体操に良い
「物」と「事」は別のものだけど、「物事」という言葉があるように同時に考えなければならないこともしばしば

573 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 23:40:58.82 ID:ug5Kipfy.net]
関数ってそんなに抽象的な意味を持ってたのか
インプット&アウトプット、リクエスト&レスポンスの手続きくらいに見てたよ

574 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 00:33:21.20 ID:dh4q1EnN.net]
関数は二者以上の関係を表しており、二者以上の関係性が何か機能をもたらす
というより、逆算して、機能をもたらせるように、二者以上の関係性を作るのがエンジニアの仕事
だから関数もfunctionだし、機能もfunctionという
電子部品だって、回路を組んで組み合わせなければ機能しない
「関」という字が示すように、関係性は何事においても常に重要で
数学や物理はすべて関係性を数式で表すことで成り立っている
「1」という数字が何か意味を持っているというよりは、「1」と他の数字との関係性が「1」自身の立場や性質を決めている
関係性は非常に高等で、目に見えないものであるが故、尊いものとされている
というのも物事の関係性を紐解いたり、逆に利用できたり、機能的に考えることができる人は
当然、役割的思考も出来るものとされているから
役割的発想は馬鹿にでもできる
アメリカが赤のことを悪とするのもこのためで、そいうった悪の思想から自分たちを守るために
右翼の人たちは「保守」と呼ばれる
赤の思想のほうが理解しやすく馬鹿でも少年でもわかり
簡単で広まりやすいので、自分たちの尊い考え方や社会を
守らなければ、占領されてしまうという恐怖感からある種過剰な防衛をしている
年を取れば自然と物事の関係性の重要さに気付くものだから基本保守になる
そういったことを一通り分かったうえであえて福祉にも力を入れるというのが今の先進国のあり方
順番を誤ってはいけない

会社でいえば自分の役割しかしない人は指示待ち人間といわれ歓迎されない
一方で機能的に考える人は他者とのコミュニケーションを図り、関係を大事にし、目的を達成する努力をする
両方の考え方ができる人は機能的発想に加えて他者への配慮もするし、リーダー的

何事も一つの思想だけでどうにかしようとしないほうが良い
例えば「1」をオブジェクトとしてとらえるという、某言語のような考え方は全くする必要ない
数学の「1」にそのような意味はないし、全てをオブジェクトとして再認識して再構築する必要はなく
マルチパラダイム言語で良い
1+2は単に1と2を足すという解釈でよく、1に+2というメッセージをどうのこうのという意味不明な再解釈はいらない
考え方を統一しようとする必要はなく、そういった偏った思想をしても良いことはない

575 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 01:08:08.43 ID:dh4q1EnN.net]
アメリカは自由自由いつも言ってるが、いったい何に対しての自由なのか、
どこを目指しているのかというと
自分が生まれながら背負ったroleから自由である、ということ
この辺、人種差別の問題とか貧困の問題とかが出てくる

一方で、社会に対する自分の機能性のようなものは常に非常に重視される
要らなくなったらすぐに首を切られるし、厳しい

とにかく機能機能機能機能、個人に対して厳しい、機能性のない人はいりません
しかし、生まれ持ったroleからの自由はサポートしましょう

その意味で、移民は受け入れる、ただし機能性のある人だけ

576 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 01:19:48.20 ID:AqKMDGmp.net]
この長文君きもちわるい…

577 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 01:42:26.59 ID:3/paarxc.net]
>>554
ぼくの作ってるものは偽C言語でグローバル変数もあるから
定義的にはプロシージャが適切なんだろうな

それでロールについてはもう少し考えてみるつもりだけど、
malloc()そのものがfunctionとして、malloc()を何につかうのかがroleなのかな
けれど関数の多くはライブラリとかAPIではなく単なるサブルーチンのような気がして
サブルーチンはロールだとも思うのよね

578 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 02:12:56.28 ID:Jo4WiHb1.net]
単に役割って意味なら、変数にだってそれぞれの役割があるよね。

579 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 05:12:54.36 ID:qzGbsflZ.net]
相手するなよ...

580 名前:デフォルトの名無しさん [2016/05/06(金) 09:34:30.45 ID:pdJO182a.net]
最適化をサポートする機能を付けるのも、面倒だよね。
昔のVC++の売り文句が、「極限までの最適化」などとうたっていたが、
ビルドの時間も長すぎ、他の作業が中断...というオチ付きだったし。

581 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 09:52:38.91 ID:WbxBcPoP.net]
神聖なるビルド専用マシンを他の作業に使うのがおかしい

現在だって動画のレンダリングする連中はそんな感じだろう



582 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 19:11:06.89 ID:5HLOeR1MW]
どこの解説サイト見ても構文木の枝は最大二本にしか分かれないだけど、
二本以上の枝で根や葉を管理しても問題ないよね?

こんな感じのデータ構造にしたいんだけど。
class ForStmtNode : Node { Node init, cond, inc, body; }

こうしちゃいけない理由でもあるのかな。

583 名前:デフォルトの名無しさん [2016/05/07(土) 02:02:54.76 ID:lPvt8ROe.net]
ウチの勤め先には、ビルド専用マシンはなかったな。うらやましい。

584 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:49:01.06 ID:TEQEM2qu.net]
GoogleにはGOMAって名前のビルド専用クラスタ(2〜300台くらい繋げた奴)があるってよ

585 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 14:21:44.92 ID:0EiVc3To.net]
そして各チームは一台でも多くのマシンリソースを確保するため
他チームの保有区域への侵略に明け暮れているという

586 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 18:52:54.52 ID:IlJOE3r59]
>>565
無いよー
でも、なんか勘違いしてる気がする

587 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 22:38:35.98 ID:hfPhBXdU5]
>>569
本当だ、これだと抽象構文木だね。

class ForStmtNode : Node { List<Node> children; }
とりあえずこれでいいってことだね。

588 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 10:02:36.39 ID:jHRrSElx.net]
>>567
クラウドサービス提供するぐらいだからマシンあまってんだろうなぁ

589 名前:デフォルトの名無しさん [2016/05/08(日) 13:05:39.75 ID:EAH4Xwpx.net]
俺の予想では、Googleやマイクロソフトに太刀打ちできるIT企業って、
日本国内にはないような気がする。
社員か誰かが遊び半分みたいな感じで作り上げた「Googleパックマン」
には、参ってしまったからな。あれは凄かった。

590 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 13:17:39.53 ID:EkxZMrhh.net]
>>572
日本どころか全世界でみてもAppleくらいしかいねぇよ

591 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 13:26:01.54 ID:cY3IZjLs.net]
DeNA/GREE ほほう
dwango なかなか
CookPad おもしろそうな
DMM 話じゃないか



592 名前:デフォルトの名無しさん [2016/05/08(日) 13:27:27.42 ID:cY3IZjLs.net]
>>573
Amazon「…」

593 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 21:29:02.01 ID:mw6lNm2M.net]
囲碁のSmart Go Formatというのをパースしたいのですが
読みやすいサンプルプログラムないですか。

594 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 22:54:46.20 ID:EkxZMrhh.net]
senseis.xmp.net/?SGFFile

595 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 00:01:18.08 ID:VGqIwUSF4]
字句解析→構文木→抽象構文木
の順で解析することが多いと思うんだけど

字句解析→抽象構文木
の順でLexerからトークン読みながら一気にATS作るのってどうなのかな。

処理スピードやメモリ効率はかなり良くなる気がするんだけど。

596 名前:572 mailto:sage [2016/05/09(月) 19:17:09.28 ID:QYIZFGji.net]
ありがとうございます。
読んでみます。

597 名前:572 mailto:sage [2016/05/09(月) 20:40:18.09 ID:QYIZFGji.net]
RubyGemあんのか。
うまくいけば自分で書かなくてもイケるかも。

598 名前:デフォルトの名無しさん [2016/05/10(火) 13:55:45.68 ID:aTks4HJk.net]
うちみたいに規模が小さいと、データセンターも活用するしか
手がないね。自前のデータセンターなど、夢のまた夢だ。

599 名前:デフォルトの名無しさん [2016/05/13(金) 11:38:51.94 ID:6Wa+P3Ox.net]
ビルド専用マシンがあるなら、テスト専用マシンもないとおかしいよね。
共にあるのがソフトハウスの標準なの?
うちでは、とてもそこまでの予算をつけてもらえないのだが。

600 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 01:19:35.08 ID:spK37znF.net]
投資に見合うリターンがあれば普通は投資するだろう。

601 名前:デフォルトの名無しさん [2016/05/14(土) 02:25:57.07 ID:guvuQQ9l.net]
ビルド兼テストマシンなら普通にある



602 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 03:51:37.38 ID:9OGuGONK.net]
>>582
できたてほやほやの会社で開発が二人しか無い我が社なんかなんもないぞw
awsをスポットで借りると割と安いビルド環境作れるからそういうの使ってるけど。

603 名前:デフォルトの名無しさん [2016/05/14(土) 10:30:08.43 ID:zu3iiide.net]
>>585
それじゃあ、資本金10万円の株式会社と、何ら変わらんだろww

604 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 21:33:12.49 ID:GqFlaCrO.net]
客先常駐の偽装派遣か?

605 名前:デフォルトの名無しさん [2016/05/16(月) 00:37:06.74 ID:HJQsGNoE.net]
DOS全盛の時代の時は、「遊び半分で、コンパクトなコンパイラでも
作ってみようかな」
という気も起きたが、これだけ複雑怪奇なWindows全盛時代となっては、
もう手軽に手を出せるレベルじゃないよね。

606 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 09:26:54.72 ID:HysSRgR+.net]
今ならWASMターゲットでどうよ

607 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 20:25:52.51 ID:1m5lkdv7T]
>>578
なんかアレだが、
パーサの出力を抽象構文木にすることは大変ではない。
勿論、具象構文木で出すこともできるが
逆に手間がかかるので理由がない限りしない。

608 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 22:26:29.32 ID:kgWFY/O22]
通常の構文木も作っておかないと、デバッカに対応する時やエラーメッセージを出す時に困るかも。

609 名前:デフォルトの名無しさん [2016/05/17(火) 02:22:11.57 ID:1Hk6wPoo.net]
遊びでコンパイラを作るなら、linux用なら、作れば誰か使って
くれるかも...。

610 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 06:47:28.73 ID:uw1YLM9D.net]
>>588
別にコンパクトなコンパイラのハードルは上がってないと思うが
無償でほぼフルセットの開発環境が入手できる今では意味が薄れた
って言うのならわかるけど

611 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 12:49:07.23 ID:PnBEFQO4.net]
CとかJavaから呼び出す組み込みスクリプトなら需要ありそう
javascriptトランスレータはHaxeがよくできてるけど作ってみたい



612 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:25:50.30 ID:EzbR6hZga]
構文エラーならパースの時点で解決しないといけないし、
それ以降は、構文木の各ノードにソースコード上の位置情報をいれておけば結構ok

パーサ自体のデバッグには有用

613 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 02:16:34.68 ID:t8k86oX2.net]
>>356
Forth, Postscript「必要です」






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<172KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef