タグ

コンパイラに関するWackyのブックマーク (9)

  • できる! コンパイラ作成の資料まとめ

    あけましておめでとうございます。今年もよろしくおねがいします。艮鮟鱇です。 さてつい先程、友人から「冬休みに言語処理系ちょっと書いてみたいんだけどいい資料ない?」(意訳)と言われました。新しい年も始まりましたし、これを機にコンパイラ・インタプリタを書き始める人も少なくないこともないかもしれません。 ということで私が把握している言語処理系開発のための資料を以下に一覧します。上から順に見ていって、自分に合うものを探して頂ければと思います。私がよく知っているものを並べたので、全体的にCコンパイラよりです。「自分が開発するときに見るやつが載ってない!」という方は是非コメントをくださるか、 Twitterで雑にリプライをお願いします。 低レイヤを知りたい人のためのCコンパイラ作成入門セキュキャン2018 Cコンパイラ開発ゼミの講師の一人、Rui UeyamaさんのCコンパイラ作成入門資料です。タイト

    できる! コンパイラ作成の資料まとめ
  • 「低レイヤを知りたい人のための Cコンパイラ作成入門」を読んで、オレオレコンパイラを作り始めた - Moiz's journal

    はじめに 表題通りですが、Rui Ueyama氏の「低レイヤを知りたい人のための Cコンパイラ作成入門」というPDFを読んでCコンパイラ的なものを作り始めましたよ、というダラっとした内容です。 はじめに 発端 とりあえず書いてみる 別のコンパイラ入門書をよんでみる 次にどうする? 書くぞ、書くぞ、書くぞ リポジトリー 便利な資料 セキュリティキャンプの参加者のリポジトリー オンラインコンパイラGodbolt セキュリティキャンプ講師のスライド C言語規格のドラフト 書籍 Compilers: Principles, Techniques, and Tools 2nd By Alfred V. Aho Intel® 64 and IA-32 Architectures Software Developer Manuals 発端 ツイッター等で知ったのですが、セキュリティキャンプというイベン

    「低レイヤを知りたい人のための Cコンパイラ作成入門」を読んで、オレオレコンパイラを作り始めた - Moiz's journal
    Wacky
    Wacky 2018/12/26
    “セキュリティキャンプ講師のRui Ueyama氏が「低レイヤを知りたい人のための Cコンパイラ作成入門」を書かれた事を知りました。”
  • 3(0)日でできる! Cコンパイラ自作入門 - Google スライド

    3(0)日でできる! Cコンパイラ自作入門 2018-11-09 hikalium @ コンパイラ勉強会

    3(0)日でできる! Cコンパイラ自作入門 - Google スライド
  • 大学院生のためのLLVM | POSTD

    (注:2017/07/06、いただいたフィードバックを元に翻訳を修正いたしました。) この記事は、 LLVM コンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。 LLVMとは何か? LLVMは非常に優れていて、ハックしやすく、C言語やC++のような”ネイティブ”言語向けの、時代の先端を行くコンパイラです。 LLVMの素晴らしさに関しては他にも様々な話を聞くのではないでしょうか(JITコンパイラとしても使えるとか、C言語系列以外の様々な言語を強化できるとか、 App Storeからの新しい配信形態 であるとか、などなど)。もちろん全部当のことですが、今回の記事の目的としては、上述の定義が重要です。 LLVMが他のコンパイラと差別化される理由には、いくつかの大きな

  • 1人でがんばる自作Cコンパイラ

    はじめにセキュリティキャンを皮切りに自作Cコンパイラがとてもはやっていました。 たのしそー僕もやりたい!!!!でもどうやるんだ??? しかし僕の周りには知る限りではコンパイラに強い人はいませんでした。 ※ 友達がいないわけではありません 誰にも頼ることなくCコンパイラを作るのは難しいのでは!? でもコンパイラは魔法みたいでいやだから知りたい。 とかいろいろ眺めてみてもさっぱりわからなかったので誰でもできる方法はないかなーと考えたのが9ccをお手にすることでした。 ということで9ccのファーストコミットからすべてRustにしてみました。 9ccはrui314さんがやられているCコンパイラです。 9ccのコードは可読性がとても高くとてもやりやすかったです。9cc 神 です。 おそらくこの方法で作るCコンパイラは事前知識はほとんど必要なくできると思います。 正直、やるだけだと思います(当に

    1人でがんばる自作Cコンパイラ
  • 【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました

    まとめ 発注額の桁が違う?PC-9801用アプリケーションの解析業務が話題に 20年以上前の見積もりシステム(?)の解析と仕様を起こすお仕事です。 どうも単純に逆アセンブルしただけでは全体は見えてこなさそうな雰囲気です。 発注側は何とか「単純」な仕事にしたいようですが、個人的にはこういった仕事にありがちな、蓋を開けてみると全く簡単じゃなかった案件じゃないかとみております。 22832 pv 66 4 users 156

    【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました
  • LLVM上で、LuaのCライブラリを使用して、コンパイラを使わずにソフトウェアを書く(前半) | POSTD

    LLVM上で、LuaからCライブラリを呼び出し、コンパイラを使わずにソフトウェアを書く 私は、ある プログラミング言語 の開発に取り組んできました。私はよく ビデオゲーム を作りますが、ゲーム開発に利用できる既存の言語には、それぞれ私のやり方に合わない欠点がありました。そこで、自分で新しい言語を作ることにしたのです。私はインタプリタを実装し、ちゃんと動きます。素晴らしい!しかし、あまりに遅いのです。自分がやりたいことを実現するには、私は決めたのです、インタプリタではなく、コンパイラを書くべきだと。ところがそのように決めるとたちまち、このプロジェクトは行き詰ってしまいました。なぜなら、当はコンパイラを書きたくなかったからです。作業量は多いし、今までやったことがないことも多く、どこから始めればいいかも当に分かりませんでした。しかも、私はパーサを書くのが当に嫌いなのです。 そして先週、次の

    LLVM上で、LuaのCライブラリを使用して、コンパイラを使わずにソフトウェアを書く(前半) | POSTD
  • LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ

    コンパイラを作ってみたいと思っていても、アセンブリ言語はよくわからない。 パーサーみたいなコードは書いたことがあるけれど、コード生成の処理はさっぱりだ。 実行ファイルをバイナリエディターで見るとかなにそれ怖い。 そんな私なのですが、LLVMに興味を持ち始めています。 SwiftRust、あるいはEmscriptenなど、近年注目されている言語やコンパイラ技術の中枢にはLLVMがあります。 アセンブリはよく分からなくてもLLVMを使いこなせるようになれば、マルチプラットフォームで実行ファイルを生成できる言語処理系を作るのではないか。 コンパイラ作ってみたいな、LLVMを使ってみようかなと思っている今日このごろです。 ところが、いざLLVMを勉強しようと思ってもどこから始めればいいかよく分かりませんでした。 マニュアルは巨大で読む気が起きないし、リファレンスを見てもさっぱりです。 雰囲気はわ

    LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ
    Wacky
    Wacky 2017/04/01
    LLVMの最初の一歩はLLVM IRの命令と親しむところにあります。
  • 1