Article View: fj.lang.implementation
Article #25Re: OS/GC in Java (Re: c++ or java ?)
From: MAEDA Atusi/前田敦司
Date: Wed, 04 Feb 1998 00:00
Date: Wed, 04 Feb 1998 00:00
62 lines
3835 bytes
3835 bytes
kono@ie.u-ryukyu.ac.jp (Shinji Kono) writes: > 河野 真治@琉球大情報工学です。 > > In article <pypd8h558rn.fsf@tp560e.sowa.is.uec.ac.jp> , > maeda@is.uec.ac.jp writes > >結局、よっぽどtrivialな言語を除いて、完全な自己記述は不可能ですから(こ > >れを言語意味論における不完全性定理といいます(ウソ))、言語からはみ出す > >部分は何らかのマホウ、あるいはズルを使わざるを得ません。 > > それって記述と実装をごっちゃにしてませんか? Turing powerful > ならば、完全な自己記述は可能だと考えるのが普通ですよね。でき > ないのは、実装の方で、それは、常に言語の外にあるものです。 うーんと、そうですね。メタレベルでの自己記述は可能ですね。今はオブジェ クトレベルのどこまでがその言語自身で書けるかという話で... まあ実装の話といってもいいかもしれない。 > だから、リフレクションという、実装と記述を対応させる仕組みが便利。 そうなんですか(いまいち良く判っていない^^;)。例えばCのva_argの(そのへ んの処理系での)実装を、 リフレクションを使って説明するとどういう事にな るんでしょう。 va_begin, va_arg, va_end等はメタレベルのデータをreifyするプリミティブ であって、もとよりオブジェクトレベルのCで書けるはずもない...とか? > >ま、仮にvoid *sbrk(ptrdiff_t size)でOSからメモリを取って来るのを許した > >としてもですね、複数回のsbrk()呼び出しが返したメモリブロックを互いに比 > >較した結果は不定ですから、freeをC言語の範囲内で書く事はできません。 > > これって、 static char memory[0x100000000]; みたいんじゃ、なんでいけないの? > そうすれば、freeもsbrkもmallocも問題なく書けますけど... マルチユーザとか > にしたいのかな? だったら、 static char memory[0x100000000][MAXUSER]; > これってインタプリットしているわけでもないし、マイクロプロセッサの時には、 > 実際にそういうのを使っていました。 元ネタとの関連が良く判りませんが...こうやればそのへんのUnixの malloc/freeも、すべて標準規格のCで作れるという事でしょうか。 # 確認: 「普通の」環境ではOSからライブラリまですべてCで書いてある。 # ところがJava(など)ではOSやGCが書けない。 # という主張が正しいかどうか、という文脈の話ですよね。で、「効率を度 # 外視すれば原理的には可能」という解決はとりあえず却下として。 # 私の答えは、「Cだってズルしてる。同じようなズルをすればJavaだって # OSやGCがそれなりに実用的に書ける」というものです。 > 要は、このmemoryが、実際のハードウェアのメモリに対応しているのか > を信じられるかどうかですよね。このまま、仮想記憶まで対応しようと > 思うと、ちょっと面白いかもね。 > page_table pte[0x1000]; > char *tlb; > とかあってさ... やっぱり難しくて判りません。 MMUを持った仮想マシンをCで書いてるわけですか...? ユーザプログラムとは メモリ参照の仕組みがまるきり別なんですよね? 前田敦司
Technical Details
Message-ID:
<mpsiuqv35cb.fsf@nak.math.keio.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<pypd8h558rn.fsf@tp560e.sowa.is.uec.ac.jp> <180.886516596@rananim.ie.u-ryukyu.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10692b,3d5896058105a238 X-Google-Attributes: gid10692b,public From: MAEDA Atusi/前田敦司 <mad@nak.math.keio.ac.jp> Subject: Re: OS/GC in Java (Re: c++ or java ?) Date: 1998/02/04 Message-ID: <mpsiuqv35cb.fsf@nak.math.keio.ac.jp> X-Deja-AN: 321974555 Sender: mad@tanzanite References: <pypd8h558rn.fsf@tp560e.sowa.is.uec.ac.jp> <180.886516596@rananim.ie.u-ryukyu.ac.jp> Mime-Version: 1.0 (generated by tm-edit 7.106) Reply-To: mad@nak.math.keio.ac.jp Content-Type: text/plain; charset=ISO-2022-JP Organization: Math. Dept. of Keio Univ., Yokahama, Japan Newsgroups: fj.lang.implementation