タグ

compilerに関するsomemoのブックマーク (6)

  • LLVM Tutorial: Table of Contents — LLVM 19.0.0git documentation

    LLVM Tutorial: Table of Contents¶ Kaleidoscope: Implementing a Language with LLVM¶ My First Language Frontend with LLVM TutorialThis is the “Kaleidoscope” Language tutorial, showing how to implement a simple language using LLVM components in C++.

  • nothingcosmos wiki

    2016/05/04 LLVMのビルド方法 2014/04/08 OpenJDKのビルド方法 2014/02/23 作成したスライド 2014/02/22 JVM(HotSpot) VS. Dart VM 2014/02/16 RevisionLog32000台 DartVMのリビジョンログ 2014/01/11 RevisionLog31000台 2013/12/23 RevisionLog30000台 LLVMとの連携方法 2013/12/09 LLVMに関して LLVMのデバッグ方法 SSA形式 2013/11/10 RevisionLog29000台 2013/10/21 JITコンパイラ メニュー 自動並列化 ベクトル化 GCCに関して 2013/10/20 RevisionLog28000台 2013/09/28 RevisionLog27000台

  • JavaCC,ANTLR,パーサコンビネータを触ってみた - pocketberserkerの爆走

    某場所にて以下のような課題が出た。 いわゆるΣ計算の構文を解析するParserと解析結果にあわせた処理を行うVisitorの作成 書式は sum i : NUMBER .. NUMBER of expression 変数はiで固定、iを1つ目のNUMBERから2つ目のNUMBERまで変化させながらexpressionを計算 expressionは四則演算を行う。括弧を使用できること。 jjtreeを用いて実装せよ たとえば"sum i : 3 .. 5 of 1 + 2 * i"が27になる、みたいな形ですね。 でまぁ、jjtreeというかJavaCCだけだと 戦略というか方向性というか 時間短縮のため変数iはキーワードとしておく 変数が1つしかない仕様なので記号表は作らない Visitorのフィールドでiの当該値を記憶する あとはその場の勢いで追加実装したりしています。 JavaCC,j

    JavaCC,ANTLR,パーサコンビネータを触ってみた - pocketberserkerの爆走
  • プログラミング言語を作る yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • 1