タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Compilerに関するel-condorのブックマーク (2)

  • もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note

    思考実験として、全世界の人が同時に、自分の持っているコンパイラやインタープリタなどの実行ファイルをうっかり全部消してしまったとしよう。そうするとそれ以降、ソースコードが残っていても、コンパイラ自身も含めてどのようなプログラムもコンパイルできなくなってしまう。この状況から人類は元のコンピュータ文明を復旧することができるのだろうか? 僕は結論としては、かなり簡単に復旧できると思う。ここではその手順についてちょっと考えてみよう。 コンパイラのバイナリファイルが全部消えてしまった後、復旧のために目指すべきマイルストーンは、おそらくCコンパイラを元に戻すことになるだろう。Cで書かれたプログラムはOSやコンパイラ自身を含めてたくさんあるので、そこを起点にすれば、たくさんのプログラムを芋づる式に復旧していけるからだ。 ほとんどのCコンパイラはCかC++で書かれている。最近のGCCやClangは巨大かつC

    もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note
    el-condor
    el-condor 2017/12/04
    コンパイラというのはどういうものか、をよく考えてみるための思考実験としては面白い。知ってる人には当たり前だけども。
  • Swiftのコンパイラを改造して独自構文を追加する - Qiita

    去る 12 月 3 日、ついに Swift がオープンソースになりました!! 僕は、今度 try! SwiftSwift について話す予定なんですが、 Swift がオープンソースになったからには、コンパイラの中身まで見て証拠を掴んだ上で話さなければならないこともあります。 そんなわけで早速コンパイラのソースを読もうと思ったんですが、目的なく漫然と読むのも辛いです。そこで、勉強がてら Swift のコンパイラを改造して前からほしいと思っていた構文を追加してみました( リポジトリはこちら )。 改造の内容は次の二つです。 標準ライブラリに Either<L, R> という型を追加 Either<L, R> のシンタックスシュガー L|R を追加 これによって、次のようなコードが書けるようになりました。 // Int|String は Either<Int, String> のシンタック

    Swiftのコンパイラを改造して独自構文を追加する - Qiita
    el-condor
    el-condor 2015/12/07
    言語パーサの面白い話
  • 1