プログラミング言語 開発スレ( ´�D`) 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG前スレ
プログラミング言語 開発スレ( ´�D`)
http://pc3.2ch.net/test/read.cgi/tech/1020711295/
オブジェクト指向言語開発室
http://isweb43.infoseek.co.jp/computer/am_dev/
0002デフォルトの名無しさん
NGNGcase-sensitive vs. case-insensitive論争
http://pc.2ch.net/tech/kako/1022/10223/1022352006.html
0003デフォルトの名無しさん
NGNG0004モナ吉
NGNG0005モナ吉
NGNG自称・新スレゲッターのモナ吉れす。
どぞ、お見知り沖を
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGおもしろそうですね。
では、今からJAVA勉強します。
0008デフォルトの名無しさん
NGNGというよりも、nasmって何だ…?レベル。
リンカは.NET Framework SDK付属のlinkでいいのでしょうか?
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028347382/
0011デフォルト暇人さん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGライブラリはどうする?
とりあえずCのライブラリでも使っとく?
0014デフォルトの名無しさん
NGNG作った方が良いかも。自分で扱いやすいコード体系・仕様の仮想
CPUを定義できるし、アセンブラも含めた総合的な言語処理系を
実装していけるからね。
0015デフォルトの名無しさん
NGNGライブラリはとりあえず必要ないんじゃない?
呼び出し規約をCにあわせておけば便利だとは思うけど。
0016デフォルトの名無しさん
NGNGexeとは別に
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG> 自分で扱いやすいコード体系・仕様の仮想CPUを定義できるし、
この辺りがまた面倒そうな…
とはいえ、コード生成に関してはちゃんと勉強してないから、
あまりわかっていないんだけど。
0019デフォルトの名無しさん
NGNGバイトコードってJavaの?
002014
NGNG実際に今仮想マシンを作っているけど、仮想CPUの設計・実装自体
は思っていたよりずっと簡単だった。ただ、問題はBIOSというか、
ディスクやキャラクタベースの表示などのデバイス周りの設計。
まあ、このあたりは「言語処理系」本体とは本質的には関係ない
部分だから、ないならないで良いんだけど。
とりあえず、基本的な仮想CPUとメモリシステム、ビットマップ
(フレームバッファ)ベースの表示システムまではできているんで、
そろそろ本来の目的である言語処理系を作り始めたいところ。まず
はアセンブラかな。
002118
NGNG既存のCPUのコードに変換することは前提にしていないのですね。
それにしてもなかなか凝ったものをお作りで。
Smalltalkのようなシステムを含んだようなものを目指しているのでしょうか?
0022デフォルトの名無しさん
NGNG直ぐには必要ないというか、言語のコンセプトに沿ったものを
作る必要があると思うんで、とりあえず必要ないというのは賛成。
とりあえずHello worldぐらいは表示してみたいなという話。
ちょっとそれるけど、呼び出し規約にはどんなのがある?
C呼び出し、Pascal呼び出し以外に。
あと↑の正式名称も知りたいとこ。
0023名無しさん@カラアゲうまうま
NGNG仮想コードマシンを作りたいのか、PCエミュレータを作りたいのか、どっちだ。
002414
NGNG作っているのは、仮想コードを実行する仮想マシン。
作りたいのは、OSや言語処理系を含めた総合的なコンピュータシステム。
で、今やっているのはアセンブラの開発に使うための文字(バイト)列
処理クラスの実装。
0025デフォルトの名無しさん
NGNGcdecl …C言語。引数は右から。呼びだし側が解放(なので可変長引数が使えるが効率悪)
pascal…旧Pascal等。引数は左から。関数内で解放。
stdcall…Windows API。引数は右から。関数内で解放。
register(fastcall)…Delphi。引数の一部をレジスタを使って渡す。詳細はコンパイラ依存。
Windowsならstdcallだけで充分かな。
とりあえずnasmだけでコンソール出力APIを使ってHello Worldができるようになってから
具体的な作業にかかりたいと思います。
0027名無しさん@カラアゲうまうま
NGNGまったく別のレイヤーの話を混ぜるのは感心しない。
このスレはなんのスレだ?
0028デフォルトの名無しさん
NGNGhttp://www.nk.rim.or.jp/~jun/lxasm/asm01.html
002914
NGNGいや、だから主に「言語処理系を作るために」仮想マシンを作って
いるんだが。実機より理想化したコード体系・バイナリ形式を自由
に定義できるし、総合的なシステムを開発する経験をつめるからね。
0030デフォルトの名無しさん
NGNGまったく別のレイヤーって感じはしないけど。
個人的にはネイティブをやりたい。
0031デフォルトの名無しさん
NGNG>>28のリンク先は参考になりました。
その上で質問ですが、nasmwでWindowsのdllの関数を呼ぶ方法を教えていただけないでしょうか?
(インポートライブラリは無しの方向で)
それさえわかれば、一応コンパイラ作れるのかな…?
003228
NGNGmasmやtasmでの解説は見つかるんだけど、肝心のnasmの奴がない。
masmのを参考に、ちょっと挑戦してみました。
一応、表示はでました。
kernel32.libはVC++6.0にあった奴を使いました。
(インポートライブラリってこれのこと?)
アセンブラには自信ないんで、
おかしいところあれば指摘よろしく。
0033デフォルトの名無しさん
NGNGmsg db 'hello, world', 0x0A
msglen equ $ - msg
written dd 0
stdout dd -1
section .text
global _start
extern _GetStdHandle@4
extern _WriteFile@20
_start:
push -11
call _GetStdHandle@4
mov [stdout], eax
push 0
push written
push msglen
push msg
push dword[stdout]
call _WriteFile@20
ret
> nasmw -fwin32 hello.nas
> link /SUBSYSTEM:CONSOLE /ENTRY:start /MAP hello.obj kernel32.lib
003431
NGNG無謀にもilink32を用いて挑戦してみました。
・Borlandのインポートライブラリは名前の変形をしないようなので_と@以下を削除
・コードセグメントは segment .code USE32
・何故か.dataを使うとAdditional segments need to be defined in a .def fileエラーが出る
・エントリポイントを指定するオプションがわからん
というわけで、変数も.codeに置いて、Cランタイムを併用する事で(苦笑)Hello Worldできました。
どうしたものか…。
いや、.NET SDK付属のlinkと、プラットフォームSDKのkernel32.libでもいいんですけど(w
>(インポートライブラリってこれのこと?)
です。dllに対応するlibです。
VBやDelphiやF-BASIC(Win版)なんかはそんなもの無しでもいきなり呼べるので、
何か方法はあると踏んでいるのですが。
インポートライブラリはヘッダ中でdll名を書けないC言語の足枷みたいなものなので、
新しく言語を作るのであれば、引きずりたく無いなあ、と、なんとなく。
003531
NGNGエントリポイントは ..startで良さげ。というわけで、一応-f obj フォーマット版動作しました。
; imports.nas (何故か別ファイルにする必要がある)
import GetStdHandle kernel32.dll
import WriteFile kernel32.dll
; hello.nas
global ..start
extern GetStdHandle
extern WriteFile
segment _TEXT USE32 public class=CODE
..start:
push dword -11
call GetStdHandle
mov [stdout], eax
push dword 0
push dword written
push dword msglen
push dword msg
push dword[stdout]
call WriteFile
ret
segment _DATA USE32 public class=DATA
msg db 'hello, world', 0x0D, 0x0A
msglen equ $ - msg
written dd 0
stdout dd -1
segment _BSS USE32 public class="BSS"
group DGROUP _BSS _DATA
> ilink32 hello.obj imports.obj
003628
NGNGMicrosoftのlinkではこれをリンクするのは無理なようです。
nasmのドキュメントを読んでみましたが、どうもそんな感じのようです。
ilink32はbccに付いてるのですか?
まだ入れてないんで、入れてみます。
003728
NGNGそんだけ(^^;
0038デフォルトの名無しさん
NGNG>>http://alink.home.dhs.org/
003931
NGNGメモリ管理は暫定的にHeapAllocにでも任せておけばいいし、
スレッドローカル変数みたいなのもDelphiのthreadvarは特殊なセグメント使ってややこしそうですが
とりあえずTlsAllocなんてものもあるし。
避けられそうに無いもので残っているのは、例外処理かなあ。
構造化例外処理をアセンブラで実現する方法を御存じの方、おられないでしょうか?
004031
NGNGTRY:
xor eax
push ebp
push HANDLER
push dword [fs:eax]
mov fs:[eax], esp
...
xor eax, eax
pop edx
pop ecx
pop ecx
mov [fs:eax], edx
push END
FINALLY:
...
ret
HANDLER:
jmp ランタイムの関数…ここで何をすればいいのでしょう?
jmp FINALLY
END:
004128
NGNGMSDNに載ってたサンプル見たけど、
いまいち、使いどころがよくわからんです。
構造化例外処理の実装はよく知らんです。
知りたくて、資料を探し回ったんだけど、見つからなかったです。
0042デフォルトの名無しさん
NGNG004331
NGNGttp://www.jorgon.freeserve.co.uk/Except/Except.htm
>>41
TLSがあると、グローバル変数を必要悪として使わなければならない場合
(例えば、コールバック関数にポインタを渡すとか)に、
他のスレッドとの同期を気にしなくていいので(ほんのちょっとだけ)嬉しいです。
004431
NGNGデバッガを使いたかったのでDelphiのインラインアセンブラです。
procedure _HandleFinally;
asm
{ [ESP+12] ctxPtr, [ESP+16] dspPtr }
mov eax, [esp + 4] {EXCEPTION_RECORD}
mov edx, [esp + 8] {try時のesp}
{処理するかどうかの問い合わせと実行で2回呼ばれる. 問い合わせ中は無視}
test [EAX].TExceptionRecord.ExceptionFlags, 6{cUnwindInProgress}
je @Exit
pushad {レジスタを保存}
mov ebp, [edx + 8] //tryでスタック上に積んだebp
mov ecx, [edx + 4] //tryでスタック上に積んだ@Handler
add ecx, 5 //"jmp _HandleFinally" の分を進める
call ecx
popad
@Exit:
mov EAX, 1 {continue}
end;
例外ハンドラ(>>40のHANDLER)の先頭でここへjmpしてくればおっけーです。
004531
NGNGprocedure WriteOnFinally(Data: Integer); register; {動作確認}
begin
WriteLn('Finally', Data); ReadLn;
end;
procedure TestFinally;
var Data: Integer;
asm
xor eax, eax; push ebp; push offset @HANDLER; push dword ptr [fs:eax]; mov [fs:eax], esp
mov Data, 1234 {きちんとローカル変数も使えるか確認用}
mov eax, 1; mov ecx, 0; div ecx {ゼロで割って例外発生}
xor eax, eax; pop edx; pop ecx; pop ecx; mov [fs:eax], edx; push offset @EXIT
@FINALLY:
mov eax, Data
call WriteOnFinally
ret
@HANDLER:
jmp _HandleFinally
jmp @FINALLY
@EXIT:
end;
次はexcept(catch)ハンドラと行きたいですが、種類ごとの分岐とか難しそうな予感。
DelphiやC++は例外をクラスにマップしているので、そのままぱくってくるわけにいかないしなあ。
先に独自の例外をthrowする方法を調べた方がいいかな?
004628
NGNG役に立ってます。
per-threadの部分なんて特に。
といってもまだ始めの方しか読んでませんが。
アセンブラで >>44-45 相当のものを組んでみました。
例外ハンドラが2回呼ばれて、finallyが最後に実行されることは確認しました。
ただ、今のところ、エラーのダイアログ出てしまいます。
SetUnhandledExceptionFilterを使えば抑制することはできると思うのですが、
その対処で良いか自身がないです。
もうちょっとリンク先を読んでみます。
004731
NGNGSetErrorMode(2)でも抑制できましたが、
どこにもcatchされずに、そのまま終了した場合、
ダイアログが出て欲しいのですが、それも抑制されてしまいます。
例外ハンドラ→SetUnhandledExceptionFilterで指定した関数→ダイアログの流れっぽく
SetUnhandledExceptionFilterで指定した関数で1を返せば抑制できました。
しかし、DelphiのRTLのソースコードを漁ってみたのですが、
SetUnhandledExceptionFilterもSetErrorModeも使われていないようなので、
例外ハンドラ中で抑制する方法があるのではと踏んでいます(が、それがわからない…)
//Delphi IDEから実行した場合、デバッガが例外を受けとるので気がつかなかった(w
//その後単独で実行して初めてダイアログの存在に気がつきました。
004831
NGNG例外ハンドラ(1回目)→SetUnhandledExceptionFilterで指定した関数
→ダイアログ→例外ハンドラ(2回目、finally時)
ダイアログがfinallyのタイミングよりも先に出るのが困り者です。
004931
NGNGダイアログが出るのが正しい動作のような気がしてきました。
まずcatchされるまで遡って、catchされる位置が確定してから
finallyが順に実行されるような動きです。
005028
NGNGtry
try
finally
except
ってな感じにしたんですね。
こっちでもVC++独自拡張の例外を使って、確認しました。
例外発生後、
exceptの判定
finallyの処理
exceptの処理
の順番でした。
exceptの処理中に例外が発生させるというような話もありそうなので、
exceptの処理は例外ハンドラ内ではやれないことになる。
(できるかもしれませんが)
そうするとfinallyの処理もハンドラの中なのか外なのかって話が出てきて、
どっちなんでしょう?
0051デフォルトの名無しさん
NGNG次元の合わない式はコンパイルエラー。
double force[kg*m/(s*s)];
とか。
デバッグに便利そうだけどコーディングは面倒?
005228
NGNG聞いたことはないです。
ちょっと思ったことをつらつら書いてみると。
計算途中で kg*m, 1/(s*s) というような型が必要。
あと10のべき乗とか、logや√を取ったりとか、
型の数がかなりの量になると思う。
(型推論を導入する?)
平均をとったりするのは型に束縛されたくない。
(総称を導入する?)
数値計算するプログラムを検証する場合、
プログラムで計算した結果と別の手段で計算した結果とを
比較する。そうすると別手段の方で単位がどうとかいうのが
考慮済みだったりする。
単位とかに縛られない抽象的なものにすることにより、
力の計算とかにも使えたり、金額の計算にも使えたりと
汎用性を生み出してる。
(科学技術計算に特化した言語にするのが目的なら別にいいが。)
Mathmaticaとかにあったりして。(ないと思うけど)
005351
NGNG型推論って?…ググル…文脈から型を推論するわけですか。ムズソウ
しょーもない単位間違いバグを発見して書きこんだけどやっぱいらないかな。
005428
NGNG型推論に関しては実はあまりよく知らなかったりします。
試しにそんなような機能を実装してみたりして。
単位情報を内部に持つ、クラスなり構造体を作り、
演算子の定義とかして。
005531
NGNG>>51
C++で、templateを使った例なら知ってますけど
言語に組み込まれているのは知らないです。
template<int m1, int l1, int t1, int m2, int l2, int t2>
Phy<m1+m2, l1+l2, t1+t2> operator * (Phy<m1, l1, t1> l, Phy<m2,l2,t2> r)
{
return Phy<m1+m2,l1+l2,t1+t2>( l * r );
}
みたいな。
005628
NGNG英語が不得手な私でも割とスラスラ読めたりしてます。
A Crash Course on the Depths of Win32 Structured Exception Handling
http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/exception/exception.htm
005731
NGNG例外コード→オブジェクトの変換が必要と考えました。
で、例外オブジェクトですが、もし文字列などの可変長要素を持つのであれば、
それを破棄するタイミングも考えなければいけません。
普通に考えたらcatch節を抜ける際に破棄されるべきでしょうけれど、
catch節でまた例外が起きる事も考えたら、
catch( ... )
{
try
{ 処理 }
finally
{ 例外オブジェクトの破棄 }
}
としなければならないのでしょうか。
もっといい手は無いものか。
005831
NGNG実際にどんな言語を作るのかも考えて無いな〜。
総称を使えるようにして、あれもこれも…と夢は膨らむのですが、
膨らませれば膨らませるほど自分の実力では作れそうにないのが難です。
0059デフォルトの名無しさん
NGNGじゃありませんでした?
例外中の例外ってかなり致命的な状況だし(逆にユーザーはそうでないコードを
書くべきでない)、それでも悪くないと思います。
006028
NGNG>>59
catch節の中で、例外が発生すること自体は問題ないと思います。
といっても余り使ったことないので自信はなくて、
別の例外オブジェクトを使って、再度throwするという用途があるだろうから
というのが理由です。
ただ、デストラクタで例外を発生させるのは、よくないという話は
聞いたことはあります。
0061デフォルトの名無しさん
NGNGhttp://www.cmagazine.jp/src/kinjite/cpp/exception.html#index28
006228
NGNG例の意味があまりよくわかんないんだけど。
catch節の終わりに暗黙のfinallyが存在すると思う。
わざわざtryを書かなくても大丈夫なようにするのではないかと。
>>58
どんな言語を作ろうかってのは、よく考える。
こんな機能を付けようかと思って考えてると、
効率の悪い実装方法しか思いつかない場合が多い。
無理して実装しても、はたして問題は出ないのかとか、
実際にそんな機能使い物になるのか、悩んだりしてる。
006331
NGNGわかりにくい例ですみません。
catch節を機械語に直す時、中にもうひとつ暗黙のtry…finallyを作らないといけないのだろうか、
二度手間で非効率っぽいなー、という意味でした。
あれから考えたのは、例外を受けとった時点で、EBPと対応させて何処かにリストを作って、
何処かの時点で現在のEBP以下の例外オブジェクトを一掃するような作りにすれば、不要かな。
0065デフォルトの名無しさん
NGNG自分も、新たな言語+ライブラリを作ろうと思ってるんだが。
とりあえず、諦めずに頑張ってくれい。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGコンパイラを作ろうとすれば難しいが。
まずは、インタプリタでいいんでないの?
0068デフォルトの名無しさん
NGNGひょっとして実装のこと言ってる?
66は「設計がうまくいかなくて挫折する」の意。
0069デフォルトの名無しさん
NGNGある程度決まってるんなら、実装してみたほうがいいかもね。
007028
NGNGその差異の部分がムズい。
0071デフォルトの名無しさん
NGNGそうそう。そんで色々考えてくと結局既存言語の真似になっちゃってどうでもよくなって挫折する
0072デフォルトの名無しさん
NGNG慣れたらいいのかもしれないけど。
data 1
> 1 と 2 の処理内容
data 2
> か < の上下に書かれているものに対して、
< か > の左右に書かれているもので、処理
data の横に注釈を付けたり。
開始・終了記号もいるかな?
まあいろいろと。
なんたりして。
007331
NGNG他のスレを読んでいると、ブロックが中括弧以外というだけで気持ち悪いとか
そんな意見をたまに見かけるので、どこまで道を踏み外すかが微妙です。
関数型みたいに引数を遅延評価する手続き型言語で、ブロックも引数として渡せて
IF文すらライブラリで提供する…なんてのを夢想してみたり。
夢想ばかりで固まりません(w
007428
NGNG道を踏み外すのはそれからと思っています。
でも、多少夢想はしていて、
実行したい処理を実行キューを追加していって、
キューから取り出しては実行する。
キューが空になったら終了。
手続き呼び出しや、ループもそれで構成。
処理を並列化し易いかなと思ったけど、なかなか…
007628
NGNG一日放置して改めてみてもやっぱりよくわからんです。
視覚的なものっていうと、回路図のような感じを真っ先に考えてしまう。
処理を表すブロックらを、データの流れを表す線で結びつけてって感じに。
007728
NGNG0078デフォルトの名無しさん
NGNGモナーのフキダシにコーディングしたいです。
0079デフォルトの名無しさん
NGNGpublic void キタ━(゚∀゚)━!!();
public int main() {
キタ━(゚∀゚)━!!.oO(>>74さん、こんなのどうよ?);
}
008228
NGNG別に縦横均等でも、ある程度以上の大きさになると視界からはみ出るから、
似たようなことになりうるように思うけど。
概略を掴むのは視覚的なものの方が楽だと思う。
実際、UMLは視覚的だと思うし。
でも、細部まで視覚的なもので書こうとすると、線が絡むというか、
ごちゃごちゃしてしまうと思う。
オレの「視覚的」の認識がズレているようで何かやだなぁ。
0083デフォルトの名無しさん
NGNG…昔積み木で表現するのがあったけど、あんまり使いやすそうじゃなかったな…
複雑に絡み合った状態って、文字の方が理解しやすいのかな…
008428
NGNG変数への代入を始点、変数の参照を終点と考えると、
文字の場合でも線(ここではデータの流れ)を考えることができる。
ただ、始点と終点しか見えてない訳だから、
複雑に絡んでいる部分を気にしなくてもよくなる。
文字の方が理解し易いというよりも、複雑さの許容度が高いように思う。
視覚的なものでも、複雑に絡み合ったら、ブラックボックス化とか、
階層化とかすれいいとは思うんだけど、どう判断してよいやら。
あと、文字の方が正確に伝え易そうな感じがする。
0085デフォルトの名無しさん
NGNG図形は、なまじ具体的で、融通がきかないから、判りにくくなるのかな…
見たい線だけ目立たせたり、引き伸ばして迂回させたりできれば…
階層化とかの判断は、今のところ自力でやるしかなさそうな気がする…
OO だと、クラス単位とかオブジェクト単位とかもあるけど…
図形で正確に伝えるのは、確かに難しそう…
その辺りとか、文字と組み合わせて行く方がいいのかな…
008628
NGNGサポートを必須にしていないということを初めて知った。
そのときはそれでいいのかと思ったんだが、よく考えてみると、
サポートしないのもありなんじゃないかと思うようになった。
(環境依存するからっていうのは別にして)
ハードウェア例外をキャッチしたい場合ってどういうとき?
それにしても、まだ、例外オブジェクトの生成、破棄のタイミング
調べてねぇや。
008731
NGNGコンパイラ言語で、クラスにメソッドを後から追加できたり、
インターフェースを後から実装させたりできると、幸せっぽい気がしてるのですが、
名前空間の混乱を起こさないような上手い方法無いかなー?
0088デフォルトの名無しさん
NGNG自己書き替えマンセ
0089デフォルトの名無しさん
NGNGインターフェイス名.メソッド名(引数)
で実装させれば混乱は少ないし、同じクラスに同名のメソッドも複数置けるようになし、
実行時にインターフェイスを追加しやすい。アクセスの手間は増えるけどなー。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG逝ってよし
0096デフォルトの名無しさん
NGNG突然どうしたの?
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGC++みたいに
vector<vector<int>>
↑ココ
がだめだったりするような仕様だとイヤ。コンパイル早いやつほしいん。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNGマスオ降臨中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0104マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNGマスオ降臨中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0105マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNGマスオ降臨中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0106マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNGマスオ降臨中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
0107マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNG/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0108マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNG/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0109マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNG/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0110マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNG/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
∪
0111マスオ信者!!!!!!!!!!!!!!!!!!!!!!
NGNG/⌒ヾ⌒ヽ.
/ 丿 ..ヾ
/ 。 人 )
(。...。_ .ノ 。ヾ。...丿
( _ . .. ノ )
/ /
/ ノ し /
三 ̄ ̄ ̄ ̄\ / ) と /
/ ____| . / /
/ > | / /
/ / ⌒ ⌒ | / /
|_/---(・)--(・) | / /
| (6 つ | / .. / / どうやら!!!!!!!!!!
| ___ |/ . / <俺は増殖するらしい!!!!!!!
\ \_/ / / / \_________
シコ \___/ / /
/ \ / . /
シコ ( ) ゚ ゚/\ゝ 丿.../
\ ヽ、 ( / ⊂//
\ ヽ / ⊂//
( \つ /
| |O○ノ \
| | \ \
| ) | )
/ / / /
/ / ∪
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGC++みたいにクラスの定義の中でメソッドを宣言だけしておいて
メソッドの定義はクラス定義の外側に書くっていうのは許容するの?
ClassName::Method(param)
{
}
みたいなやつ。
0114113
NGNGクラス名 : class [ 総称リスト] (継承リスト) {
の形だと、C++のtemplateより機能が弱い。
「自由変数」と「束縛変数」の区別が付かないので
C++みたいなテンプレートの部分特殊化が不可能な気がする。
aliasの構文を
別名 : alias [総称] 何か;
に拡張すればこれで代用できるかな。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGhttp://isweb43.infoseek.co.jp/computer/am_dev/archives/draft.txt
これのparser書いてるの?
とりあえず、自分の判断でやってしまえばいいと思いますよ。
>>114
総称に<>ではなく[]を使っているところから、Eiffel風の総称を想定しているように
思います。その場合、部分特殊化はなくて、制約された総称という概念が
出てきます。
C++のテンプレートにしろ、Eiffelの総称にしろ、使い倒したわけではないんで、
どちらがいいのかはよくわかりません。
とにかくがんばってください。
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125122
NGNGそういう意味で書いたわけではないです。
0126113
NGNGEiffel、読んだことはあるけど書いたことはない言語です……。
つまりはよく分かってない。
過去ログにあったEiffelの資料見ながら勉強し直しますです。
頑張ってみます。
0127デフォルトの名無しさん
NGNG>総称に<>ではなく[]を使っているところから、Eiffel風の総称を想定しているように
比較演算子を括弧に使ってしまうと、(C++同様)構文上のちょっとした罠ができてしまうので、
単純に<>を避けただけだったような…。
0128122
NGNG前スレを調べたら512-517辺りに書いてありました。
C++かEiffelかどっちにするというのは、結局結論がでていないって
ことでいいのかな?(少し読んだけどわからん)
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131名無し募集中。。。
NGNG0132VB太郎
NGNGNT4.0間の端末で
端末Aから端末Bのサービスを操作または情報取得するような
API関数の組み合わせ教えてください。(可能であれば
0133VB太郎
NGNG0134VB太郎
NGNGどこ行ったらいい?
0135かおりん祭り ◆VqKAORinK6
NGNG0136デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141前スレの1
NGNGスマソ
0142本スレの1
NGNG余り覚えていません。
ドラフトは全部は目を通していません。
スマソ
0143皇族の血を引くAV女優 ◆gvFHd.zQUQ
NGNGhttp://www.ruitomo.com/~gulab/search.cgi?k=%28%81%40%81L%faD%81M%29&2=50
( ´�D`)( ´�D`)( ´�D`)( ´�D`)( ´�D`)
0144デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています