Code Archive Skip to content Google About Google Privacy Terms
インテルが開発している「インテル コンパイラー」は、インテルCPUに最適化された高速なバイナリを生成するということで知られており、Oracleなどパフォーマンスを求めるベンダーで採用されているほか、科学計算用アプリケーション、3Dグラフィックソフトなど、さまざまなソフトウェアのコンパイルに利用されている。 しかし、「インテル コンパイラーはパフォーマンスが高い」とだけ言われても、なかなかピンと来ない人も多いのではないだろうか。そこで、インテル コンパイラーでコンパイルされたバイナリをベンチマークテストし、実際どの程度の性能向上が見込まれるのかを調べてみよう。 各所で高評価を受けるインテル コンパイラー インテル コンパイラーはCPUメーカーであるインテルが開発しているということで、Core i7などの最新CPUに搭載されているSSE 4.2といった命令セットへの対応が図られているほか、イン
► 2023 (1) ► 06 (1) ► 2022 (3) ► 09 (1) ► 06 (1) ► 03 (1) ► 2021 (4) ► 10 (1) ► 09 (1) ► 06 (1) ► 04 (1) ► 2020 (5) ► 11 (1) ► 10 (1) ► 09 (1) ► 06 (2) ► 2019 (7) ► 09 (1) ► 06 (4) ► 05 (1) ► 03 (1) ► 2018 (14) ► 12 (1) ► 11 (1) ► 10 (5) ► 09 (3) ► 06 (1) ► 05 (1) ► 03 (2) ► 2017 (76) ► 09 (5) ► 07 (2) ► 06 (5) ► 05 (1) ► 04 (2) ► 03 (11) ► 02 (23) ► 01 (27) ► 2016 (39) ► 10 (11) ► 09 (12) ► 06 (4
http://www.cs.queensu.ca/~thurston/ragel/ Ragel は、ステートマシンコンパイラの一種で、パーサジェネレータとして使われることが多い。その実例として、Mongrel や Hpricot がある。 パーサジェネレータとして Ragel を使う利点は、以下の通り。 プロトコルやデータフォーマットを正確にパーズできる その結果、セキュアなソフトウェアが作れる 外部ライブラリに依存しないコードができる ものすごく速い 特に HTTP server など、速度が求められるサーバを書くときに便利なことがわかる。 参考: http://www.zedshaw.com/tips/ragel_state_charts.html ここでは、簡単な例としてドメイン名のパーザを作ってみよう。ホスト言語は C で。 まずは、Ragel 6.0 をインストールする。 OSX
情報科学実験III J-9 (2007年度) コンパイラ実験 (Objective Caml版) 担当 : 南出 靖彦 ([email protected]) 関連資料 宣言型プログラム論のホームページ(2007年度) 宣言型プログラム論のホームページ(2005年度, Standard ML) Objective Camlのマニュアル 参考図書 入門OCaml: プログラミング基礎と実践理解, OCaml-Nagoya著, 毎日コミニュケーションズ プログラミング in OCaml: 関数型プログラミングの基礎からGUI構築まで, 五十嵐淳著, 技術評論社 プログラミングの基礎, 浅井 健一 著, サイエンス社 注意 2008年度は、ソース言語をOCamlの小さいサブセットに変更する予定です。 実験の手引き (PDF版) (実験の手引き(Standard ML版
GCCの次期バージョン GCC 4.3 がそろそろリリースされそうです.そこで実際に開発版のGCC 4.3を試し,変更点・残っているバグなどを調べてみました. 変更点・改良点は http://gcc.gnu.org/gcc-4.3/changes.html にまとめられています.以下,GCC 4.3のsnapshot版(gcc-4.3-20071130)を試用し,実際に影響を受けた変更点・バグをまとめます. C/C++での変更点 "extern inline"は書き換える必要があります extern inline のままでもコンパイルは出来ますが,リンク時に「シンボル名が重複した」というエラーが出ます. 対処方法としては二つ方法があります.一つ目は以下のように extern inline #ifdef __GNU_STDC_INLINE__ __attribute__((__gnu_inl
これは? Compiler (compile.h, compile.c) VM Generator (rb/insns2vm.rb, insns.def)命令記述 VM (Virtual Machine, vm.h, vm.c)レジスタ スタックフレームメソッドローカルフレーム ブロックローカルフレーム クラスフレーム フレームデザインについての補足 メソッド呼び出しについて 例外例外テーブル rescue ensure break, return(ブロック中)、retry 定数の検索定数検索パス 最適化手法threaded code Peephole optimization inline method cache inline constant cache ブロックと Proc オブジェクトの分離 特化命令 命令融合 オペランド融合 stack caching JIT Compile
Wikiaへ引越し Wikiaへ引っ越す事になりました。 新しくページを作る時はWikiaの方にお願いします。 ▲ ▼ FrontPage GCC のソースコードをひらメソッドで読んでいこうかと思っています. GCC は,最も歴史が古く,よってたかって世界中の スーパハカー に知恵と技術の限りを尽くして叩かれ続け,今では全てのフリーソフトウェアの礎石となっている,地球が宇宙に誇れるプログラム ((c) shinichiro_h さん & wo さん) です.ぜひあなたも一緒に,この難攻不落の要塞に挑んでみませんか ? 私 (管理人 あろは) は,とりあえず今の所,フロントエンドが何をやっているのか (GCC の内部データ表現形式である木構造,GENERICTree と GIMPLE Tree がどのようにして生成されるのか) を理解したいです. (RTL を含む,ターゲットア
Michael E. Lee Senior Programmer/Analyst Ontek Corporation 22941 Mill Creek Road Laguna Hills, CA 92653 USA Abstract: A substantial portion of a knowledge worker's life may be spent waiting for a computer program to produce output. Users and organizations control their wait time by purchasing faster computers, adding memory, or using faster network connections. Developers of application progra
I have taught an undergraduate compilers course for over a decade. In the last many years, I have used my own textbook "Basics of Compiler Design", which I have decided to make available online. Permission to copy and print for personal use is granted. Differences between editions Each new edition has fixed errors and rephrased some explanations. Additionally, the 2008 edition added a chapter abou
What is KMyacc? kmyaccはyaccやbisonと同じLALRパーサージェネレータです。 yaccと互換性があり、生成される表が小さく、ホスト言語としてC以外にJava, JavaScript,Perlでも使うことができます。 News 2006.02.28: きむらさんによるWindows VC++用のパッチ 2006.02.16: version 4.1.4: Java, Perl, JavaScript版のパーサードラ イバのバグを修正。このバグは、ある種の文法で構文解析に失敗し実行時エラー を起こすというもの。C版にはこのバグはない。 2005.10.07: version 4.1.3: Java版に yyparsererror (YYERROR) 及びスタックの自動伸張を実装 2005.07.10: Demonstration program 2005.07.0
さかとくです。最近では、JavaScript上でJavaバイトコードが実行できたり(Orto)、JavaScriptでScheme(jsScheme)が動いたりと、とても楽しい状況ですね。ブラウザさえあれば、その上でいろんなプログラミング言語を体験することができるのですから! 私も、これまで、マクロ言語やスクリプト言語をいくつか作ってきました。(代表作は、音楽のプログラミング言語「サクラ」や、日本語プログラミング言語「なでしこ」などです。)今は、ブラウザ上で動く日本語プログラミング言語を開発中ですが、これはまだ見せられる状況ではありません。 そこで、ウノウラボを書くのに与えられただろう時間(約1時間)で、オリジナルのプログラミング言語を作ってみようと思います。もちろん、JavaScriptだけで。 では、はじめてみましょう! (1) コンパイラコンパイラをゲットする はじめに用意するのは、
今回から新しい言語を作ります 夏から秋にかけて、会社の仕事が大変アレな状態でして、 ずいぶん長いこと放置してしまいましてすみません。 さて、ここまで、型なし・解析木実行型の「crowbar」 という言語を作ってきましたが、 crowbarは(実用言語としてはさておき)サンプルプログラムとしては 一通りの機能が揃ったと思いますので、 放置明けで唐突ではありますが、今回から新しい言語を作ります。 言語の名前は「Diksam」です。 この名前は、「パールのようなもの」とかいったネタではなく、 私が好きな紅茶の名前です。 コーヒー言語のJavaがあるのだから、紅茶言語があってもよいのではないかと ※1。 Diksamはアッサム系の紅茶で、 コクのある重めの紅茶です。 crowbarは、変数が型を持たず、解析木を直接実行するタイプの言語でしたが、 Diksamは、静的な型付けがあり、バイトコードを実
プログラム言語は使うだけの道具ではありません。アイデアとやる気があれば,自分にとって一番使いやすいオリジナルの言語を作ることだってできるのです。言語処理系の実装には,ソフトウエア開発の様々な技術やノウハウがぎっしり詰まっています。何より,とてもクリエイティブで楽しい作業です。プログラムはどのようにして解析/実行されるのかといった言語処理の中身を知るだけでも,普段のプログラミングに大きなプラスになります。 誰かが作った言語をただ使うだけの日常からちょっと離れ,言語処理の世界を探検してみましょう!
Where: Normal Loads are getfield, getstatic, array load of non-volatile fields Normal Stores are putfield, putstatic, array store of non-volatile fields Volatile Loads are getfield, getstatic of volatile fields that are accessible by multiple threads Volatile Stores are putfield, putstatic of volatile fields that are accessible by multiple threads MonitorEnters (including entry to synchronized met
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く