タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとgccとcompilerに関するjjzakのブックマーク (14)

  • インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋

    先日Python 3.1a1 がリリースされました。 Python 3.0 は Python 2.6 に比べてパフォーマンスが悪かったのですが、Python3.1はPython2.6よりも速くなるかもしれません。 Python3.1のパフォーマンス向上は、主に次の2点が影響しています。 ioモジュールがC言語で書き直された computed goto の採用 (--with-computed-gotos というconfigureオプションで有効) computed goto という名前を聞き慣れなかったのですが、調べてみると Ruby 1.9 の VM (YARV) や、 Perl6 の VM として開発されとうとうリリースされた Parrot にも採用されている手法でした。今回は簡単に computed goto の紹介をしてみます。 とりあえず label as value C言語の規

    インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋
  • compiler - Vidar Hokstad V2.0 Rubyでコンパイラを書くチュートリアル

    (To follow my compiler related posts, either subscribe to my main RSS feed, or the compiler specific one ) Back in March 2008 I started publishing a series on how to write a compiler in Ruby, bottom up, that is, starting with the code generator and working my way up instead of the more traditional approach of writing the parser first. Here are the parts I've published on my blog so far. (The bits

    jjzak
    jjzak 2008/12/22
    Rubyでコンパイラを書くチュートリアル
  • The LLVM Compiler Infrastructure Project

    Useful Links Forums LLVM Discourse Mailing Lists: Commits List Discord (Real-time Chat): Discord Calendar: LLVM Community Calendar Dev. Resources: doxygen Sources (GitHub) Code Review Blog Bug tracker Buildbot Green Dragon LNT Scan-build llvm-cov Compile-time tracker Release Emails 20.1.8: Jul 2025 20.1.7: Jun 2025 20.1.6: May 2025 20.1.5: May 2025 20.1.4: Apr 2025 20.1.3: Apr 2025 20.1.2: Apr 202

  • GCC Error Messages

    This page has been converted from a Wiki formatted article. If I’ve missed anything in the conversion process, please tell. Sometimes GCC emits something that can be described as Haiku poems – and you have no clue as to what it really is complaining about. This page is a collection of such gems, their meaning in English and how to solve the problem. If you run into an error that you feel belongs h

    GCC Error Messages
  • ¢°¨«°¢(£°«) - val it : α → α = fun

    jjzak
    jjzak 2007/09/24
    gccのgoto拡張l
  • 関数呼び出し規約(on IA-32)について

    Written by Yashiro Takeshi <yashiromann@nifty.com> 2004/1/14 IA-32(x86)上のgccでの関数呼び出し規約について、まとまっている文書がgoogleで検索してもなかなか見つからず苦労したので、他のものと一緒についでにまとめておくことにします。私もよく分かっていないので、何か間違いがありましたら(掲示板でもメールでも)教えてください。 確認の際、抜けがないようにここにも書いておくと、関数呼び出し規約とは、 関数呼び出しの前後で保存されなければならないレジスタ 引数渡しの方法 (ex. レジスタ渡し・スタック渡し・共有メモリ渡し) 引数渡しの順序 関数呼び出し前後でのスタックポインタの保存方法 返り値の戻し方 の全てをあわせたものであって、どれか一つでも曖昧にしてミスしてしまうと思わぬところでエラーが発生してしまいます。(私の

  • 初めてのC言語 - 第9回 リンカスクリプト

    目的 メモリマップを自分で決めて、リンカスクリプトを(途中まで)記述する メモリマップ これまで普通にC言語を使ってきたときには、OSがありました。第1回の時にもプログラムを動かしていたのはLinuxでした。 プログラムはOSによって、様々なリソース割当を行われます。CPU時間もそのひとつですが、最も重要なのがメモリ割当です。実際にプログラムが使うメモリを予約して、その空間に適切な形でプログラムを読出し、プログラムを実行します。必要に応じてアドレス変換やメモリ保護なども行います。 しかし、この「始めてのC言語」ではOSはありません。メモリ割当は自分で行う必要があります。このメモリ割当を行うために必要なのがリンカスクリプトです。 リンカスクリプトを作る前に、ターゲットコンピュータのメモリマップを知る必要があります。メモリマップとは、どのアドレスに何が置いてあるかの表みたいなものです。今回対象

  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
    jjzak
    jjzak 2007/04/09
    Cでクロージャ
  • HackingWithGnu - enbug.org

    はっきんぐ・うぃず・ぐにゅー GNU を使って開発しようっていう不定期な連載です。 いつ書かれるかも分からないし、いつ終わるかも、いつ改訂されるかも不明です。 もちろん、ここは全然公式なページじゃありません。 嘘は出来る限り書かないように努力しますが、絶対信頼してはいけません。 これらは、かなり昔に私自身が執筆していた記事を掘り返した物です。 古くなって、現状に当てはまらない部分を更新していますが、十分ではないかもしれません。 第一回 GNU C の書き方 (1) 第二回 GNU C の書き方 (2) 第三回 GNU C の書き方 (3) 第四回 GNU Make の初歩 第五回 GNU Automake の概要 第六回 GNU Autoconf (1) 第七回 GNU Autoconf (2) 第十二回までありますよ...

    jjzak
    jjzak 2007/03/23
    はっきんぐ・うぃず・ぐにゅー
  • J

    Cで汎用ライブラリをつくってると、void*の嵐になって型安全が無くなると思う。 ちょっとした手間で、それをなんとかする話。 struct varray { int nelem; void *values; }; #define VSET( t, a, i, e ) (((t*)a##t.values)[i] = e) #define VDECL( t, name ) struct varray name##tこんなふうにして。 int main() { VDECL( int, a ); VSET( int, a, 0, 4 ); }こんなふうにする。 変数宣言がちょっとキモくなるのと、配列アクセスが、キモくなる。のと、配列アクセスするときに型の名前がいる。 のだけど、 int main() { VDECL( int, a ); VSET( float, a, 0, 4.0 ); }こうい

    J
    jjzak
    jjzak 2007/01/19
    Cで型安全可変長配列ライブラリをつくる
  • ホワット・ア・ワンダフル・ワールド 現状,最も DSL が作りやすい汎用言語は, L ナントカでも H ナントカでも無く,実は GCC なのではないか ?

    最上の日々 06年12月 24日(日) ▼ DSL(ドメイン特化言語)というのは拡張され続けた結果として、かならず汎用言語になってしまうものだ。けど、最初から計画されていた訳ではないから、汎用言語にとって大事な首尾一貫性にはこういう調子で欠けることに必ずなってしまう。これをさけるためにはどうしたら良いだろうか。 すでに出来てしまった物は仕方ないけど、これからDSLを作ろうと言う人は、新たにDSLを作るのはやめて汎用言語のサブセットにする方が良いと思う。そうして将来の拡張に備えるという方法論をとったら良いと思う。 DSLは汎用言語よりもドメイン内では簡潔に書ける言うけど、大抵それは、ドメインに特化したデータ構造とライブラリのおかげでだと思う。文法などが寄与している場合は困るけど、私の感じではそれほど多くは無いと思う。(ユーザが新しい型を定義できて演算子などをオーバーロードできる汎用言語で無く

  • GNU コンパイラ集(GCC) の使い方と移植について

    Node:Top, Next:G++ and GCC, Previous:(dir), Up:(dir) Introduction このマニュアルでは、GNU コンパイラの使い方、インストール方法、移植方法や、新しい機能や互換性の無い部分、それにバグレポートの方法などについて説明している。GNU CC のバージョン 2.95 に対応している。(日語版ドラフト-17 July 2001) G++ and GCC: C や C++ のプログラムがコンパイル可能Invoking GCC: gcc のコマンド行オプションInstallation: GCC のインストール方法C Extensions: C 言語の GNU の拡張C++ Extensions: C++ 言語の GNU の拡張Gcov: gcov: GCC のテストカバレージプログラムTrouble: GCC のインストールで問題が起

  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

  • GCC 解読室 Wiki*

    Wikiaへ引越し Wikiaへ引っ越す事になりました。 新しくページを作る時はWikiaの方にお願いします。 ▲ ▼ FrontPage GCC のソースコードをひらメソッドで読んでいこうかと思っています. GCC は,最も歴史が古く,よってたかって世界中の スーパハカー に知恵と技術の限りを尽くして叩かれ続け,今では全てのフリーソフトウェアの礎石となっている,地球が宇宙に誇れるプログラム ((c) shinichiro_h さん & wo さん) です.ぜひあなたも一緒に,この難攻不落の要塞に挑んでみませんか ? 私 (管理人 あろは) は,とりあえず今の所,フロントエンドが何をやっているのか (GCC の内部データ表現形式である木構造,GENERICTree と GIMPLE Tree がどのようにして生成されるのか) を理解したいです. (RTL を含む,ターゲットア

  • 1