タグ

compilerに関するiwazerのブックマーク (5)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • Swiftの型システムに入門する - iOSDC Japan 2018

    switchのexhaustiveness/redundancy チェック 理論と実装 わいわいswiftc #8 @ukitaka

    Swiftの型システムに入門する - iOSDC Japan 2018
    iwazer
    iwazer 2018/09/03
    おもしろかった
  • ポインタなしC言語の提案 - 最尤日記

    C言語はユーザからレジスタの自由を奪う事によって成立した。今度はポインタの番だ。 目標: C言語からポインタを取り除く事: これによりヌルポインタアクセス、バッファオーバラン、リークなどの問題から一切解放される。さらに多重参照(エイリアシング)の問題から解放される。またmalloc/freeなどのメモリ管理コードが不要になる事により行数が削減される。ガベージコレクション停止はない。 注意しなければならないのは、pythonrubyなどのLLやJavaでさえ、糖衣により見えにくくしただけでポインタの問題は解決できてないことだ。identity演算子、強/弱の参照の使い分け、エイリアシングによるバグ、ガベージコレクタによる停止などの形でポインタの問題はユーザを悩ませ続けている。 現在のC言語で出来る事は何でも出来る事: UNIXカーネルなども原理的には書き換え可能であること。 C言語で出来た

    ポインタなしC言語の提案 - 最尤日記
  • https://www.tutorialspoint.com/

    https://www.tutorialspoint.com/
  • GCC 4.8でぶっ壊れるSPECのお粗末なコード

    の虫: GCC 4.8のリリースノートとC++関連の変更で、GCC 4.8は464.h264ref: SPEC CPU2006 Benchmarkを壊してしまう。これはSPECベンチマークの規格違反によるものであると書いた。では、具体的に何なのか。それを解説している記事を発見したのでかいつまんで紹介。 Embedded in Academia : GCC pre-4.8 Breaks Broken SPEC 2006 Benchmarks Regehr: GCC 4.8 Breaks Broken SPEC 2006 Benchmarks [LWN.net] どうやら、SPECベンチマークは以下のようなコードを含むそうだ。 int d[16]; int SATD (void) { int satd = 0, dd, k; for (dd=d[k=0]; k<16; dd=d[++k])

    iwazer
    iwazer 2013/03/25
    “for文のオペランドにやたらに複雑な式を書きたがるC言語の慣習が悪い”
  • 1