第11回 カーネル/VM 探検隊
僕の学科では伝統的に3年の後期に半年かけてCPU実験というものをおこなう。 班で自作のアーキテクチャを設計・実装し、FPGA基板上でMinCaml(OCamlのサブセット)でかかれた課題用レイトレーシングプログラムが動けば単位がもらえるというものである。 レイトレ完動後には、その高速化にはげむもよし、余興としてゲームをつくるもよしで、自作CPU上で色々あそんだりする。 今年は有志で班を結成し、自作CPU上でxv6というOSを動かした。 僕はその班にCコンパイラ係として参加したので、そのことについてかく。 あと、OS移植班全体の成果についても触れる。 わりと長くなってしまったので、結局なにができたんだっていう人は、とりあえず先にこっちに飛んでほしい。 動機 期間は4ヶ月程度、配布されたFPGA基板のうえで動かしたいという制約のもとで移植するOSはxv6を選択した。 このOSはシンプルであるが
Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使
Lemonパーザジェネレータ チュートリアル →元記事 by Mike Chirico, in Tutorials - Sat, Aug 14th 2004 00:00 PDT translated by Shin-ya TSUBAKI - Sunday, August 29th 2004 17:00 GMT LemonはDr. Richard Hippにより書かれた, コンパクトでスレッドセー フ, 十分テストされたパーザジェネレータです. flexのようなスキャナーとあ わせてパーザジェネレータを使うことで, 書くコードの量が少なくなるのでと ても便利です. パーザ用の文法を書くだけでいいのです. 著作権に関する注意: freshmeat.netにある読者投稿記事の 著作権および責任はすべてその著者に帰属するものとします; 再掲 載については著者に直接連絡をとってください. Examp
〒184-8584 東京都小金井市梶野町3-7-2 法政大学 情報科学研究科 客員教授(2008年3月31日まで) 著書 中田育男: 「コンパイラの構成と最適化」第2版 朝倉書店,東京, 2009. 中田育男,渡辺坦,佐々政孝,滝本宗宏: 「コンパイラの基盤技術と実践」 ーコンパイラ・インフラストラクチャCOINSを用いてー 朝倉書店,東京, 2008. 本文中のいくつか例題と正誤表はウェブページ にあります. 中田育男: 「コンパイラの構成と最適化」 朝倉書店,東京, 1999(現在第7刷). 2000年度大川出版賞受賞 中田育男: 「コンパイラ」 オーム社, 東京, 1995(2010年12月第17刷). (PL/0'コンパイラのJava版、 JavaCC版、 yacc版もあります。また、COINS版は、 COINSのホームページの「Coins を使って新たなコンパイラを作る」の項にあ
Microsoftが4月17日、コンパイラおよび関連するプログラミングツールに共通する機能を提供するコンポーネントライブラリ「Common Compiler Infrastructure(CCI)」をMicrosoft Public License(Ms-PL)で公開した(SourceForge.JP Magazineの記事)。 CCIは.NET Frameworkの実行エンジン(仮想マシン)であるCommon Language Runtime(CLR)で動作するコードやデバッグファイルの読み込みや作成、操作を行うコンポーネントで、これを利用することで.NETアプリケーションを作成するコンパイラなどを作成しやすくなるようだ。Microsoftも、このコンポーネントを利用して開発ツールを作成しているという。 タレコミ子としては利用するケースがあまり思いつかないのですが、コンパイラを作ろう、と
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く