Compiler Infrastructureを少し調べる

別のブログにROSE compiler infrastructureのインストールやら使い方やらをまとめていたんだが、思うことあってこの前、それを見ながらUbuntu12.10の環境でインストールを試みた。しかし、古いバージョンのgccとかboostとかHaskellとか要求されて、あまりに…

みつけた

どこいったか分からなくなって検索したけど、「個人的な技術メモ」で最上位にきてた。びっくりした。追記: 2013/3/14 すっかり忘れたころに同じ検索して最上位にきて再びびっくりする。

今考えてることのメモ

MacBook Air 11インチ欲しい!最近、Lispでパーサを書こうと考えている。 ASTなんかLispで構築した方が楽そうだし。

書くこと

ほとんど更新していない割に、意外とここをアクセスする人がいるのでびっくりする。書いたことはそこそこ自分の役に立っているけど、他の人の役にも立っているのだろうか。 これから書こうと思っているネタを書いておくことにする。アフィリエイトの設定もし…

Fedora 11でcgram

antlrを使用したCパーサcgramが、Fedora 11ではうごかなかった。javaの仕様が変わったのか、-classpathは環境変数CLASSPATHの置き換えになっているようだ。cgram/tests/Makefileを次のように書き換えてうまくいった。 CLASSPATH = .:..:../examples:../gramm…

RubyからC++のクラスを使用する

RubyからC++のクラスを呼び出す例をまとめる。環境は以下の通り。 Fedora7 g++ 4.1.2 SWIG 1.3.31 Ruby 1.8.6 ANTLR(2.7.7)で生成されたC++によるパーサプログラムを、Rubyから呼び出すために調べたものをまとめてみた。ANTLRも3.0からはRubyも対象言語に含…

emacsの設定 (Fedora7)

OSをFedora7にしたので、emacsの設定を行う。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 画面表示 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq default-frame-alist '((foregro…

cgramの出力チェック(1)

cgramは実質C to Cのコンバータなので、入力Cプログラムと出力Cプログラムで比較することによって、検証を行う。実際にサンプルCプログラムを作成して比較してみる。元のCプログラム static int g1 = 0; typedef long mylong; static mylong z; typedef …

cgramのテスト

ANTLRのC言語定義ファイルであるcgramをテストしてみる。 テストデータ cgram/testsでmakeを実行すると、エラーになる。 $ make java -classpath .:..:../examples:../grammars Test test.c Exception in thread "main" java.lang.NoClassDefFoundError: Te…

C言語パーサ

cgramのダウンロード ANTLRのページhttp://www.antlr.org/ を色々と調べてみると、いくつかの文法ファイルをダウンロードできる。今回は、そのうちのC言語パーサ(cgram)のビルドを行う。環境設定については、すでに説明したものを利用する。参考:http://d.h…

Getting Started with ANTLR

言語定義ファイルの作成 実際に文法を定義して、パーサを生成してみる。 以下のページを参考にした。Getting Started with ANTLR http://www.antlr.org/doc/getting-started.html以下の内容を記述したファイルを作成する。仮にファイル名はt.gとする。 class…

ANTLRのインストール

環境 環境は以下の通りとする。 Fedora Core 6 bash JDK 1.6.0_01 ターゲット言語はJavaとC++ gijだとうまくいかなかったので、SunのサイトからJDKをダウンロードしてインストールしておく必要がある。 ビルド 以下の手順で行った。 $ cd antlr-2.7.7 $ ./co…

ANTLRとは

パーサジェネレータ。ANTLRメタ言語からLexer, Parser, Tree-Parserを生成させることができる。Javaで動く。ターゲット言語はC#,C++,Java,Python。ANTLR 3.0は開発中で、ANTLRメタ言語の仕様が変わり、ターゲット言語にC,Objective C, Ruby, LISP, Perl6, PH…

はじめまして

とりあえず登録してみました。主に個人的な技術メモを中心に使用していく予定です。