はじめに CQ出版社のDesign Wave Magazine 11月号に掲載されている第11回LSIデザインコンテストの課題は命令数が9つのとても小さいRISCプロセッサです.このRISCプロセッサのCコンパイラを作ります.命令数9つと限られていてメモリ空間もデータと命令にそれぞれ64ワードずつしかありませんから,汎用のCコンパイラではなく,1から100までの整数の和を計算する機械語を生成できればよしとします. なぜコンパイラを作るのか. ソフトウェアの開発速度を劇的に向上できるからです. 例えば先ほどの1から100までの和の合計を求めるコードを,アセンブラとC言語で書いてみて,記述にかかる時間と書いたコードの読みやすさを比較するとよく分かります.C言語はアセンブラと同等の効率のコードを読みやすく記述することができます. また1からプロセッサを設計するということは,ソフトウェア開発は設計
Update (2012) I've proposed a new project called qcc that's a sequel to this. I think leveraging QEMU's code generation work is a much better approach than trying to reinvent support for every possible target. I also I have permission from Fabrice Bellard to use his code under BSD license terms in the new project, which is another reason not to bother with the "MOB branch" of unmaintained drive-by
DWMに掲載された(FPGA向けの)プロセッサ特集記事を見ていて,ハードウェア設計に終始していてソフトウェア開発環境が手薄すぎて,正直これでは使えないなーって思うことしばし. そんなわけでThe LLVM Compiler Infrastructure Project. 環境 OSはWindowsXP,cygwinはバージョン 1.5.25-11. Cygwinでパッケージのインストール gnu make, gcc, texinfo, flex, bison, m4, autoconfi, automake, libttol, libiconv, diffutils の最新バージョンをインストール. ソースコードの入手 http://llvm.org/releases/download.html#2.2から, llvm-2.2.tar.gz と llvm-gcc4.0-2.2.source
[up] | news license installation usage bugs features Is your program large and complex? Are you tired of Greenspunning? Now, in only 500 lines, here we have an informally-specified bug-ridden implementation of Common Lisp, ready to meet your needs. -- Christophe Rhodes Lisp500 is a 500-line implementation of an informally specified dialect of Lisp. It attempts to be not too bug-ridden. Unfortunate
Lisp 言語処理系: CAMPUS LIsP Lemon version, (Version 1.2) 2000年に CAMPUS LIsP を開発/公開 2016年に CAMPUS LIsP 上で動作する ELIZA の実装をした人がいる! 1981年に販売開始された SINCLAIR ZX81 (Z80 CPU, 3.25MHz Clock, 1Kb Memory) 上で!!! 参考: "ELIZA": 人工知能研究黎明期に作られた, 自然言語で人と対話するコンピュータソフトウエアで, 世界初の人工無能. Wikipedia: "ELIZA"の項 Wikipedia: "SINCLAIR ZX81" の項 概要説明 Lisp の処理系の構造を学ぶための、 コンパクトな Lisp解釈系です。 C言語で記述してあり、わずか1000行の短さです。 Lisp 処理系の内部構造の基礎を学ぶため
[Belorussian translation by Bohdan Zograf] What is threaded code? What is it good for? What are the differences between the various threading techniques? How do I implement threaded code portably? How fast are various threading techniques? What is Threaded Code Good for? Threaded code is a technique for implementing virtual machine interpreters. There are various ways to implement interpreters: So
近年、Linuxやcygwinの普及によってだれでもyacc/lexを使って新しい言語を作成し、その処理系を作成することができるようになってきた。 G・フリードマンの「Cコンパイラ設計」は、yacc/lexの使い方を丁寧に説明した名著であるが、英語の原本も日本語本も絶版で、amazonのオークションでも買えないため日本語訳本を借り、OCRから復刻することにした。 Linux、cygwinではbison, flexが使われているので若干本書と内容が異なる部分があるが、それも別枠で整理してみたいと考えている。 4章以降は、竹本 浩のページ(Wiki)に追加中2008/05/15 コンピュータの発達とともに、これまでにCOBOL,FORTRAN、Pasca1,Lisp、C等、数多くのコンピュータ言語が作られてきました。一般には,新たなコンピュータ言語、あるいはそのコンパイラを作るなどということは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く