「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
355: 2016/01/18(月)08:53 ID:XM4mBu50(1) AAS
>>354
実装であるgccはいろんな環境(プラットフォーム)で動いてる
構文はどの環境でも同じだが
どんな呼び出し規約のライブラリがあるかは
環境ごとに違う
356(3): 2016/01/19(火)11:13 ID:79hXpIDE(1) AAS
新しいコンパイラを作る際、わざわざ「手動でスタックを積み上げたり
開放したりする」命令は、あった方が良いのかな?
メモリ節約や速度に直接、関係するなら言語仕様を作る段階で
考えるけどね。今のパソコンはスピードが速いから、不要といえば不要かも
しれないが。
357: 2016/01/19(火)12:41 ID:uAThxx94(1) AAS
そのレベルならインラインアセンブラみたいな
抜け道を作るかどうかって話になるんじゃないの
358: 2016/01/19(火)21:16 ID:j62B2E0v(1) AAS
>>356
命令ってどういうこと?
Cのallocaみたいなのを言ってるの
359: 2016/01/19(火)23:54 ID:Xdnj5x+8(1) AAS
確保開放やらはSPレジスタをいじるでいいんじゃないかな・・・
SP変更時に無効なSP値だったらエラーにするとかその程度で
コンパイラもよほど変な事しない限りpush/pop命令なんて使わんし
360: 2016/01/20(水)12:29 ID:zFAeGKrq(1) AAS
>>356
言語自体の仕様にも依るんじゃないかな。
あと用途とか。
モノリシックカーネルのドライバ書くのに使いますーCとアセンブリの良いとこ取りですーってんなら
手動でスタック積んだり降ろしたりする命令も使うだろうけど
いまいち用途がピンと来ない。
仮にllvm-irの使用を前提にするなら、ネイティブのスタック積んだり下ろしたりするのって意味あんの?っていう議論もありか?
言語仕様を練ってて
シンプルな構文にシンプルな継続(のようなもの)を追加したら
全体的に美しさに欠ける感じになって悩んでる。
361: 2016/01/22(金)12:29 ID:97wZpIfH(1) AAS
高級言語の側で、わざわざ、pushやpop命令を言語仕様に入れる必要は
なかったか。メリットも予想ほどないみたいだな。
実行上で、スピードアップになるかと思っていたが。
362: 2016/01/22(金)12:55 ID:8nADuqf6(1) AAS
メモリやキャッシュはレジスタよりずっと遅いからなぁ。
レジスタへのアクセスに対してL1キャッシュのアクセスには2〜3倍の時間が掛かるって言われてる。
つまり、レジスタ間mov命令に対してpush/popは1命令あたり2〜3倍遅いって事だ。
C言語のregister修飾子は知ってる?変数がレジスタに乗っかるようにする為の物なんだけど。
グラフ彩色で変数生存期間に対するレジスタの使用を最適化出来る事が知られる以前の産物だから、今は滅多に使われないけどね。
363(1): 片山博文MZ ◆T6xkBnTXz7B0 2016/01/22(金)13:18 ID:0V0RVdAH(1/2) AAS
バイト列xからバイト列C(x)への変換器Cがあるとき、
Cの逆変換器C^(-1)を求める一般的な方法は何か?
364: 2016/01/22(金)20:49 ID:TW3FacBd(1) AAS
>>363
逆アセンブラです。
365: 2016/01/22(金)21:58 ID:bvwDmPF2(1) AAS
変換器Cの変換の性質がbijectiveであるという条件をつけなければいけないのではないか。
366: 2016/01/22(金)22:13 ID:9qqofano(1) AAS
この方法が分かれば、どんな暗号文も解読できるね!
367: 片山博文MZ ◆T6xkBnTXz7B0 2016/01/22(金)22:54 ID:0V0RVdAH(2/2) AAS
数学板でじっくり考えることにしたよ。
有限数列上の変換について [無断転載禁止]・2ch.net
2chスレ:math
368: 2016/01/23(土)09:04 ID:VPAh/uPo(1) AAS
変換器が可逆計算できるとは限らないから一般的な方法は無いだろ。
369: 2016/01/23(土)15:07 ID:0d2orZXz(1) AAS
メモ化とテーブルルックアップw
370: 2016/01/31(日)19:36 ID:T/RwY0g5(1) AAS
多少勉強すると、いまさらながら、Cがアセンブラにかなり近いレベルの
言語であることが、良くわかるな。
その分、マスターするのに時間もかかったが。
371(1): 2016/01/31(日)19:52 ID:Vno/qq2m(1) AAS
C言語をマスターしたって奴は絶対に信用しないことにしている
372: 2016/01/31(日)20:53 ID:7LoAMsY1(1) AAS
入門書一冊読みました=マスターしました
373: 2016/01/31(日)21:17 ID:QH+McMgz(1) AAS
これが本当のマスターベーション
374: 2016/02/01(月)16:11 ID:aq9Mx2ga(1) AAS
そんなあなたにスタンディングマスターオベーション
375: 2016/02/02(火)10:57 ID:9eq1u0GM(1) AAS
>>371
「C言語をマスターしました」
という奴の化けの皮をはがすのは、意外に簡単だからな。
簡単な計算機プログラムを書かせるか、あるいは、ピタゴラスの定理の
コードでも書かせるか。もっとも、そこで化けの皮がはがれるようなら、
とてもコンパイラの領域まで、進むことは出来ないだろうな。
376(1): 2016/02/02(火)11:36 ID:7f7wf/mW(1/2) AAS
コンパイラを書ける最低レベルに達しているかどうかの判定がしたければ
「入力された多項式を微分する関数書くならどう書く?」ってくらいは聞きたいけど。
C言語云々じゃなくてデータ構造とアルゴリズムの問題だけど、
Cでやるならポインタと再帰とラムダ算法について知ってなきゃ答えられない。
377(1): 2016/02/02(火)20:19 ID:WkrnCzmR(1) AAS
>>376
単純な多項式に限定していいなら再帰いらんでしょ
最終的に多項式に変換できる式と言うなら別だけど
378: 2016/02/02(火)22:20 ID:7f7wf/mW(2/2) AAS
>>377
すまん
素で項数無限だったり微分不能な関数が入ってたりしないって意味で多項式って言っとったわ。
log(x^2+8*x)とかsin(kx+wt)とかも多項式(笑)
379: 2016/02/03(水)11:44 ID:tCheJck0(1) AAS
面接時「Cを三年ほど仕事で使っていました」
↓
採用後「誰だ。あいつを採用したのは!」
「最低、Cを仕事で三年間使っていること」
を条件に採用した会社で、こんなこともないわけではないからな。
本人の申告ほどあてにならないものはない。コンパイラ作成に到達する
など、夢のまた夢。
380: 2016/02/03(水)11:59 ID:uEOUJl1K(1/2) AAS
他人の突っ込んだバグを直せるのが中級者
自分の突っ込んだバグを直せるのが上級者
それ以外は何の参考にもならない
381: 2016/02/03(水)12:36 ID:Gb259GwX(1) AAS
それ以外っつーとどんなバグも直せない奴か
そりゃ確かに考慮に値しないな
382: 2016/02/03(水)13:57 ID:WaqhOfMD(1/3) AAS
まあもともとCはコンパイラを書くには向いてないからな
GADTとかある関数型言語で書くのが一番楽
あとコンパイラが糞になるのは大抵対象言語の糞文法と糞デザインのせい
383: 2016/02/03(水)13:57 ID:WaqhOfMD(2/3) AAS
Rubyがなぜあんな巨大な糞なのかというと(お察しください
384: 2016/02/03(水)14:06 ID:uEOUJl1K(2/2) AAS
実用性を求められそれに応えるごとに汚れていくのさ
ピュアでいられるのはお子様だからさ
上下前次1-新書関写板覧索設栞歴
あと 265 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.008s