タグ

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

  • セルフホストできるCコンパイラを作ってみた - Qiita

    低レイヤを知りたい人のためのCコンパイラ作成入門 (以下 コンパイラブック) を一通り読んでCコンパイラを作ってみました。 このはまだ完全でなく(2020/09/01現在)、例えば構造体の実装の説明などは文章としては存在せず、このの参照実装である chibicc を写経がてら作っていきました。 (実際には今現在進行中の @rui さんの Cコンパイラ作成のオンラインコースを始めます の参加者のみに現状は公開されているchibiccよりもうちょっと改善されたcコンパイラ実装が参照実装だそうです) もともと構文解析とかはちょっと興味があったりして、qiitaでも [ruby] Parsletで構文解析する[その1] [ruby] Parsletで正規表現をパースしてvm型のエンジンを実装してみる[その1] パース〜ASTまで みたいな記事は書いていたんですが、あんまりややこしいパーサーは書

    セルフホストできるCコンパイラを作ってみた - Qiita
  • GitHub - jamiebuilds/the-super-tiny-compiler: :snowman: Possibly the smallest compiler ever

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - jamiebuilds/the-super-tiny-compiler: :snowman: Possibly the smallest compiler ever
  • 一日でできるセルフホスティングForthコンパイラ - Qiita

    はじめに これは「言語実装 Advent Calendar 2017」24日目の記事です。 この記事では 64bitWindows で実行可能な x86_64 のセルフホスティング Forth コンパイラを作ります。 対象読者としては「C言語そこそこわかる」「x64アセンブラに嫌悪感はない」ぐらいの人を想定しています。コンパイラの知識は特に前提としません。 完成品はこちらから取得できます。 bootstrap には C を使います。しかしC言語的にお行儀の悪いことを色々やりますので、バージョンやコンパイルオプション等によっては動かないかもしれません。ご了承ください。一応完成版は以下の環境で動作を確認しています。 Cygwin64 の gcc option: -O3 と -O なし両方 version: 6.4.0 (GCC) target: x86_64-pc-cygwin Msys2

    一日でできるセルフホスティングForthコンパイラ - Qiita
  • 部分評価 - Wikipedia

    部分評価(ぶぶんひょうか、英: partial evaluation)は、計算理論における特殊化(特化)による最適化の技法の1つ。 概要[編集] 直感的には、典型的なコンピュータ・プログラムの最適化である定数畳み込みのようなものである。定数畳み込みは「部分評価のうち特に実施しやすい、定数のみからなる式の計算をおこなうもの」と言える。 理論的な説明としては、以下のようになる。プログラムを次のような入力データから出力データへの写像 prog とする。 はstatic data(静的データ)であり、コンパイル時に分かっている入力データを指す。 部分評価とは、コンパイル時に、静的データから計算可能なものを全て事前に計算しておくことで、 を とすることである。 は「残余プログラム (residual program)」と呼ばれ、来のプログラムよりも効率化されていると期待できる。すなわち、部分評価と

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

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

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

    View the Project on GitHub コンパイラを作ろう! イラスト:Alt@alt_ap 技術書典2で販売予定の「コンパイラを作ろう!」のページです。 普段日常的に使う言語処理系を、ブラックボックスのままにしていませんか? ソフトウェアエンジニアたるもの一度はフルスクラッチでコンパイラを書きたいと思いますよね? このでは筆者のOCamlコンパイラやほかコンパイラを読み書きした経験をもとにした、 OCamlを用いた手続き型言語のコンパイラの作り方について説明します。 パーサーの部分の実装から一通りアセンブラを出力するまでの過程を通して 典型的なコンパイラの実装というものに親しんで下さい! 日時: 4/9(日) 場所: アキバ・スクエア スペース: う-15 値段: 500円 要求知識 OCamlの基礎(文中でむつかしいテクニックは紹介します) C言語の知識 コンパイラの

    loop by nomaddo
    igrep
    igrep 2017/04/04
    "コンパイラを作ろう!"
  • Haskell コンパイラを書こう!

    この記事では、私が Haskell コンパイラを Haskell で書いてみたいと思って勉強した事柄を紹介したいと思います。 Haskell は多くの特徴をもった高水準言語であるため、Haskell コンパイラが行わなければならない仕事はたくさんあります。 しかし、それらを一か所にまとめて述べた教科書のようなものは見当たらなかったので、 結構たくさんの文書を調べてまわる必要がありました。 ここで、それら全てについて詳しく解説するには、 紙幅も私の能力も足りませんが*1、 簡単な紹介と参考文献へのリンクを示しておけば、多少の価値はあるのではないかな…、あればいいな、 と期待しています。 コンパイラに限らず、そこそこの規模のプログラムを作ろうとする場合には、 最初のマイルストーンとなるようなサブ目標を決めるのが良いように思われます。 有名な Wnn における「私の名前は中村です」のようなやつ。

    Haskell コンパイラを書こう!
    igrep
    igrep 2016/12/15
    素晴らしい。もし、単純にHaskellをJVM向けにコンパイルすることに興味があるのであればeta (旧ghcvm)もどうそ。
  • 1