タグ

compilerに関するsyohexのブックマーク (18)

  • Improving LLVM-Generated Code Size for X86 Processors

  • libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記

    2015-02-03 libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) 自作CPUへの移植が大変だったのでメモ。 まず、今回ターゲットにする環境の特徴を軽く説明しておくと CPUが自作 ISAも独自 uccという自作Cコンパイラ(開発中で不完全、c89のサブセット)とMLコンパイラがある 浮動小数点数はIEEE single floatのみサポート メモリは4MB IOはRS232Cしかない そこそこ安定したシミュレータがある。 Cコンパイラと入っても不完全なので、cファイルはコンパイルできてもlibcに相当するものはまだない。C89(C90)のサブセットしかサポートしていないので、ビットフィールドが無かったり、charが32bitだったり、構造体渡し・構造体返し・構造体代入がなかったりする。最終的にはこいつでOSをコンパイルする予定なのだけれど、OSもよそから持ってきた

    libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記
  • Csmith

    Csmith is a tool that can generate random C programs that statically and dynamically conform to the C99 standard. It is useful for stress-testing compilers, static analyzers, and other tools that process C code. Csmith has found bugs in every tool that it has tested, and we have used it to find and report more than 400 previously unknown compiler bugs. Publications and Presentations Finding and Un

    syohex
    syohex 2011/04/15
    Cコンパイラランダムテスト
  • OpenMPなコンパイラ,MercuriumとNanos4の導入 - 俺とお前とlaysakura

    前書き どーもー! @laysakura です! 世の中には色んな Cコンパイラがありますね.かくいう自分も, Borland C Compiler から入り, gcc に挫折し, Visual C++ の cl にお世話になり,今は大抵 gcc を使っています. そんな数あるコンパイラの中に, Mercurium というものがあります. 主に研究目的用のものらしいのですが,今後個人的にお世話になりそうなので記事にしますね. 公式のドキュメントや関連論文がいかにも研究目的っぽく,最初の取っかかりになりそうな文書がなさそうなので,お役に立てれば幸いです. (※ Mercurium 単体のインストール法については丁寧な解説があるのですが,後述の Nanos4 を入れないと結局使えないのに, Nanos4 については評価論文くらいしかなかったりします) Mercurium の概要 Mercuri

    OpenMPなコンパイラ,MercuriumとNanos4の導入 - 俺とお前とlaysakura
    syohex
    syohex 2011/04/08
    C to C compiler
  • 彼女の友人がGCCの中の人から聞いた話 - Yet Another Ranha

    以下,エイプリルフールの記事として書いたものなので現代において読む価値はありません. ブログには地震後初めて記事を書く事になって、生存報告としては明らかに遅いですね…。でも、twitterでは元気にやっていました。今は実家にいます。 さて、つい先日東京で言語雑談会というイベントがあって、その折につくばのお家の現状を見て来ました。特別大変な事が起こっていたわけでもなく心底ホッとしました。 その翌日には、彼女と東京は新宿バルト9でサヨナラノツバサを観たのですが、その折にgcc-4.6( http://gcc.gnu.org/gcc-4.6/changes.html )の話がでました。 gccの話が出たのはCランゲッジの話をしていたからなのですが、sequence pointをどうして副作用完了点と訳したのでしょうか、とかそういう疑問が発端だった気がします。 "副作用完了点"を認識した事の無い方

    syohex
    syohex 2011/04/03
    あとで読む
  • Finding and Understanding Bugs in C Compilers ...

    Finding and Understanding Bugs in C Compilers ユタ大学の研究。CsmithというCコンパイラーの自動テストツールを作って、ブン回してみたところ、色々バグが見つかったよ、という報告。 上のコードはUbuntuのとあるバージョンにおいて見つかったバグで、0を返さなければいけないところを、1を返してしまうんだとか。すげえ。

  • ポータブルCコンパイラ"PCC"、初のバージョン1.0目前 | エンタープライズ | マイコミジャーナル

    Portable C Compiler Cコンパイラであるpcc (Portable C Compiler)の動作が安定してきたということで、そろそろ1.0リリースのタイミングだということがpccのメーリングリストで伝えられた。pccは2009年にはC99機能の対応を実現。以後改善を重ね、ついに1.0に到達しようとしている。メールでは最新のpccでFreeBSD 9-CURRENT amd64システムのビルドに成功したことも記載されている。 pccは初期から存在しているCコンパイラのひとつ。GCCが人気を博すまでデファクトスタンダード的な位置づけにあった。ここ数年、GCCの肥大化やGPLv3へのライセンス変更の影響で再び脚光を浴びるようになっていた。GCCと比較した場合のpccの特徴は次のとおり。 C99に対応 BSDライセンス 軽量でシンプル、コンパイルが高速で、メンテナンスが実施しやす

    syohex
    syohex 2011/02/01
    PCC(ポータブルCコンパイラ). ソースを取得してみよう。
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • 最適化コンパイラ屋がHaskellの副作用について考えてみる - ブートストラッピングでコンパイラを作る日記

    Haskellに副作用があるのか?というのは難しいテーマだと思いますが、少なくとも最適化理論での一般的な「副作用」の定義ではHaskellは全く副作用がない言語と言えると思います。 理論的に美しいという点がHaskellの設計の一番重要なところだと思うのですが、バックエンドの泥臭い話も面白いかもと思ったので書いてみます。 私は主に手続き型言語の最適化をやっていて関数型言語は詳しくありませんので、見当違いな事を書いていたら指摘して下さい。 まずは副作用の定義の為に「データ依存関係」(Wikipedia:依存関係)の説明をします。 ある変数xを使用・定義する二つの文を考える時、その評価順序関係には以下の4種類があり、それぞれの関係を以下のように呼びます。 真の依存 x = ... ... ... = x 逆依存 ... = x ... x = ... 出力依存 x = ... ... x =

    最適化コンパイラ屋がHaskellの副作用について考えてみる - ブートストラッピングでコンパイラを作る日記
  • yebo blog: コンパイラのベンチマークテスト

    2010/11/10 コンパイラのベンチマークテスト 先月、Clang C++が大幅に強化されたLLVM 2.8がリリースされたが、PhoronixがGCC 4.2.1から開発版のスナップショット4.6-20101030、DragonEgg 2.8のプラグインを持ったGCC 4.5.1、LLVM 2.8とGCC 4.2のLLVM-GCC、最新のLLVM 2.8のClang、それぞれのコンパイラのベンチマークをとって比較したそうだ。Core 2 Duo T9300、Core i7 970、Opteron 2384のCPUをそれぞれ使ったシステムで、Linux 2.6.35カーネルのUbuntu 10.10 (x86_64)、X.Org 1.9.0、EXT4ファイルシステムを使って、Apache、Gcrypt、OpenSSL、John The Ripper、BYTE、C-Ray、Crafty、

  • pre K&R Cコンパイラ - Plan9日記

    UNIX V6のソースコードを読むときにネックになるものの一つがK&R以前のC言語の仕様である。これをpre K&Rと呼ぶ。マニュアル(「C Reference Manual」)も存在するので、興味のある人はどうぞ。ちなみにUNIX V7では、後にも触れるポータブルCコンパイラを使って書き直された。LionsがV7ベースだったらもっと読みやすかったのにね。 と言っても仕方ないので、pre K&Rの世界に飛び込んでみよう。さっそくコードを見ていく。まずはmalloc、mfreeで空き領域管理に使われてる構造体mapの定義とその実体である。 0141 #define CMAPSIZ 100 0142 #define SMAPSIZ 100 0203 int coremap[CMAPSIZ]; 0204 int swapmap[SMAPSIZ]; 2515 struct map 2516 {

    pre K&R Cコンパイラ - Plan9日記
  • LLVMを捨てたやつが書く、怪しげなLLVM入門 - miura1729の日記

    >>> @miura1729 RT @yppp: あーあ、llvm使って言語作りたいけどバイトコードの 組み立てかたがわからない・・・・・・、 あとBoehm GCの組み込みかたも・・・・・・、まずはASTを作れって話なんだけどなw ああ、やる気がほしいhttp://twitter.com/repeatedly/status/29599415588 ご指名戴いて嬉しかったのでちょっとまとめてみます。かなり間違い、偏りもあると思いますが、教えてもらえると嬉しいです。 LLVMを使ってコンパイラを書く場合、LLVMの命令を知らないと話にならないのでまずは、LLVMの命令を覚えます。 http://llvm.org/docs/LangRef.html でも、これ全部読んでも余り使わないと思います。とりあえず、 NamedTypes http://llvm.org/docs/LangRef.htm

    LLVMを捨てたやつが書く、怪しげなLLVM入門 - miura1729の日記
  • ソフトウェアサイエンス実験III J-9 (2009年度) コンパイラ実験

    担当 : 南出 靖彦 (minamide@cs.tsukuba.ac.jp) TA : 佐久間 雄和 (sakuma@score.cs.tsukuba.ac.jp)関連資料 宣言型プログラム論のホームページ Objective Camlのマニュアル 参考図書 入門OCaml: プログラミング基礎と実践理解, OCaml-Nagoya著, 毎日コミニュケーションズ プログラミング in OCaml: 関数型プログラミングの基礎からGUI構築まで, 五十嵐淳著, 技術評論社 プログラミングの基礎, 浅井 健一 著, サイエンス社 実験の手引き 1〜6節 7〜8節 9〜10節 11〜12節 2008年度の実験の手引き This document was translated from LATEX by HEVEA.

  • プログラミング言語処理

    プログラミング言語処理 講義資料 一覧 全講義資料 pdf版(version 1.1, 108ページ)は、 こちら 言語処理系とは インタプリタとコンパイラ 言語処理系の基構成 例題:式の評価 BNFと構文木 解釈実行:インタプリター コンパイラとは ソースコード 字句解析の基礎:正規表現によるパターンマッチ 字句解析と正規表現 自動字句解析生成プログラム:lex 数式の構文解析:top-down parserの作り方 構文規則 top-down parser の作り方 構文解析の基礎 top-down parserとbottom-up parser 上向き構文解析と還元 演算子順位構文解析法 LR構文解析法 構文解析生成プログラムyacc tiny Cについて tiny Cの言語仕様 tiny C

    syohex
    syohex 2009/12/15
    プログラミング言語処理
  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

    Author:あろは (alohakun) WAKATSUKI toshihiro デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています

    syohex
    syohex 2009/12/03
    GCCのセミナー
  •  コンパイラの構成と最適化  (第2版)|朝倉書店

  • Javaでコンパイラの基礎を理解する 第1回そもそもコンパイラの中ってどうなっているの? (1/2) - @IT

    プログラミング言語処理系の実装 Ajaxなどによりスクリプト言語のJavaScriptの良さが見直されたり、Railsの出現によりプログラミング言語Rubyへの注目度が高まったりしています。これだけプログラミング言語が注目されるようになってくると、独自のプログラミング言語を作成したいと考える開発者も増えてきていることかと思います。 コンパイラ作成を勧める3つの理由 Javaなどのプログラミング言語を使えるようになって、自分が作りたいプログラムを自由に作成できるようになってくると、既存のソフトウェアでも簡単なものを自作してみたくなるものです。せっかくプログラムを組めるようになったのですから、いろいろと自分で作ってみたいと思うのは当然です。中でも、プログラミング言語処理系は一度は作成してみたいと思うでしょう。 一般のコンピュータ利用者と違って、開発者は日ごろからコンパイラやインタプリタを使って

    Javaでコンパイラの基礎を理解する 第1回そもそもコンパイラの中ってどうなっているの? (1/2) - @IT
  • The SCK home page

    What is SCK SCK は GNU Emacs 上のマルチソース、マルチターゲットなコンパイラ作成支 援環境です。全てが Emacs Lisp で記述されているので、Emacs さえインストール されていれば簡単に利用することが出来ます。 仮定する GNU Emacs のバージョンは 21.4 以降で Meadow も含 まれます。OS については、Emacs が動作する Unix ライクな OS であり、 Cygwin も含まれます。現在ソース言語として C 及び簡単な関数型言語 (MinCaml) そして、ターゲットマシンとして x86 及び SPARC がサポートされています。 このプロジェクトは未踏ソフトウェア創造事業の支援を受けています。 Trial Use 上のアーカイブを適当な場所に展開し、そのルートにある sck.el を Emacs の load-file コマ

  • 1