PFE 0.33.70 Homepage SourceForge Download Documentation -Overview -The PFE Manual old manual / (book) -ChangeLog -Authors -License (LGPL) -Wordsets / (book) -Functions .. (book) -Dp of ANS Forth -The 4thTutor -Forthprimer.pdf - Old Wordsets - Old Words List Forth Links * Forth Repository * Taygeta Compilation * TinyBoot FirmWare * FiCL, Free Forth * Research Vienna * Research Bournemouth * zFo
再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ
WindowsXP利用時の問題について: 付録CD-ROM内のQEMUをWindowsXPで利用した場合に、マウスをQEMUに接続すると(ウィンドウをクリックすると)、Ctrl+Altを入力してもマウスがQEMUから切り離せないという問題があるそうです。 この問題はすべてのWindowsXPで起きるわけではないようです。 執筆中の事前調査が不十分で大変申し訳ありませんでした。 どうも原因は tolset/z_tools/qemu/ の中にある SDL.dll にあるようです。 これを以下からダウンロードできる SDL.dll と差し替えることで、この問題は解決できます。 不具合の生じないWindows2000やWindowsXPに対してこの差し替えをおこなっても特に問題はなさそうですので、不安な人はとりあえず差し替えておいてもいいと思います。 qemu_sdl.zip(165KB) 以上に
はじめに CQ出版社のDesign Wave Magazine 11月号に掲載されている第11回LSIデザインコンテストの課題は命令数が9つのとても小さいRISCプロセッサです.このRISCプロセッサのCコンパイラを作ります.命令数9つと限られていてメモリ空間もデータと命令にそれぞれ64ワードずつしかありませんから,汎用のCコンパイラではなく,1から100までの整数の和を計算する機械語を生成できればよしとします. なぜコンパイラを作るのか. ソフトウェアの開発速度を劇的に向上できるからです. 例えば先ほどの1から100までの和の合計を求めるコードを,アセンブラとC言語で書いてみて,記述にかかる時間と書いたコードの読みやすさを比較するとよく分かります.C言語はアセンブラと同等の効率のコードを読みやすく記述することができます. また1からプロセッサを設計するということは,ソフトウェア開発は設計
SEA & FSIJ 合同フォーラムでビット演算による最適化の妙味とJITアセンブラの中でデモに使ったVMを紹介します. JITの紹介のために前日に2時間ででっちあげたVMなので本当に小さい(200行程度)ですが,エッセンスは楽しめるかなと思います. ソースはXbyak.zipです.この中のxbyak/sample/toyvm.cppが今回作ったVMです(Win, Linuxと多分Intel Macでも動きます). このサンプルはフィボナッチ数列を計算して表示するだけのものです. ここではどのように作ったかの説明をします.一つ前のエントリの資料も参考にしてください. 話の流れ toyVMのスペック,命令セットと命令フォーマットを決める toyVMのアセンブラを作る toyVMの実行部分を作る toyVM用のフィボナッチ数列プログラムを作って実行する toyVMのマシン語をx86に変換するリ
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
Most pages here are written in Japanese. Some pages are in English. UNIXカーネル(第6版) ソースコードには 「You are not expected to understand this.」 (これがわからなくてもべつにかまわない)という木で鼻をくくったようなコメントがある。 Jargon Dictionaryの見出し語にもあるように、UNIXに関するきわめつけの逸話である。 Lions本とよばれる後述の注釈本では2238行に位置するこのコメントに対応する部分を理解すると「2238クラブに入れる」との記述がある。 ちょっと注意 このページは UNIXをひととおり使える C言語でプログラムが組める アセンブラも多少は何とかなる 必要とあらば英語の文献を読むこともいとわない をすべてみたす人を読者に想定している。 部分
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ページを開く