1 :
BOX ◆l1pRZFR5UE :
03/06/03 04:07 今新しい言語を作っているところです。 最初はインタープリタ言語で行こうかと思ったのですが、やはり高速化するために コンパイラ言語に一から作り直しました。 機種依存の無い汎用性の高い言語を目指してます。 ただJAVAと違うのはライブラリを取りそろえたい事、そしてGUIアプリやゲーム制作などに特化してるところでしょうか。 (これは自分の趣味が出てます) もちろん業務用データベースソフトも作れます。 あとネットワークはどの言語も切っても切り離せない仕様になってしまったので、もちろんこの言語もネットワークでの 活躍を期待していて下さい。
2 :
BOX ◇l1pRZFR5UE :03/06/03 04:09
このスレを立てるにあたり、この場をあたえてくれた ひろゆきに感謝を申し上げます そして、私の妻と(このレスを書いてる最中にも邪魔をしてくれる)愛娘に 感謝します
がんがってくらさい
だから何?
5 :
デフォルトの名無しさん :03/06/03 10:10
>>1 この手の話でプロトタイプなりが出来る以前から
スレ立てをした場合、ほぼ確実に企画倒れになる
理由は説明するまでもあるまい
ということで スレ完全終了
8 :
デフォルトの名無しさん :03/06/03 10:21
>>2 …私の知っている方の言い回しに酷似していると感じられるのは気のせいでしょうか。
9 :
BOX ◇l1pRZFR5UE :03/06/03 14:39
>>8 だから、本物ですってw
>>5 Freeにするつもりですよもちろん
>>6 ええ、わかります
ちょっと先走ってしまいましたが
すぐに、上げますんでよろしく
通報しました
愛娘か…いいね。 ところで言語名は決めてあるんですか?
13 :
デフォルトの名無しさん :03/06/03 15:40
Perl,Rubyと来たらSapphireに決まっているだろ。
14 :
BOX ◇l1pRZFR5UE :03/06/03 15:44
>>12-13 いまのところ
「ringo(りんご)」
っていう名前にしようかと思ってます
とりあえず、hello world をみせてください。
ringo より manko が良いと思われ。
>>1 ringo(りんご)でつか。和名でなかなか可愛らしい名前ですね。
GUIアプリが簡単つくれる言語ができるといいでつね。
期待しております。
19 :
BOX ◇l1pRZFR5UE :03/06/03 15:57
>>15 @[hello world]
です
ちなみに、この言語は自分で関数の書式を
定義することが出来ます
上の例だと
@[]が、printf()のエイリアスになっていると考えてもらってかまいません
定義の仕方によっては
:hello worldでも同じ出力結果が得られます
糞スレの予感(´・ω・`)
スレタイからすでに糞
面白そうなので見てみたのだが、ネタでつか...
24 :
BOX ◆l1pRZFR5UE :03/06/03 18:02
何故か偽物が居るようですが・・・。
>>5 フリーはもちろんです。
より多くの人に使って貰いたいです。
>>6 現時点では私の手元ではミドルウェア上にて動作しています。
>>12 言語名決めてません
もしもコードネームがBOXです。
>>18 GUIアプリはドラッグ&ドロップで簡単に作れますよ。
>>23 いや、、ネタではありません。
偽物さんが騙ってただけです。
25 :
BOX ◆l1pRZFR5UE :03/06/03 18:04
>>16 ちなみに名前のことなんですが、mankoとかtinko、unkoは友人に散々言われました。
>>26 そこ荒れてて最悪
関係ないがPC初心者板とかもまともに質問に答えてない
ここはいいとこだよな
28 :
BOX ◆l1pRZFR5UE :03/06/03 18:30
>>26 ゲームしか作れないと言うわけじゃ無いです。
>>1 にも補足してありますが業務用ソフトなども作れますんで。
もちろんブラウザや通常のアプリも作れます。
言語作るのは面白いんだけど、その 99.999% は自分の趣味で終っちゃうんだよな。 実際にニーズと合致して大きな流れになったのは Perl, Ruby, Python ぐらいじゃねーか。 BOX君は、言語作って見返り無くて、誰からも理解されなくても、それでも作りたいかどうか 何度か考え直したほうがいいと思う。
30 :
デフォルトの名無しさん :03/06/03 18:45
目指せ!!HSP!!!! 打倒MSVS!!!!!!!!!!!!!!!!!
いいのか?期待していいのか?
新しい言語死ぬほど作りたい! 作れないと生きてる心地しない! くらいの本能的な気持ちあればいいが・・・ 大抵は他のことやったほうが面白くてためになると思う。
>>29 ニーズに合致してないというか、素人の作った言語がしょぼいからじゃない?
新しい言語というか゛、と゛んな新規性があるのた゛?
35 :
デフォルトの名無しさん :03/06/03 18:53
僕はVCをちょこっとかじっていますが、 "*"やら"&"やら、ポインタの概念がイマイチ理解できん。 それを、取っ払えて、なおかつ、メモリアクセスが高速なアーキテクチャなら応援する。
>>35 *はかけざん、&は論理積。全然難しくないよ(^o^=)
>>33 それもそうだが、収穫逓減の法則ってやつで、プログラミング言語も
供給過剰、飽和状態、言語デフレじゃんか。もう満たされ尽くしてニーズは無いんだよ。
今は技術基盤より、技術を使って実際に何をやるのかってあたりを考えなきゃ
いけない頃合ではある。
し! _ -── ‐- 、 , -─-、 -‐─_ノ 今 何 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) や え が も L_ / / ヽ で れ | あ や / ' ' i き ば 俺 る ら / / く る は ん ず l ,ィ/! / /l/!,l /厶, !? じ に i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ .ゃ き l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ な た _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! い か 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ら ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ / -‐ / ̄/〉 〈 \ /!
39 :
デフォルトの名無しさん :03/06/03 18:58
>>36 C言語の変数の話なのですが...(^o^;)
>>1 とりあえず、ある程度動くのなら、さっさと公開して使ってもらわないと。
42 :
デフォルトの名無しさん :03/06/03 19:04
>>1 開発言語は何ですか?
MFCは使うんですか?
コンパイラをした後はスタンドアロンで動くのですか?
ハハハ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^∀^)< このクソスレ立て逃げか! ( つ ⊂ ) \_________ .) ) ) (__)_) (^∀^)ゲラゲラ シネヤ クソガ
44 :
デフォルトの名無しさん :03/06/03 19:06
立て逃げで、開発断念だったら面白くない?
45 :
名無し@沢村 :03/06/03 19:06
OSをつくってます。言語をつくってます。○○をつくってます。 というスレは山ほどあるが、出来たという話は聞かんが…?
|∧_∧ パシャッ
|・ω【◎】 .∧_∧ パシャッ
| っ 9 【◎】\) パシャッ
|―u' └\ \
. ∧_∧ / く ̄(
( ´∀【◎】 カシャ!
(つ 9 \ (;・∀・)
>>1 \ . ∧_∧
| | | カシャ! 【◎】ω・` )⌒っ
(__)_) / しと,.__,.,.._っ
∧_∧
( )】 パシャッ
/ /┘ パシャッ
ノ ̄ゝ
47 :
デフォルトの名無しさん :03/06/03 19:08
>>24 オープンソースにする?
ライセンス形態は?
オブジェクト指向言語?
機種依存しないということはJavaやC#のようにVM上で動く?
言語をつくるにあたって、yacc/lexやJavaCCなどを使っている?
それとも、XMLスタイル?
すでにJavaなどの言語がある今、わざわざ新しい汎用言語を作る必要性はどこに?
MixJuiceの作者はすでにJavaが普及していることを理由に、既存のJavaを改造する
形で、全て一から作り直さずに、新しい言語を作ったそうだが。
48 :
デフォルトの名無しさん :03/06/03 19:08
1出て来い!!!
49 :
デフォルトの名無しさん :03/06/03 19:10
50 :
デフォルトの名無しさん :03/06/03 19:10
>>45 そーだよね。
WindowsやMac OSは開発人数がアホのような数で作っているんだもんね。
個人レベルでは勝ち目ないよね。
ただしlinuxだけは、別だけど。
∧_∧ ( ´,_ゝ`) /, つ プッ(_(_, ) しし'
52 :
デフォルトの名無しさん :03/06/03 19:12
/ ヽ、. ,〃 ヾ、 // , -‐' -───∨∠ _ , '´ ヽ、 / , ニvニニヽ / ヽ 〃( (`⌒)⊥ヽ / / l || l ゞ'(て@ ) )ソ ヽ / i | ,. ∧ ヽ 弋 八_ フノ ノノ ! ! | | / / | | ! | i ⌒‐'^ー''′ .| | | | / /r`ー! | ! |│ ||! | | | | |// | il ト、ヾ、 ヽ l || | | | | |! ! .∨〈 ! | ヽヾ、 ヽ l | 川 | | | リ 僕をどうするつもりですか ヽ ! ヽ ヽ_ 0ノ \\ヽ l | || | | | | / ヽト、 i//// ヽ‐ //ヽハ! | |リ l / / ヽ ヘ u ヽ!| //!/_〃'" \ヽ、 ヽ_,r_つ u リ //∠_ >- ┬ -‐ 7'"´ / ヽ | ヽ |ー-─/ / ⌒ヽ! ト、!ト、 ト===7 /| ! ト、l| \ヽ // // _ -‐ ( | |ヽニ」∠ニ‐''" |  ̄ ノ | | | | ! | | | /ーヘ | | | !. \/ / / _∠,=彳 / ∧ /-!__fニ __ , /__〉_ / /∠_ヽ、二ー─ ┼─-、 ト、/-ヘ /=‐''" , '" //_,/ ̄` \′ | / / _, / ./ /_ -‐' ̄ ¬、 / ヽ\ /⌒!-‐ ' / / / | |'´ \__ ヽく
53 :
デフォルトの名無しさん :03/06/03 19:12
1、逃げたな。
技術の衰退と革新、開発者の立ち上げと引き際っていうのは
経営者の成り上がりと没落と同じようなものでドラマがある。
>>1 のこれからの人生を考えると、なんか涙が出るな。
何かもっと別の幸せは無かったのかと。それを見つけてくれることを切に願う
∠/レ'レ'レ'レ'L. \ [ ≧|ニ|≦_]~|^)ト、. | 〈 /'''フ-‐〜' 〜'⌒⊂"^ヽ/ ̄ ̄ ̄ / /|│|u| _|_|_ 7 |\ | ,-L__」 -、u |ト:| |'''ー |"~ヾノつ へ、U / ヽu|ヾi_____/ |\ / | r.、 | \ ,.. -┬|l王l王l王l`/ .| | | | _||( o o ,ノ ||f|-―l l/ |ニ・〉 ニ・フ .|l6| | \ ,∧ |├‐┬─‐''′/ || |i'"l~:::l::| し'| u | `Ju l!'|::::::::/ . |∠ っ u ll,ノ | \ | |.|-―l、___/-―┤ .|| |:::::|:::| v ___L,__,.」_u |::|/____ ヽlニ二二) ./ >‐、l \ | || ヽ. / | | || |::::|:::::ヽ((三≡≡三) / _ `i ヽ = ./ / ,.ベ\ \ | | Y。 | | || |::::|:::::::::::\u、━、 /_ -イi~| | |~ヽ | ヽ_. く / / ヽ \ _|\_/\_/\_/\_/\_/|___:::::::::::::/ TT l |υl_, -'_フ ヽ | / / ヽ ヽ \ /:::::::/\υ , -''_~- ''~ u / | ________________/ スレ終了 の ・ ・ ・ ・ \/〜ヽゝ|| ||, -ー〜 フ ::| |⌒i | < /l/ u |ハ、 ヽ 〉 / |)_ o/u ≡丶o_ ノ ::::| .|⌒| |\ レ =、\ _メヽ!ヽ!、 | く 予 感 っ ・ ・ ・ ・ ・ ・ ・ > |( /,' U ( ) υ::| lD | | |`ー |ヽ 。>_ /。 ノ | ,へ | \ \__|/,' υ υ し' ::::|.|_,ノ | | | u/ ~U~ ┌ ||ビ|| | /< ・ ・ ・ ・ ・ ・ ・ ・ ! ! /_/ __, -ヽ O ┌::::||. | | |/__,ヽ__u |!_ン |\. / ノ \\ ̄| i┬┬┬┬┬┬、 ::::∧ | | |『┴┴┴┴')) |\ l/  ̄|,/ヽ/\/\/\/\/\厂 \|l二二二二二二/::::/:::;ヽ | |
_,,,,,....--――――--- 、,,,_ _,,.-‐:''"" ~`'ー-.、_ ,,..ィ''" `ヽ、 ,,:r''" `ヽ、 ,.ィ" `ヽ、 ,.r" \ / \ ,.;" ヽ ,.:' `:, ヽ / ヽ ,!' \ ,:'" \ / `ヽ. _,.!'" `ヽ、 少" `ヽ:、 _,.:-'" ゙`ー-:、_ __,,,..-‐'"  ̄`''ー---======----一'''"~
| .| `丶--,,| | |_,..- ' .| . | ト.,,_ / .| | _/ .| ´`ヽ-y `i /|./' | . / .ヽ V / | / /⌒\ \. // | ./ /....,,__ \ ソ _,.-ナ'ヽ.| / //-;-=t_ァミ;,. ._ \_.∠,;‐-/ ノ.ヽ ./ . /,,ノ ` ‐- .'´ ' /ゝ`'´`ソ ノ.;. | . / / ;'.ノ | /ノ.ソ ./ / ./´ _ノ, ヽ. | ノ 丿 / ./ _,,.. ;''_,,,..-'''' .ソ -., ' ./.,;'ノ ./ ../.,.,.-'´ ヽ _/./ .ヽ.. ::;-‐ァ / .ノ / . (.._ ´'-';,,ノ.,_ \ `,~ / ' / . .´''- .,,__ / `ヽ-,,,_ヽ . _._ ,.' . / `丶--./ー | ._ソソ´|,)ヽ'_ /
' ! lノ,. -‐-ニ´_`ー、__ r''~ /  ̄ '''ヽ _人 l )\ ( ノ \゙、 ー- _ノ \ ヽ >----──っ─‐‐ュ--'''" __ ,.-‐-、r‐¬/ l ノ( \ ノ r~'''-.,,_ ___,,..-‐''''~ ''''~~_,,.-''" < | _,,-‐-r'‐-‐''"`ー7_ノ てl l\,,__,,,.. く ノ  ̄ _,,..-‐'''~'''ー-‐''" ,. -‐ 爻_人__ノ // てl l) ` <__ _,,,.. -‐''~ / /| \ l ノ てl l)へ く~、ー- '''~~ i / └‐'''' /l ,. へ''~ \--─--Lヽ \( ( _ノ ゙、 ゙、 ゙,__,,,.....,,,,,_L゙、 __ / ) i ) l l l \`ヽ、_ ,,,....\ |,.-‐-v'-‐'" l / l l l ヽ \ / ,. -~ヾ`ー" l__,,,,> ..,,__ノノ l !し, ヽ ( / | \ _,,,... -‐'''''"ノ / / / l L ゙、_ \ i  ̄ ̄ _,,..-‐'''~ _,,..-‐'" / / __,,,,../ l し \ ` ,. '" _,,..-'''~ ,. '"_ /‐'"_ /`ー- 、 / (_人丿 ,. '" , '" ,. ‐ニ~‐'''"/,,..-‐'~/  ̄~'''ー-、/\ l \ / / /-‐''''~~'''''''爪 / \ `ー- ..,,!_ ヽ \ / / / l \_l ,,.. `T''ー-..,,,l__~''ー-、 / / /ー、__ / / 厂 ,'
\ .∧_∧ /
\ ピュ.ー ( ^^ )<これからも僕を / ∧_∧
山崎渉は \ =〔~∪ ̄ ̄〕 /∧_∧ ( ^^ )
かっこいい。 \ .= ◎――◎ / . ( ^^ ) / ⌒i
从// . \ ∧∧∧∧ /. / \ | |
( ^^ ) n \ <. >.. /. / / ̄ ̄ ̄ ̄/ |
 ̄ \ ( E) \< の 山. >/. __(__ニつ/ 山崎 / .| .|
フ /ヽ ヽ_// < 予. >. \/ / (u
―――――──―――――――< 感 崎. >―――――──―――――――
<. !!!. >
山崎渉age(^^) < 渉. > 1 名前:山崎渉 投稿日:02/
∧_∧. /<.. >\ (^^)
∧( ^^ ). / ∨∨∨∨. \
( ⊂ ⊃. / \ 3 名前:山崎渉 投稿
( つ ノ ノ /. ―━[JR山崎駅(^^)]━― \.
>>2 |(__)_) / \ (^^;
(__)_) /. ―━―━[JR新山崎駅(^^)]━―━― \
./ \
、 | | ,,r‐-┼--,,、 ,,i´ .| `゙'-. .'"゙゙゙゙゛ ----- / .,-|'¬i、 ‘'i、 │ / |l `i、 ゙l .、,,,,,,_ l゙ l゙ .] } ゙l `゙′ .,,r‐ー` | | | .| | .,,,、 | .| | .ノ | `''ー ゙l | | ._,/ .ノ _,,/ ゙l、 .''='广` ,,-'" '" ヽ_ ___|,,,,,,,,-‐″  ̄` .| | |
丿 見 見 こ し! _ -── ‐- 、 , -─-、 -‐─_ノ る 面 え ア る こ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 目 接 | ン 所 ま L_ / / ヽ な 官 | タ が で / ' ' i. い が く な / / く っ ら い l ,ィ/! / /l/!,l /厶, て い の i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ !? だ は l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ よ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ね 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ 面 5 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) 接 分 |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く 終 で > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! 了 ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ !? > ' ∠ -‐  ̄ノヽ / { i l ! / フ
63 :
BOX ◆l1pRZFR5UE :03/06/03 19:27
>>42 コンパイラ、ソフトともに独自の物です。
もちろんスタンドアロンで動きます。
○○が必要とかはありません。
ただDirectXのモジュールを使うことも出来ます。
その際はお約束としてDirectXを導入して下さい。
現在稼働しているのがKDE(Linux)とWindowsXPです。
>>47 完全オープンソースにする予定です。
オープンソースにするとさらに良い物になりそうなので。
し! _ -── ‐- 、 , -─-、 -‐─_ノ ヲ そ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 自 え タ う L_ / / ヽ 分 | ば 思 / ' ' i は マ っ っ / / く 特 ジ か て l ,ィ/! / /l/!,l /厶, 別 り る i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ !? だ .奴 l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ よ っ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ね .て 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ l ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ ウ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ッ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く ソ > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! | ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
し! _ -── ‐- 、 , -─-、 -‐─_ノ 直 自 な // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 諦 夢 え 視 分 に L_ / / ヽ め を | で が も / ' ' i な 俺 き で / / く い は な き l ,ィ/! / /l/!,l /厶, !? い な i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ だ い l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ け _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! じ |i′ 「1 /てヽ′| | | L! ' i'ひ} リ .ゃ ヽ | ヽ__U, 、ヽ シノ ノ! !ヽ_、ソ, ヾシ _ノ _ノ - ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ / -‐ / ̄/〉 〈 \ /!
し! _ -── ‐- 、 , -─-、 -‐─_ノ で や // ̄> ´  ̄  ̄ `ヽ Y , ´ ) や え き ら L_ / / ヽ で れ | な な / ' ' i き ば 俺 い い / / く る は ん ん l ,ィ/! / /l/!,l /厶, !? じ じ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ゃ ゃ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ な な _ゝ|/' /⌒ヽ ヽト、|/ ' / ̄`ヾ ヽト、 N'/⌒ヾ ,イ ̄`ヾ,ノ! い く 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ !? て ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ / -‐ / ̄/〉 〈 \ /!
67 :
デフォルトの名無しさん :03/06/03 19:29
>>63 > ただDirectXのモジュールを使うことも出来ます。
> その際はお約束としてDirectXを導入して下さい。
> 現在稼働しているのがKDE(Linux)とWindowsXPです。
LinuxでどうやってDirectXを動かすのですか?
>
>>47 > 完全オープンソースにする予定です。
> オープンソースにするとさらに良い物になりそうなので。
DirectXはオープンソースではないようですが、それについてはどう対応なさいますか?
し! _ -── ‐- 、 , -─-、 -‐─_ノ ハ キ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) ハ キ ハ ャ L_ / / ヽ ハ ャ ハ ハ / ' ' i ハ ハ ハ ハ / / く ハ ハ ハ l ,ィ/! / /l/!,l /厶, ハ ハ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ハ ハ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ ハ ハ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! l ハ 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ ハキ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ハャ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く ハハ > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! ハハ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ /
し! _ -── ‐- 、 , -─-、 -‐─_ノ 生 今 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 友 え き ま L_ / / ヽ 達 | て で / ' ' い 本 き ど / / く な 当 た う l ,ィ/! / /l/!,l /厶, い に の や i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽの!? ? っ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ て _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ ネ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) タ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く で > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ し ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ ょ > ' ∠ -‐  ̄ノヽ / { i l ! / フ !?
だ 無 し! _ -── ‐- 、 , -─-、 -‐─_ノ も 職 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 行 同 え ん で L_ / / ヽ . け 窓 | ね デ / ' ' i . な 会 マ !.ブ / / く . い ジ .オ l ,ィ/! / /l/!,l /厶, . の .タ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ !? .ヒ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ .ッ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! キ 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ | ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ カ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ワ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く イ > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! ソ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ | > ' ∠ -‐  ̄ノヽ / { i l ! / フ / -‐ / ̄/〉 〈 \ /!
ハ ( '⌒>-''"´ ̄  ̄ミ'-v'、-'"´ 〈 波 え 部 ゲ (ッ''゙ ,r'゙ 〈 平 | 長 が ( / 〈 !? マ か 許 ( ,、 ,、 / , , ,) ジ ら さ ( ィH+i, リ|」_iル! /レi //く_ だ れ ( lン ヘ ; // ,三、l 、i ル'ノ ,二ミーv‐、 よ る ( l (・) (・) トルリ! (・) (・) |i ね の ( l ⊂⌒◯-----.リ小 ⊂⌒◯------j,!,' | は ( '! .|||||||||_ ノ、人;|_|||||||||_ ク!/ , 'V⌒'V⌒八ヽ 'ヘ_/ ) ( ヘ_/ \ ij /ィ/! ハ キ( / 'ヘヽ、トn-! 〈 キ [ `「l二 ´´ _,、イリ! ハ ャ 〉 ,小<'、.l l l |T゙) モ 〉! l\/)-ャ''" _ ハ ハ( ,.イ ヽヽ ! l l l/~) | (,! ,l//_, っ',_,、-''" ハ ハ 〉! ゙、 ' f ) イ ( _''二-_'_ >、 /
__,冖__ ,、 __冖__ / // ,. - ―- 、 `,-. -、'ヽ' └ァ --'、 〔/ / ヽ ヽ_'_ノ)_ノ `r=_ノ / ヽ __,冖__ ,、 ,へ / ,ィ __ <・>\ `,-. -、'ヽ' く <´ 7_// レ _ ヽ /ヽ、 ヽ_'_ノ)_ノ \> / 「 ・\V ヽ/・l n 「 | /. .└ --丿 =-{_ー{ ll || .,ヘ / ,-、 ' .,フ! ll ヽ二ノ__ { / ハ `l i' i _ `ヽ l| _| ゙っ  ̄フ.rソ i' r' ,..二''ァ,/ |l (,・_,゙> / { ' ノ /''"´ 〈// ll __,冖__ ,、 > >-' ;: ! i { l| `,-. -、'ヽ' \ l l ; . | |! |l ヽ_'_ノ)_ノ トー-. !. ; | ,. -、,...、|:l ll __,冖__ ,、 |\/ l ; i i | l ll `,-. -、'ヽ' iヾ l l ;: | { j { |l ヽ_'_ノ)_ノ { |. ゝ ;:i `''''ー‐-' } . n. n. n l | ::. \ ノ |! |! |! l | ::. `ー-ー 'ブ o o o ,へ l :. |
し! _ -── ‐- 、 , -─-、 -‐─_ノ 巌 八 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 千 君 と 千 L_ / / ヽ 代 が な 代 / ' ' i に 代 り に / / く は て さ l ,ィ/! / /l/!,l /厶, ざ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ 石 _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! の 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ 苔 了\ ヽ, -‐┤ // む { / ヽ,ト、ヽ/!`hノ ) の |/! 「ヽ, `ー /) _ ‐' す ヽ/ r-、‐' // / |-‐ く > / / `'//-‐、 / ま > /\\// / /ヽ_ ! ( / / // / `ァ-‐ ' で / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
74 :
BOX ◆l1pRZFR5UE :03/06/03 19:34
>>67 もちろんLinux上では動きませんよ。
あくまでもDirectXも使えると言うことです。
し! _ -── ‐- 、 , -─-、 -‐─_ノ 批 と 俺 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 評 え か は L_ / / ヽ 家 | 思 わ / ' ' i 気 マ っ か / / く ど ジ ち っ l ,ィ/! / /l/!,l /厶, り ゃ て i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ!? っ る l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ て 人 _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! る だ 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ? ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ シ ス 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ビ テ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く レ キ > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! ル | ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ | > ' ∠ -‐  ̄ノヽ / { i l ! / フ
5UO2Pz1m し! _ -── ‐- 、 , -─-、 -‐─_ノ 長 パ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) え 渕 ク L_ / / ヽ B'z | ま リ / ' ' i !? マ で が / / く ジ だ 許 l ,ィ/! / /l/!,l /厶, よ さ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ね れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ │ る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! の 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ お 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) 手 |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く 軽 > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! │ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
自 し! _ -── ‐- 、 , -─-、 -‐─_ノ 分 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) の そ え と で L_ / / ヽ つ れ | か は / ' ' i も ネ マ 思 傑 / / く り タ ジ っ 作 l ,ィ/! / /l/!,l /厶, !? て が .i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ る 出 l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ ? 来 ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! た 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ で つ .了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) す ま |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く け ん > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! ど な ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ │ い > ' ∠ -‐  ̄ノヽ / { i l ! / フ W ん / -‐ / ̄/〉 〈 \ /!
し! _ -── ‐- 、 , -─-、 -‐─_ノ え そ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 考 2 | 悲 れ L_ / / ヽ え ch マ 惨 で / ' ' i て で ジ だ 反 / / く る ネ 1 よ 応 l ,ィ/! / /l/!,l /厶, !? タ 日 ね な i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ 中 | か l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ っ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! た 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ら ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ ! > ' ∠ -‐  ̄ノヽ / { i l ! / フ
し! _ -── ‐- 、 , -─-、 -‐─_ノ 食 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) フ え 35 い L_ / / ヽ リ | 歳 つ / ' ' i | マ ま な / / く タ ジ で げ l ,ィ/! / /l/!,l /厶, | だ る i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ !? よ の l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ ね は _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! l 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 無 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ 職 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ガ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く ン > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! バ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ ! > ' ∠ -‐  ̄ノヽ / { i l ! / フ
| EXIT |
 ̄ ̄ ̄ ̄
|\_____________|
| |:::::::::::::::::::::::: |
/⌒彡 /⌒彡 | |::::☆:::::::::::::::::::::::: |
/ 冫、) / 冫、) | | :::::::::::::::::::::::::::::::::::::|
| ` / | ` / | |:::::::::::::::::::::::: |
( ニニニニニニニニニニ_ア /::::::::::::;\ | | |
|:::::::::::: l | //´|:::::::::::: l | | | |
|:::::::::::: | | | | |::::卍::: | | | | |
/::::::::::::/| | // /::::::::::::/| | | | |
|::::::::::/ Uヽ /U |::::::::::/ | | | | キティ星逝き↓ |
|::::||:::| | |
>>1 | | |::::||:::| U | | ___A___ |
|::::||::| | /⌒彡/ |::::||::|. | | (_o_o_o.) |
| / | | / 冫、) | / | | | |_______ハ___|
// | | | ` / // .| | | | / / |
// | | | /| | // .| | | | / / |
// | | // | | // | | | | / / |
U U U U U U  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
さっきからAAの荒らしがウザイんで深夜まで書き込むのやめておきます
よ. 180 し! _ -── ‐- 、 , -─-、 -‐─_ノ 身 ね cm // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 長 え | 未 L_ / / ヽ 170 | | 満 / ' ' i cm マ !! は / / く !? ジ 男 l ,ィ/! / /l/!,l /厶, じ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ゃ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ な _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! い 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
思 オ 卒 し! _ -── ‐- 、 , -─-、 -‐─_ノ い ナ 業 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 脳 え で っア L_ / / ヽ 内 | に た ル / ' ' i 元 マ 脳 だ バ / / く カ ジ 内 け ム l ,ィ/! / /l/!,l /< , ノ 変 で で i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_i !? 換 ’ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ だ ヤ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! っ ッ 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ て た ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ !? ,√ !  ̄ リ l !  ̄  ̄ 7/ レ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 バ L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ カ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) ジ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く ャ > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! ナ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ イ > ' ∠ -‐  ̄ノヽ / { i l ! / フ ノ
:::::::::::/ ヽ:::::::::::: :::::::::::| ば じ き i:::::::::::: :::::::::::.ゝ か つ み ノ::::::::::: :::::::::::/ だ に は イ::::::::::::: ::::: | な。 ゙i :::::: \_ ,,-' ――--、..,ヽ__ _,,-'' :::::::,-‐、,‐、ヽ. )ノ _,,...- :::::_|/ 。|。ヽ|-i、 ∠_::::::::: /. ` ' ● ' ニ 、 ,-、ヽ|::::::::: ニ __l___ノ |・ | |, -、:: / ̄ _ | i ゚r ー' 6 |:: |( ̄`' )/ / ,.. i '- `ー---―' / '(__ ) ヽ 、 ====( i)==::::/ ,/ニニニ :/ ヽ:::i /;;;;;;;;;;;;;;;;
_____________ノ| |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<ノ| |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ |;;;;;;;;;;;/三────;;;;;;;;;;;;;;;;;;;;;;;> |;;;;;;;;;;;|∠二二ゝ ヽ二二| |;;;;;;;;;;;|三く( () ( ()ノ|ヽ |/⌒ヽ|三 \ ソ |б三三 _ ̄ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ三/三  ̄ ‐ ̄ /< アフリカの貧しい国に病院を建てるのが夢です。 /ヽ\ / \____________ ゞ:::( \_____/ (三l::::\ /\__ /三三::::::::ヽ / ヽ` ̄ヽ /三三三ヽ'⌒ヽゝ /⌒ヽ/ ヽ
_人人人人人人人人人人人人人人_ > な、なんですって!!! <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ _,,.-‐-..,,_ _,,..--v--..,_ / `''.v'ν Σ´ `、_,.-'""`´""ヽ i' / ̄""''--i 7 | ,.イi,i,i,、 、,、 Σ ヽ . !ヘ /‐- 、u. |' |ノ-、 ' ` `,_` | /i'i^iヘ、 ,、、 | |'' !゙ fエ:エi'ーfエ:エi iifエ:エij.`fエ:エi.7 !'.__ ' ' ``_,,....、 .| . ,`| u ..ゝ! ‖ .j (}fエ:エi `fエ:エi |',`i _,,..-<:::::\ (二> / ! _`-っ / | 7  ̄ u |i'/ . |、 \:::::\ '' / \ '' /〃.ヽ `''⊃ , 'v>、 !、\ \. , ̄ γ/| ̄ 〃 \二-‐' //`
______ r' ,v^v^v^v^v^il l / jニニコ iニニ!. / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ i~^' fエ:エi fエエ)Fi < A mother's slander does not allow. ヽr > V | Don't perform it by any means. l !ー―‐r l | It means your death. __,.r-‐人 `ー―' ノ_ \_________________ ノ ! ! ゙ー‐-- ̄--‐'"ハ ~^i ヽ ! ヽ、_ _.ノ i \ ヾV / ! /.入
88 :
名無し@沢村 :03/06/03 19:58
>>1 よ、つくっていることに価値はない。
完成したことに価値があるのだ。
,、.'" __,,,,,_ ゙' 、 ,.':: ,、- ''"´ `゙゙゙''‐ 、 ゙' , ,,、、、 ,.'::: .,. " ゙'.、r'" ゙'、 ,.':::: , " , ., , ,, 、, , 、 、 ,r" ', _,i、 ,.' .i ,','l !l .!l l. ! ',, l .l、/ ........ ! ゙,~ ,.ri. .{ .!.!,i,',l ,',!,! l', l',l,,,!/ .::::::::::::::! ゙、:::::,.' .::! l゙、'l" / \ '''.,' .:::::::::::::::::l . ,>' .:r"l ',.l,、, (・) (・'i;' .:::::::::::::::::::,' 〈-、::::゙'‐!. ,. '、ゝ;;;:j ⊂⊃ /. .::::::::::::::::::::,' お前のものはオレのもの! . ゙、 ゙''‐-l ', .ヽ`.´ __l_,.' .::::::::::::::::::::/ 俺のものはオレのもの! `,i‐、..}i '.;:. ゙ヽ\__/ .:::::::::::::::::::,.' タケシ覚えた! . / ;. ゙,゙, ';: ノ,,、-''" .::::::::::::::::::,r' / ,.'-‐゙'',-,、,i'"゙! " .::::::::::::::::,r'"', / i'r"゙'´` `'''>' ゙,::::::::::;r':! ', . / .,、'´ ::、 .:,r'" ゙、:::::'::::::',. ', / .,.! .. :゙'::,' 、.l. ゙、:::::::::: ゙、. ', / /,', ...::.:::::::,' ゙'i. ゙、:,',:::::. ゙、 '゙、
| ___OO___OO キレイだ! .i⌒i____. | |(__ __)(___ )_l⌒l(⌒( ̄ ___.) | |(__ __) ノ ノ(_ ヾノ~| (__) | | ノ / / ./( O ,-, )ノ ノ__ 三|三|- | | ( _ ノ ( __ ノ \__ノ ( _ ノ(___(___)ノ| ̄| .| | _____  ̄~ .| | 「メイドカフェで激しくハァハァ」の巻 /⊂~)\.. ..| | ┏━━━━━━━━━━━━━━| | | |┓...│ | ┃:::::::::::::/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::\_,|_|_,/┃ | | ┃:::::::::/::::::::::::::/|:::::::::/ノ::::::::/\人::::::::::::ヽ::::::::::::┃ | | ┃::::::/:::::::::::::::/│://∧::::ノ ヾ::::::::::::ヽ :::::::┃ | | ┃:::::|::::::::::::::/ |/ |ノ |/ |:::/、:::::| ::::::┃ | | ┃:::::|:::::::::::/ ;;;;;;;;;;;; ;;;;;;;;;;;;;; レ .|:::::| ::::::┃ | | ┃:::::|::::::::/ ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ ヽ:::| ::::::┃ | | ┃:::::| ::=ロ fエ:エi | | fエ:エ)Fi ロ=::::| ::::::┃ | | ┃:::::|:::/丶 /ノ ヽ / . ヽ| ::::::┃ | | ┃:::::|/ `ー---一´/ `ー---一´ .| ::::::┃ | | ┃:::::| (●_●) | ::::::┃ | | ┃:::::| l l | ::::::┃ | | ┃::::| __-- ̄`´ ̄--__ |::::::┃ | | ┃:::| -二二二二- |::::┃ | | ┃::::\ /:::::┃ | | ┃::::::::::\ _- ̄ ̄ ̄-_ /:::::::::::┃ | | ┃:::::::::::::::::\ /:::::::::::::::::┃ | | ┗━━━━━━━━━━━━━━━━━━┛ | | 秋葉原書院コミック文庫 小田倉出武夫 .|
‐  ̄ ̄ ̄ ヽ / \ / ヽ ////( )\ )\)\ヽヽ (ししし⌒⌒⌒) )⌒⌒⌒⌒) ) ) ) | l\ fエ:エi ‐/ |,fエ:エi 、/\|/ヽ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ l\/ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ノ ノ ノ | そこの貴方方、 l\ /了 | 了 /了 |了 ) ̄| | | .∠ 私の名称を申し上げてみて下さい! \ | | / | .| | .| | | | | | | /| | .| | | .L.」 / | | | | | .\_______ ∧| | | | .| L .| | .| | |J | | ( ヽ| .| | | | | | | | \|ヽ | ヽ/|ヽ .|_| |_| .|_| .|_| / | ∧ /| | \_______ / / ヽ / ヽ/ |___| \_______/| |_ / | /| |\ /_.」T /| | ) / \\_/ . |/ |/| .ー| .\ 」 > ヽ ./ ( )/ ( 」 ̄\|__ / ̄ \_/ / |___\ /____/ | | // \ |\ // ヽノ .| | |\ / \ \\ .| ) / ./ ι | μ | | |_」 //彡 \_ .\ \二__.| | )αζ .| λρτ >>____/ | ..\
>>74 >
>>67 > もちろんLinux上では動きませんよ。
> あくまでもDirectXも使えると言うことです。
機種依存しない言語では・・・・・?
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 先頃閉鎖されましたロビーに代わりまして爆問板新設だそうです。 \____________ _______ V ,――、 ,――、 / ヽ \ | _.ム | ,――、 ,――、 \ ――  ̄\ノ / ヽ | / \ | | _.ム ノ / ー ー | | \/ ̄  ̄ ̄\ |fエ:エi fエ:エi | | / ,-―――-ヽ | __ ● __ | | / / / \ | |=__ = | | | / ,fエ:エi fエ:エi| /_ \ 》 / \ | | __ ● __ | \  ̄ \ | | =__= | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ヽ /__// < それはないかと。 /| \ /\ \______________
,_,..,ィヽ,、 | /;;::r‐〜-ミ、 | そちらは私の 4~/へi::::::;/,ヘミ7 | 御稲荷様に '-l|fエ:エl:::lfエ:エ|i' ノ 御座います。 l! '" |::::l、~`リ へ /`ー、 ハー;";::i:::ヾイl! ,r'~`ヽ、 \ ,.ィ" ri l i ト、 1:|`丶:;;;:イ' ill!7、 、 y; ヽ、_` ー――――― ,. -‐''" 、 くゝソノリ~i | - 、 , -‐'7ハ ヾニト- ~` ー- 、_ , ィ ´ ,ゝ、_ `r' l | 、レ // `テ三..ノく _ ` ヽ、 / , -' ,、 `、_) l,i, i // (/ ...,,;;;;:` 、 ヽ ;' '" ノ ;;;;:::: i ! : // .....:::::;;イ、_、_\ _ _ノ l ..,, __,ィ"-‐´ ̄`i::::: ゙゙゙= ...,,,,,. l | ,// - = ""::;; :/ ` '''' '" ヾ :;;;,, ,i l,// ,,..," / _,,.....,_ ,. -- .,_ \ :;,. ;' V ;! `; /;: ノ ,.ィ'"XXXXヽ /XXX;iXXミ;:-,、 ヾ '" ''' /./! ヾ / ,. - '"XXXXXXXX;i! ,!XXXXi!XXXXX;`iー;,、 i 、. / ;:::゙i ;: , | ,. r'"XXXXXXi!XXXXXX:l! |XXXXX;|XXXXX;|::::::::|`ヽ、 ,! ,': : :| ,.レ"::::|XXXXXXX|XXXXXXX;l! !XXXXX;|XXXXX:|:::::::::i ` ;! : : i! / !:::::::::|XXXXXXX|!XXXXXXX| XXXXXx|XXXXX;!:::::::::::! `. /:: | '" l:::::::::::|XXXXXXX|XXXXXXX | XXXXXx!XXXXxリ:::::::::::! |:: | i:::::::::::ゞXXXXXツ1XXXXXXX| XXXXX/ \XXソ::::::::::/ i!:: ノ i!::::::::::::ゞXX:/ lXXXXXXX| XXXX:/ `ヾ::;;;;;:ツ ヾ;::: ; ノ ヾ:;;:::::::ゝ'" ヾXXXXX |
,,,,;;;;;;;;;;;;;;;;;;;;,,,,,, ,,;;;;;;;;;;;;;;;;;;;;;;---、;:;:;:;:;:,,, /;;;;;;;;;;,-'''" ゙'''ヽ;;;;;;ヽ /;;;;;;;;;''' ヽ;;;;l /;;;;;;;;;'" _ヽ、 r‐、'" ) i';;;;;;;;;;; ,,;;;;;;-=ヽ、 / / / |;;;;;;;;;;| ,,,,,;;;;;;;;;-、 ‐'"゙_,,,,,,,_\ r‐、' ヽ/ヽ/゙l |;;;;;;;;/ /-─'''''''"ヽ "‐=二 ̄ヽ、 / ノ / /、ノ |;;;;;;| '",,lfエ:エi‐ ヽ " 、 ヽ /ヽ、/ヽ/ヽ/ / ,┴、;| ==ニ-‐'" , ヽ、 ゙i /ヽ、/ / /、_/ |l |ヽl /l >\ i / /--/、/_ / \|lノl /└-‐ヽ-‐' ヽ i / ─'''" ''、/ l、 ゙| / ,,---'ニ=メ i .| / / ヽ-i i' /-l「ヽ┼+// ;; / みんなのアイドル三瓶です! ./ ─-、__,,-- / ヽ、 ヽ=ヽ─++-''ノ /、 / / ̄ヽ ,,,,\ ヽ ゙‐─''''''"~ / ヾヽ、 / / ゙\____,,-''''" \ / ) ./ / l'" ヽ、 \ヽ、 / / l l __,,,,ノ \ ゙''ヽ 、,,,__,,;-'" / l ,,,-─''"
>>92 あくまでもスタンドアロンを前提とした仕様なんだろ?
DirectXなんか「あくまでも」の仕様らしいし。
どうでもいいから、コピペ荒らしは止めれ。
す. も し! _ -── ‐- 、 , -─-、 -‐─_ノ 北 で し // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 斗 え に か L_ / / ヽ 神 | 死. し / ' ' i 拳 マ ん て / / く !? ジ で ウ l ,ィ/! / /l/!,l /厶, る チ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ わ ラ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ け っ _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ? て 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
I 若 し! _ -── ‐- 、 , -─-、 -‐─_ノ 若 S ハ // ̄> ´  ̄  ̄ `ヽ Y , ´ ) ハ え S ゲ L_ / / ヽ ゲ | A. が / ' ' i !? マ だ 許 / / く ジ け さ l ,ィ/! / /l/!,l /厶, だ れ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ よ る l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ ね の _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! l は 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ
100 :
デフォルトの名無しさん :03/06/03 20:05
100
し! _ -── ‐- 、 , -─-、 -‐─_ノ 9 河 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 河 え 点 原 L_ / / ヽ 原 | 差 が / ' ' i !? マ 以 抑 / / く ジ 上 え l ,ィ/! / /l/!,l /厶, か ら i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ら れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ よ る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ねの 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ │は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ し! _ -── ‐- 、 , -─-、 -‐─_ノ
SDLがある
>>88 何をもって価値とするかは人によって違うからなぁ・・・。
言語作ってメシを食っていく、ということに価値を置くなら、アメリカ行ってSunかMSに就職
するしかないし。
誰にも使ってもらわなくてもいいから、とにかく作ることに価値を置くなら、
>>1 のやり方でよい。
もうプログラミングに新しいパラダイムなんて生まれないし、新しい言語の必要性は無い。
し! _ -── ‐- 、 , -─-、 -‐─_ノ 9 河 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 河 え 点 原 L_ / / ヽ 原 | 差 が / ' ' i !? マ 以 抑 / / く ジ 上 え l ,ィ/! / /l/!,l /厶, か ら i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ら れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ よ る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ねの 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ │は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ し! _ -── ‐- 、 , -─-、 -‐─_ノ
確かに「プログラミング言語」そのものに異常な情熱を注ぐヤシは確かにいる。 まつもとゆきひろもその一人だった。しかし Ruby ですら最初は広く使ってもらおうとは 考えなかったし、本当に単なる趣味以外の何者でもなかった。メシのタネになるとは夢 にも思わなかったという。 趣味とは何かってことを考えると、いろんな人がいるもんだと思うよ。
し! _ -── ‐- 、 , -─-、 -‐─_ノ 9 河 // ̄> ´  ̄  ̄ `ヽ Y , ´ ) 河 え 点 原 L_ / / ヽ 原 | 差 が / ' ' i !? マ 以 抑 / / く ジ 上 え l ,ィ/! / /l/!,l /厶, か ら i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ ら れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ よ る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! ねの 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ │は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐ ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ し! _ -── ‐- 、 , -─-、 -‐─_ノ
>>1 本当に言語を作っているならレス削除依頼を、
そうでないならスレッド削除依頼をしてくれ。
108 :
デフォルトの名無しさん :03/06/03 22:00
間違ってもVBみたいな糞言語にして流行らせるなよ。 マジでスパゲティコードむかつくから。 メンテナンスしやすい言語にしろよ。 人気が出そうなときは責任もてよ。公害をもたらしたM$みたいななめたことしたら頃す。 核兵器を発明しておいて、買取人が核兵器と核兵器製造法を持ち出しておいて ほうっておいて「あとは知らない」で済ませるなよ。まじでムカツクから。
109 :
デフォルトの名無しさん :03/06/03 22:09
アスペクト指向プログラミング
クソなのはVB使ってる奴ら
クソなのは低レベルな奴らであって言語は関係ないんだけどな。 バグばっかり出しているくせに「俺は○言語使えるんだぜ。すごいだろ。」って ×言語ユーザを馬鹿にしているのが目に浮かぶよ。
まあね。
まあ、クソ言語を学んだところでクソ知識しかつかないのだから、 そう奴らを責めるな。
正直言うとなんか悔しいからクソ言語と決め付けているだけなんだけどね。
つーか技術理不足を言語のせいにする奴はクソと相場が決まっているわけだが。
>>1 AA荒らしが収まったところで、そろそろ語れや
さっきから「クソ」をいってる厨は悔しがってるVB厨だな。 そうムキになるな。
>>111 > クソなのは低レベルな奴らであって言語は関係ないんだけどな。
> バグばっかり出しているくせに「俺は○言語使えるんだぜ。すごいだろ。」って
> ×言語ユーザを馬鹿にしているのが目に浮かぶよ。
VB厨がマウスでGUIアプリでちょっと作れたくらいでGUIプログラミング経験ない
他言語の香具師を馬鹿にしているのと同じ。
>>116 AA荒らしをしていた張本人はVB厨(ワラ
120 :
デフォルトの名無しさん :03/06/04 10:58
で、1 は?
121 :
BOX ◆l1pRZFR5UE :03/06/04 11:08
仕事場からです。 昨晩は早くに寝てしまいました。 いろいろ言われてますが、へこたれずにみんなの納得のいく物を作って見せたいと思います。 むしろもっといろいろ言って欲しいです。参考になりますんで。 作業に戻ります。
>>121 bisonでつくっちょるの?
JavaベースにしてJavaコンパイラ、JVMのソースコードを参考にしてつくっちょるの?
123 :
デフォルトの名無しさん :03/06/04 12:43
ringo・・・・? どっかで聞いた事があると思ったらmacromediaという会社が出してる オーサリングツールの『Director』っていうソフトに乗っかってるスクリプト 言語の名前が「Lingo」。チトかぶってない? リンゴがダメならmikanってのは・・・カワイイとおもふが。
124 :
デフォルトの名無しさん :03/06/04 12:47
やっぱもっとカコイイのにしないと。 J-1がいいと思ふ。
C#や.NET, VB、なんていうダサい名前は付けないでくださいね。
126 :
デフォルトの名無しさん :03/06/04 13:08
BOXって結構語呂が良いなあ 少なくともC#やPHP、Perlなんかより身近な単語たと思う。
x-boxだったらばかにします。 やーいペケ箱
128 :
デフォルトの名無しさん :03/06/04 14:22
で、どうなのよ
129 :
通りすがりのしぃもあ老師 :03/06/04 16:02
>1さんへ 言語の製作にはどんな言語を? ちなみに我は温かいスープを
駄スレの予感。(`・ω・´)
駄レスの予感 Ysの登場人物にもいた
腐ったみかん に一票
133 :
名無し@沢村 :03/06/04 18:45
>>118 >> クソなのは低レベルな奴らであって言語は関係ないんだけどな。
HSPでも?
まあ、駄目な奴は何をやっても駄目なんだけどね
| |- 20 | | | |- 10 | | | |- 0 | | | |- -10 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ |┃| (´∀` ) < このスレ寒すぎ |┃| ( ) \_______ . (●) | | |  ̄ (_(__)
136 :
名無し@沢村 :03/06/04 21:42
>>118 >> クソなのは低レベルな奴らであって言語は関係ないんだけどな。
のまいらよ、低レベルな奴らは、なぜ高度なことを習得できないんだろうね?どう思うよ?
まあ頭が悪いからなんだが、低レベルな奴らの中にも、すごく頭のキレるやつがいることをおれは知ってるよ。
例えば一度教えただけで、すぐに仕事の要領を飲み込んだり、頭の回転が早くて計算をパッパッパッとしたりだよ。
だから低レベルな奴らが全員頭が悪いかというと、いちがいには言えないんだよ。
だが、低レベルな奴らって、高度なことに限っては絶対に習得できないんだよ…!!
必ずしも頭が悪いわけではないのに、何が欠けてるんだろうね?
おまいらよ、どう思うよ?
のまいら?
キマイラのことかな
ひゅうううるるるるるるううう
寒い風が吹いているようですな
るーるるるるう
糞コードを書く奴は低レベルだが、何も書かない奴は糞以下である。
void main(int){ Printf("%dお前ら全員糞以下%s"); }
うpしないどころか開発言語すら明かさない所を見て
>>1 は完全に脳内と思われ
148 :
BOX ◆l1pRZFR5UE :03/06/05 02:03
今日は1日作業していました。
>>146 アップしないのでは無く、現時点ではまだ出来る状況ではありません。
もう暫くお待ち下さい。
>>147 オープンソースにする予定です。
そうなると他力本願と言われても仕方ないです。
明日は早いのでもう寝ます。
>>1 開発言語は?
1. 今は秘密にしておく必要がある。
2. 自分が使ってる言語の名前も知らない。
3. 話をそらしているだけで結局は脳内。
なあみんな、3だろ? 3以外ないよな?
>>149 漏れも、
>>1 が 3.に該当するという意味で他力本願だと思った。
>>1 はyacc/lexすら知らなかったとか。
こりゃだめだ
>>1 じゃ、XMLパーサ作ってXML応用規格にして作ってしまえよ。
そりゃいやだ?
じゃ、既存の言語に改良を加えろよ。AspectJみたいによ。
それもできない?
結局こりゃ駄目だ
>>1
151 :
デフォルトの名無しさん :03/06/05 17:04
>>145 それはなんていう言語か?
お前が作った言語なのか?
152 :
デフォルトの名無しさん :03/06/05 17:19
煽ってる香具師に聞きたい。 実力が無くアドバイスも出来ないから妬ましいのか?
アドバイスも何も、情報がないからどんなものなのかすらハッキリしない
概要だけ並べるだけなら厨房の脳内でも出来る
情報を隠して秘密裏に開発するのならスレを立てた意図が不明
プロトタイプすら公開出来ていないうちからスレを立てると言うことは
>>1 に開発にあたっての集中力、忍耐力が無いことを意味する
それは開発に対する逃避行動の表れ
というのが
>>6 の理由説明
で、それと煽り叩きとどういう関係があるんだ? 欠点のある人間はいくら責めてもかまわないということなのか? どういう境遇で育ってきたんだ? まあ、楽しいなら止めろとは言わないけど。
>>153 だから何で静観出来ないんだ?
煽る必要性は無いだろ。
そうだよ、こんな期待させるようなスレ立てて、 もっと情報出してよ!!
158 :
デフォルトの名無しさん :03/06/05 18:08
>>1 に質問
その新しい言語は、macでも使えるんですか?
1の公開おまんこスレ
スワヒリ語でコードを書ける言語キボン
スワヒリ語で書け
1の祖母です ↓
1の祖父です ↓
↓ ↑ →→→→→↑ 1です。
予想通りの結末をむかえた
いや、>1は必ず帰ってくる。 >1はそういう男だ。
1さん がんがって
1の右手です ↓
169 :
デフォルトの名無しさん :03/06/05 23:29
1の主治医です。 ↓
171 :
デフォルトの名無しさん :03/06/06 00:00
<if> <true value="foo"> <and> <false value="bar"> <then> <!-- process --> </then> <else> <!-- process --> </else> </if> xml でカンタンなインタープリタが欲しいんだけど、↑みたいな 言語で、しかもカンタンに拡張可能なものは無いですか。 Java で使えるものがキボーン
>>171 それだけで既にXMLとして文法エラーを起こしている
勉強し直して出直せ
173 :
デフォルトの名無しさん :03/06/06 00:43
>>1 最強のコンパイラを考えたので聞いてくれ
まずメモ帳にプログラムのやる事を日本語で書く
例えば
「FTPでダウンロードできて軽くて高機能なソフト」
と書く
それをコンパイラーに掛けるとコンパイラーが日本語の文を理解して
書いたとおりのソフトが簡単に完成するのだ
>>171 空要素にすらっしゅがついていないぞl。
まるで、JSPの新型カスタムタグライブラリのようだ。
>>173 すでに存在するAIが作った経験があるソフトしかできないと思うぞ。
現在のAI技術では
>>171 Javaで使えるようにするにはMixJuiceやAspectJみたいなものにするってこと?
それか、JavaCCを使って作るということかな。
新しい言語もJavaで作ると。
1 はまだぁ?
182 :
デフォルトの名無しさん :03/06/06 13:55
age
aho
184 :
BOX ◇l1pRZFR5UE :03/06/06 14:17
♪汽車を待つ君の横で僕は遠くを見つめてる〜
185 :
BOX ◇l1pRZFR5UE :03/06/06 14:23
♪季節はずれの霜が降ってる 東京で見る鱈はこれが最後ねと
ポイズン
B♭M7 A7 Dm7 Dm7onC B♭M7 C7 FM7 F7 B♭M7 A7 Dm7 Dm7onC B♭M7 C7 FM7
189 :
デフォルトの名無しさん :03/06/06 15:17
いやあここはオアシスのようなスレだな。 自分よりアホを見てるとなごむよ。
for i =
>>1 ⇒
>>1000 collect{
if (i!="あぼ〜ん") do
{
print >>i.レス;
}
}
ちなみに、BOXってのはmankoのスラングなんだよね。
192 :
デフォルトの名無しさん :03/06/06 17:03
良スレage
193 :
デフォルトの名無しさん :03/06/06 17:32
system console standard output println "Hello, World!". で Hello, World! が出力されるオブジェクト指向言語きぼーん
なげーよ。 "Hello World!" で Hello World! がいい。
日本語を理解してメモ帳を作るコンパイラはまだでつか?
196 :
デフォルトの名無しさん :03/06/06 19:14
>>1 漏れは、そのプログラミング言語が
どんな し様になってるか早く尻た〜い。
なんか、1のジサクジエンの様な気がしてならない sage以外
興味あり! ICQでもMSNメッセンジャーでもAIMでもでもいいから連絡ちょうだい!
>>197 同意
なんか同レベルの書きこみばっかりだし
そろそろ削除依頼してきなよ>1
ま、200は貰っとくよ
201 :
デフォルトの名無しさん :03/06/06 20:12
200ゲット
>>197 遠まわしにsageろといってますな。
漏れは、ただこのスレが気になるのだ。
205 :
名無し@沢村 :03/06/07 01:11
>>173 >「FTPでダウンロードできて軽くて高機能なソフト」
>と書く
>それをコンパイラーに掛けるとコンパイラーが日本語の文を理解して
>書いたとおりのソフトが簡単に完成するのだ
入力画面はどうするんだ?世にもダサイ入力画面ができてしまう可能性があるぞ。
206 :
名無し@沢村 :03/06/07 01:18
おまいらよ、おれが「言語ツクール」つくってやるから、それで言語つくれ。 ついでに「OSツクール」もつくってやるから、それでOSつくれ。
47氏みたいなのを少し期待していたがどうやらネタのようだね。 残念だ。日本の優秀な技術者2chにカモーン
208 :
デフォルトの名無しさん :03/06/07 01:40
OSつくーるいいかも!!
沢村に期待してる痛い
>>210 に突っ込まないのかYO
212 :
名無し@沢村 :03/06/07 08:40
おまいらよ、OSつくるときはwindows互換にしたほうがいいぞ。 つまりwindowsで動くソフトはすべて新OS上でも動くようにすることだ。 何といってもwindowsが一番広く使われているからな。 そうすればwindowsのユーザーをごっそりかっさらえるぞ。 そうすればビル・ゲイツより金持ちになれることは確実だ。 それにしてもげいつとひわがなで入力して、そのままゲイツとカタカナに変換できるのは面白いな…。 ナタリーやホーガンやモハメッドはできないのに。 アメリカには多い名前なのかな?
213 :
名無し@沢村 :03/06/07 08:46
おまいらよ、新OSの名前はtoplightsがいいぞ。 つまりwindowsは窓だろ?toplightsは天窓でwindowsの上をいくからだ。
214 :
名無し@沢村 :03/06/07 08:51
おまいらよ、新言語をつくるときは、既存の言語よりも高性能でなければならないよ。 だがCやC++やJavaやVBとも互換にしたほうがいい。 つまりCで書いてもJavaで書いてもVBで書いてもコンパイルできてしまうようにすることだ。 もちろんもっと高度なことがやりたければ新言語の文法で書くといい。 そうすれば他の言語のユーザーをすべてかっさらえるぞ。 ビル・ゲイツ以上の金持ちになれることは確実だ。
_,ノ‐''''''^¨¨¨⌒ ̄⌒^^''¬-、,_ ._v-''¨`.,,vー─-、 .,,vー─-、 .¨'ーu_ _ノ'″ ./′ ¨┐ ./ ゙'┐ .゙'┐ ,/′ ./ .ミ .i′ .) ゙\ ,/′ | ● | } _●, | \ ./′ ._,,、-ミ. . /¨レ .人,_ ミ .,ノ′ ._ノ'″ \_ ._,rlト冖へy _/ ¨'‐u .゙lr .,i′ /ー-v、.,,_ ¨^^¨´〔 〕.¨^^¨′ __.,、 ゙\. { 〕 ./′ .⌒''''' \,,,,,,ノ′ v-ー'''¨′ ゙┐ } __________ | ノ .────ー } __,,.,、v--ー'' { .] / | :| .__,.. .! ` .} .} < のび太君、キミねえ・・ } .| .--:;:冖^ ̄ .| ¨¨¨¨¨¨゙フ¨¨′ .} } \ .| .} .\_ .} ._/ } .:|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ). .〕 .゙ミzu,_ } _,ノ┘ } / .{ ). .,/'″ ¨゙(ァv、,_ .! ._,,,,v‐'^′ ,ノ ノ ミ. 7, .i゙ 〔 `¨¨^^⌒ ,ノ′,/ ゙). ゙li. _ノi. ノ .,r′.,ノ \ ゙>'′^ー、、、v‐′ .,r′ / .|/ } ./′,/
216 :
デフォルトの名無しさん :03/06/07 10:18
冗長でもいい。すらすらと読めるコードになって欲しい。 public method check nullpo { this method return if one is nullpo { println "ガッ!". } else { println "フーン". } メソッド呼び出しと代入だけのオブジェクト指向言語が欲しい。 ステートメント完全皆無の言語が。
217 :
デフォルトの名無しさん :03/06/07 12:20
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \
/;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; ヽ
/ ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; ;;;;;;; 丶
/ ;;;;;;: ;;;;;: ;;;;; ;;;;; │
/ ;;;;;;;;;; ;;;;;;;;;;; ;;;;;;;;;; ;;;;; ;;;;; ;;; ;;;;;;;; │
│;;;;;;;;;;;;//|| ||||| || ||||| |||| || ゞ:::::::: :::::::│
│;;;;;;;;;/|| || | |||| |||| ||| ||| || |||| | |ゞ:::::::::::│
∩;;;;;;/丿,;::≡ミミ;;、、 ソ __,,,,、、、.. ゞ::::: /
|/|;;;;// _" _''ヘノ ヾ彡=''_""`` ヾ:::/、
((|ソ ,─≦◎≧ヾ - , ≦◎≧- 、 ヾ|/)
ヾ||| - ̄ ' ヽ  ̄ - ||ノ
ヽ!| / ヽ |ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ゝ: 、 ( _ _ ) ノノ <
>>1 におまかせ
` ヽ / _ヽ ノ ヾ ノ \____________
__>、 ,, '::_`_' _:` 、` ./
/\ _/ ヽ ( /----- ヽ) , ノ
/ \ , 、 、 、ヽ、'  ̄ `ノノ_ ,/
/ \ ヽ ヾ、. ̄ ̄ ( )'丶
/ ' "'' 、 \ \ _,, ̄ ''ノ ` ゙/ \
/ , - 、 ,, `ヽ \/  ̄ヽ ' ヽ ,ゝ--、
/ ヽ | / ノ
,, 、 / ヾ ヾ ヽ-' 、 ,/
- '' ヾ ( ヽ 丶 ! '' ,, ゝ" |
''" \/ヽ ヽ ヽ _ 'i / ヽ
>>194 そんな程度で長いなんていうな。
そんな程度ではオブジェクト指向言語もXMLも使いこなせないぞ。
>>212 沢村はウィソ厨だったか。
信用できないOSを作るのがいいってのは笑い事だな。
> そんな程度で長いなんていうな。 > そんな程度ではオブジェクト指向言語もXMLも使いこなせないぞ。 どっちも糞だということですか?
LISPだと '|Hello World!| =>Hello World!
私も自分用の言語を作っています。
>>1 がヤル気なさそうですし、このスレ乗っ取っちゃっていいですか?
>221 ドゾー ガムバッテクラサイ
>>221 お前も2、3日で行方不明になるだろうから、
その後に俺が乗っ取っちゃいます。 よろしく。
225 :
デフォルトの名無しさん :03/06/08 15:35
どーでもいいから、モノ見せて見ろよ。モノ。 ないなら言語仕様でいいから。 それもないなら、SFに今のコードをageろ。
とりあえず、、、
>>219 簡単なプログラムをかくのにクラススコープの内側に関数を書かないと
コンパイルエラーになるからJavaやC#は面倒くさくて嫌だとか
XMLは開始タグを書いたら終了タグも書かないと行けないのが面倒くさい
とかいっているアフォが多くてさ。
>>194 みたいなこといっている奴がレベル低い奴にしか見えないんだよな。
例えば短く書けるものとして正規表現があるが、 書いたときは良いが読むときが無茶苦茶辛くなる 他人の書いた正規表現をすらすら解読出来る人間はかなりの少数だろう だから高級言語は可読性を上げるため、 はコードが長くなる構造になっても仕方がない
>227-228 可読性なんて、言語で面倒見ないで、ツールで処理すべきだ。
自動でコメントつけてほすぃ。
最後は全自動でプログラムを作ってくれってか? くだらん
perlかrubyでテンプレ吐くスクリプト組んどけ。
だれか「は加加」言語作ってください。 おながいします。
みりゃわかるし、 逃げた1以外には誰にも答えられない様な質問だな。
削除依頼だそうか?
逃げたと言うか変なのが追い出したんだろ
それを逃げたという
241 :
デフォルトの名無しさん :03/06/12 02:00
>>229 オマイはM$厨というよりVB厨だろ。
ツールで処理した結果が、汎用性の高いPC(オブジェクト指向言語)と、
簡単で便利だが特定の分野でしかつかえない
拡張性の殆ど無いワープロ専用機(VB)とに分けてしまうわけだ。
242 :
名無し@沢村 :03/06/12 05:48
>>225 >どーでもいいから、モノ見せて見ろよ。モノ。
>ないなら言語仕様でいいから。
おまいよ、ここのやつらにそれを要求するのは酷だよ。
モノなんかないし、言語仕様もできてねーよ。当然、開発途中のコードすらあるわけない。
ここのやつらは、ただ頭の中であれこれ妄想して、ワイワイガヤガヤ語り合うのが好きなだけだよ。
>>1 はなんのために何も書かないスレを立てたのか?
もっとちゃんとすれば普通のスレになったのに(作っている物はともかく)
244 :
デフォルトの名無しさん :03/06/12 06:29
>>243 そうなる前に煽り厨が出てきたからね・・。
スレ立てられたときから見てたけど「1日出てこなかっただけ」ですげー文句言うし。
そりゃー鬱になるって。
出るにも出れないわ。
プロトタイプが公開できる段階に達していない状態でスレを立てると企画倒れに終わる
要するに
>>1 の我慢が足りなかったせい
ものが出来ていればこんな煽られ方をすることは無かっただろう
プロトタイプが出来る段階まで我慢できなかった
>>1 が作るものだから、
後から出してきたとしても、結局中途半端に投げ出されていただけだろうが
246 :
名無し@沢村 :03/06/12 10:01
>>245 そんなスレばかりだよ。
OSスレだってコンパイラ&スクリプトエンジンスレだって、
プロトタイプなり言語使用なり試作品なり開発途中のコードなりを出したやつなんて、一人もいやしないよ。
ただ頭の中で妄想してワイワイガヤガヤ語り合ってるだけだよ。
OSはできていると思うが…
企画がまともに進んでいない段階で、スレっど立てても仕方がない。 ゲーム製作技術を見れば、ヒドイのがやまほどある。
249 :
デフォルトの名無しさん :03/06/12 10:41
よし、俺も新しい言語を作ってやる。 そして「Manko」と命名する。 その言語は世界中で大人気となり、やがて書店の棚に 「独習Manko」、「基礎からわかるManko」、「はじめてのManko」 「Manko 500の技」、「Manko逆引き大辞典」などが 並ぶだろう。
250 :
名無し@沢村 :03/06/12 11:25
>>249 やはりここは妄想厨しか集まらないことが、これで証明された…
251 :
デフォルトの名無しさん :03/06/12 11:31
ひさしぶりにこの板のぞいたら、 一番トップにこのスレの題名が飛び込んできた。 のけぞった。。。 そして、2ちゃんらしいと思った。
じゃー俺は SEX 言語を作るよ。 「独習 SEX」、「基礎からわかる SEX」、「はじめての SEX」 「 SEX 500の技」、「SEX 逆引き大辞典」などが並ぶはずだ。
じゃー俺は ANA 言語(Language)を作るよ。 「独習 ANAL」、「基礎からわかる ANAL」、「はじめての ANAL」 「ANAL 500の技」、「ANAL 逆引き大辞典」「やらないか ANAL」などが並ぶはずだ。
じゃー俺は Manko言語をオブジェクト指向に拡張してObjectManko、略してOManko作るよ。 「独習 OManko」、「基礎からわかる OManko」、「はじめての OManko」 「OManko 500の技」、「OManko 逆引き大辞典」「やらないか OManko」 「日経 OManko」などが並ぶはずだ。
正直飽きた
>>1 は真犯人を捜して逃亡中だし
ネタばれになるが、結末は
>>1 自身が真犯人だったという落ち
そして最後に自分で命を絶つ
>>246 相談スレのはずなのだが・・・
コンパイラに関してコンプレックスでもあるの?
258 :
デフォルトの名無しさん :03/06/15 23:25
259 :
名無し@沢村 :03/06/16 20:44
260 :
デフォルトの名無しさん :03/06/16 21:17
作るなら日本語で書けるのにしてよ もしも〜なのであれば、〜をしてみたら?
プログラマーって8割はアホの集団だな、と思った。まる
>>261 ココの連中をプログラマの代表者と思うような#ピー#にどう
思われようとかまわんな。
あらゆる集団の8割はクズなんだよ。プログラマーに限った話ではない。
266 :
デフォルトの名無しさん :03/06/17 17:56
「さわってわかるOMANKO」も出ますがなにか
267 :
名無し@沢村 :03/06/17 18:00
今、新しい子供を作ってます
>>269 まずは彼女だと思われ
「君の子供が欲しい」と言いつつ
いつのまにか姿を消す
>>1 。
273 :
名無し@沢村 :03/06/19 06:08
>>1 よ、新しい言語をつくるのはいいが、未踏ソフトウエア創造事業に応募してはどうだ?
採用されれば、何千万円もの開発資金を援助してもらえるよ。
もちろん定期的に進行具合をPM(プロジェクトマネージャー)に見せなければならないなどの、面倒くさい点は山ほどあるがね…
だが、それだけあれば、会社なんかやめて、毎日寝てくらせるぞ!!
PMにはアラン・ケイや伊地知をはじめ、いろんな大学教授や企業の研究者などがいる。
またPMは好きなやつを選んで応募できるから、気の合いそうなやつを選ぶといいよ。
これからは、個人でソフトを開発するなら、未踏ソフトウエア創造事業の時代だと思うが、どうよ?
274 :
デフォルトの名無しさん :03/06/19 08:42
>>273 その考え方はイエスだね。
しかし、このプロジェクトに絶対ダメだ。
新しい言語は要らない。あったらむしろ有害。
あげてみる
276 :
デフォルトの名無しさん :03/06/19 17:06
アァ、アタラシイゲンゴ 気になる・・・
277 :
デフォルトの名無しさん :03/06/19 17:14
>もちろん定期的に進行具合をPM(プロジェクトマネージャー)に見せなければならないなどの、面倒くさい点は山ほどあるがね… >だが、それだけあれば、会社なんかやめて、毎日寝てくらせるぞ!! 矛盾してまつ
278 :
デフォルトの名無しさん :03/06/19 17:23
>>277 たぶん、出勤しなくて寝転がりながらPMに見せるのさ・・
279 :
デフォルトの名無しさん :03/06/19 17:34
>>279 「おまえの作る言語誰もつかわねぇぜ Ok」 ってところまでは分かった、
その後はなんていってるんだ?
>>279 Oh! Womaeno tsukutta gengo nante daremo tsukawa naize baka oho itteyoshi
こんな感じか?
ネタだったのか… このスレ 本気で楽しみにしてた俺はいったい…
>>282 嘘を嘘と見抜けない人でも
(掲示板を)楽しむ方法は幾らでもある
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
(^^)
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
何でもいいから言語を作ってみたい!って思ったときに、コンパイラにすべきか、インタプリタにすべきか。。。 初心者なら、簡単にスタックマシンでやるのがいいのかなあ。
289 :
デフォルトの名無しさん :03/10/22 19:09
このスレまだあったのか
↑オモロイ >翔太 プログラムのサイズがかなり小さいことに驚きました >メモリー使用量も少なく >実行速度はアセンブリなのでC言語より早い >大変凄い作品だと思います
COM形式ってEAXとか使えるんだっけ?
>実行速度はアセンブリなのでC言語より早い 迷言だな。
>>290-291 出力が8086ネイティブなだけで普通のPL/0風言語のようだが。
>>292 CPUが386SX以上なら使えるよ。 > .COMで32bitレジスタ
ただしメモリ参照に使うときは上位16bitは無視されるけど。
うーむ、このすれメモ帳代わりに使おうと思ってたのに。。。
こんな構成でどうかな。 ○オブジェクト指向型で、日本語で記述する言語の機能構成案 1.Object Navigation Engine(仮称) オブジェクト指向に適した命令セットを持つVM。 日本語言語をいきなりこのVMのバイトコードに変換するんじゃなくて、 PASCALチックな、パージングが簡単な内部言語を用意して、 コンパイラはこいつをコンパイルするようにしとく。 この内部言語をとりあえずSimple Scriptとでも名づけとこうか。 2.Simple Script Translater(仮称) 日本語言語を内部言語に変換する機能。 コンポーネント化しておき、置き換え可能にすると楽しそう。 つまりメイク時の流れは、 ・まず、日本語言語を機能2で内部言語に変換 ・次に、内部言語を機能1でバイトコードに変換 の2パスになる。 うむ、なんとなく良さげ。
初心者ですまんが、前から疑問に思っていたことなんだけど VMのバイトコードってのはつまり、EXE形式なんだよね? で、実際コンパイルってのはテキスト形式のプログラムから マシンが読めるバイトコードに変換する、そういう技術ってことなのは理解してる。 そこまでは理解してるんだけど、でも実際 テキストの命令語→バイトコードの変換表みたいなもんってどこにあるの? いやほんと初心者ですまん。今日、コンパイラを作ったソフト、さらにそれを作ったソフトについて 鶏と卵状態でぐるぐる悩んでたもんで。
お答えサンクス。なるほど、わかったよ。 でも変換表は英語かぁ。俺にはちょっと無理だな。 まさかこれを判りやすく解説してるページなんてないだろうし。
言語エディタって突き詰めるとテキスト入力形式にたどり着いちゃうみたいなんだけど それとは逆方向に突っ走ったエディタってできないかなぁ? 基本的にマウスオンリーでプログラミングできて 例えばIFなんかの文がボタン形式になってて、押したらその行はIF文確定で IF ○○=○○ THEN まで書いちゃって、左右の式の内容と=><しか指定できなかったり しかも全体表示のしかたがエクスプローラーぽくなってて 処理内容がディレクトリ内容表示みたいで、しかも+-クリックで開閉できたり 前段取りの宣言部分と、実際に実行する部分と、サブルーチンの部分を しっかりくっきり分けちゃったりで、おせっかいすぎてうざいくらいの親切設計。 入り口は広いが底は浅い。とにかく間口が広いだけで そんなのがあったらほんとにDQNしか使わないだろうなぁってDQN言語w 妄想バリバリのスレ汚しでした。すまん。
>>300 の第二段落の記述に近いものを作ったことある。
ターゲットはXSLTだったんだけど、結果は失敗。。。
XSLって書くの難しい→じゃあGUIでボタン押してできるようにすれば簡単になる
てな発想だったんだけど、結局のところ元の言語をちゃんと理解してないと操作できなかった。
で、元の言語をちゃんと理解してるんなら、テキスト入力形式のほうが効率がいいという。。
というわけで、
>>300 の方向を目指すなら、まずGUI操作にマッチするような言語を
デザインするのが重要かも。
302 :
デフォルトの名無しさん :03/12/19 12:56
303 :
デフォルトの名無しさん :03/12/21 01:43
何かを作っていることを2ちゃんねるスレで発表するとかなりの確率で計画はあぼーんする。意外と知られていない。
304 :
デフォルトの名無しさん :03/12/21 21:50
mesto メッセージ欄 # ファイルに書き出すときは、mesto ファイル savefile mes [萌美]: # 2バイト文字は文字列扱い。前後の空白は無視される。空白出したいときは、""で囲め。 mesln あなたもこれで立派なプログラマですぅ! # lnだと最後に改行が入る。 mesln 天国のお母さんもきっと絶対確実に喜んで いるに違いないですぅ! # 文字列中で改行しても改行が入る。 # というか、未定義の単語で始まっている行は、前行から改行を含んで継続していると見做される。 image $サンプル = @背景.青空 + (@萌美.笑[人物左] + @作者.汗[人物右]) # バッファ上で画像の重ね合わせ処理。 # @はリソーステーブルを参照し型を決定する、[]は座標を表す。人物左など、前もって定義した別名も使える。 func showre $画像 # 関数も定義できる。 show $画像 release $画像 . # 関数定義終わり。 showre $サンプル # 表示してバッファを開放する。 wait # キー入力を待つ action フェードアウト # 定義済みの効果を起こす。
>>304 > # というか、未定義の単語で始まっている行は、前行から改行を含んで継続していると見做される。
ターミネータもないのにそれじゃ、えらく扱いづらい仕様だな。
簡単な言語だったらLispを拡張すれば…また方言が増えるか…
307 :
デフォルトの名無しさん :03/12/22 20:29
オブジェクト指向LISPきぼんぬ
>>307 欲しいものが目の前にぶら下がっていても、
それに手を伸ばそうともしない奴には
決して手に入れることはできません。
(defclass foo () ((a :accessor foo-a :initform 1 :initarg :a)))
310 :
デフォルトの名無しさん :04/03/29 04:21
まだぁ?
311 :
デフォルトの名無しさん :04/03/29 09:54
新しい言語、、、ん〜
俺言語 設計理念(覚書) ・ダイナミックスコープ。また、スコープがファーストクラスオブジェクトである ・通常は strict に評価を行うが、CPU 使用率が高くなれば non strict に動的に変更する ・バックトラック時には各々の枝にプロセスを割り振り、カットによって同期が取られる ・全ての変数は事前に宣言されており、且つその変数は自分自身の変数名で初期化されている。 すなわち代入操作をしない限りにおいて、変数、変数名、及びその実体を区別する必要がない
えらく使いにくい仕様だなそれ
314 :
デフォルトの名無しさん :04/04/14 03:37
今新しい言語を作っているところです。 最初はインタープリタ言語で行こうかと思ったのですが、やはり高速化するために コンパイラ言語に一から作り直しました。 機種依存の無い汎用性の高い言語を目指してます。 ただJAVAと違うのはライブラリには手を出さないこと、ぶっちゃけ自己拡張するしか道がないことです。(ここらへんはあsdふぁsdfふじこp;@ もちろん業務用データベースソフトも作れます。たぶn
ア なんかほんとおに作りたくなってきたゾ! HTMLで作れますかね(^^^^^^^
さて言語仕様である。
(
>>1 を筆頭として大抵「新しいプログラミング言語」スレ立てちゃう子は
言語そのものとライブラリ(や開発環境)を分離できてないよねーキャハハ。)
SmalltalkやLisp,Forthみたいに基本はとてもシンプルな物を考え出したい。
考え出したい。
無理でした。
うんこ。
318 :
デフォルトの名無しさん :04/04/14 19:15
自作言語の中でコンストラクタを使えるようにしたいんだけど、 どうやって実装すべきかわからない。 たとえばstring型の変数を宣言するとコンストラクタでバッファが確保される、 というようなことをやってるんだけど、 string s[10]; 程度ならなんとかなるけど、 struct A{ struct B { string b[10][10]; }; string c[10]; }; A a; とかになってくるともうわけわからん。 こういうのって決まった実装方法とかあるんだろうか?
え、? 再帰的に解析しろよ。 再帰が何なのかわからんのなら、時間の無駄かもな。 基礎からやり直せ。
ぬるぽ言語作って下さい。おながいします。
脳内で独自言語を設計したのですが マシン語の知識がないので 実行ファイルを作れそうにありません。 独自言語のソースをCやJAVAのソースに変換 するっていうアプローチもアリですか?
目的が達成できるならそれでもいいんじゃないの?
>>321 スクリプトもとい中間コード形式にしてしまうのも良いのでは?
Java のような形式にすればイマドキ感が醸し出せます
>>321 LISP や Scheme では幾つかそういう処理系あるよ。Dylan とか Eiffel とかも
C コンパイラをバックエンドに使ってたような。ある程度プラットフォーム非
依存に出来るし、最適化も C コンパイラにお任せ出来る。あと、実装によって
はC をインラインアセンブラみたいに使えたりするのが利点かな。
gcc のフロントエンドを書くっていう手もあるらしいけど、まんどくさそう。
>>321 もしそのアプローチを禁止していたら、
C++ はこの世に存在し得なかっただろう。
>>325 C++ はもともと C のトランスレータとして実装されたんだったか
今思い出した
いや、漏れは 321 ではなく 323 だが
連投しての質問すいませんです 全てのコードをレシーバに対するメッセージとして逐次処理する脳内言語を妄想中です んでもって少し考えてみたら、C で x = 1 + 2; と記述する文が、脳内言語で :1 + 2 -> x; となったんだけど、止めたほうが良いと思う?
>>327 >全てのコードをレシーバに対するメッセージとして逐次処理する
Smalltalkでは駄目ですか?
> :1 + 2 -> x;
: が激しく気になる。
: は必要なんですか? : がレシーバだとすると、一体なんなんだろう??
>>327 代入だけでなく、分岐、ループ、エラー処理、関数定義/呼び出し等々は
どうなってるの?
>>321 その他
ソレ系の基礎的な本でも読んで出直してきてね
つまらん香具師だな。
>>328 : はただ単に行の先頭を表す文字です
: 〜 ; または ( 〜 ) を1つの文として、
全ての文が
:[レシーバ] [メッセージ1] [メッセージ2] … [メッセージn];
となるようになってます
メッセージを受け取ったレシーバは、別なオブジェクトをレシーバとして再設定
(つまり関数)することが出来るので、
:1 + 2 -> x;
の文では、
1) レシーバを 1 として、まず + が送られる
2) 関数 + 内にて次のメッセージが Pull され、結果の 3 が新しいレシーバになる
3) 新しいレシーバ 3 に「ニックネームを付けるメッセージ ->」が送られる
4) 手続き -> 内にて、次のメッセージが自分のニックネームであることをシステムに通知
という手順です
判り難くてすみません
>>329 利点なんか無いです
ただ暇だったから考えてみただけで、実装する気は今のところありません
ちなみにたらいまわし関数はこんな感じ :Object Create -> Tarai <- Calc { :System NextMsg -> x; :System NextMsg -> y; :System NextMsg -> z; :If (x <= y) { :Self Create Calc (Self Create Calc (x - 1) y z) (Self Create Calc (y - 1) z x) (Self Create Calc (z - 1) x y) -> Result; } } :System Print (Tarai Calc 12 6 0); ・プロトタイプ型の処理系 ・<- は新しい手続き用のスロットを作成するメッセ−ジ ・文の中に文を入れ子にすることが出来る ・ニックネーム(変数)のスコープがインスタンス毎にあるので再帰が作りにくい ・エラー処理のみ考え付きませんでしたが、制御構文は全てこんな感じ ・あまり深く考えては駄目です。全てフィーリングにて 長くてすみませんです 荒らしと判断したら、どうぞご自由に削除なり何なりと
( ̄□ ̄);たらいまわし関数が微妙に間違ってる罠 スルーor脳内変換よろ
>>333 うーん、文末の区切り(;)がはっきりしてれば、
文頭を表す記号はなくても、構文解析出来ると
思うのですが、: になにかこだわりがあるのでしょうか?
それとも、: がないと構文解析出来ない例があるとか?
まてよ、
>>334 の例では、もしかして、関数を再帰呼び出しするたびに、
関数オブジェクトを毎回作りなおしてるんですか??
関数がオブジェクトだとしても、引数をスタックとかに
積んどけば、作り直す必要はないと思うけど。。。
あえて、そういう構文をめざしてるんでしょうか。
: と ; による文の区切りをなくしてしまって、いっそのこと 1 + とやると1オブジェクトに+メッセージが送られて、 1を足す、というクロージャオブジェクトが生成し、 それに引数の2が渡される、とかにするのはどうだろう。
>>334 コード内の2つの } の後ろに ; が抜けていました
訂正します
>>336 >>337 ":" は、今考えたら必要ではないように思えてきた
必要性が思い出せないという事はあまり重要な事じゃなかったのかのかも
要再考
とりあえずオブジェクトを作り直すようにしているのは一種のこだわりです
関数を実行するオブジェクトをワーカーとして、他のワーカーに丸投げ ^^;
>>338 とりあえず、関数名や引数などを、区別せずにメッセージとしてます
if に true もしくは false メッセージが送られた後、所謂メッセージセレクタ内で、
その後のメッセージブロックを実行するかどうかで分岐を行っています
なので、if 文は(一応、こちらの定義上は)メッセージ式です
なお、メッセージセレクタを直接スクリプト内から弄れるようにするかは未定です
以上です m(_ _)m
>>339 > なので、if 文は(一応、こちらの定義上は)メッセージ式です
if文もメッセージ式だとすると、else節はどう扱うんでしょうか?
>>340 この場合 if ワーカーは
boolean1 block1 elseif boolean2 block2 else block3;
のような順にメッセージを受け取ることを考えてました
……ですが、全ての if オブジェクトは単一インスタンスになっているということに気づき、
このままでは入れ子したときに不味い事が判ったので、Smalltalk の ifTrue 形式に変えます
これならば入れ子は問題ないですし
質問ですが、現在オブジェクト指向と言っておきながら、メッセージがオブジェクトに関連付けられてません
仮に Foo オブジェクトの Bar メソッドを実行しようとして Foo Bar; としても、
Bar という名前のニックネーム(変数)が既にある場合、何の問題も無く変数展開されます(cry
関数名と引数を同一視するという構造にも問題があるような気がしますが、
上手く使えば関数名を変数に入れて起動……なんてこともできるかもです
こちらでも色々な事を必死に考えていますが、何か改良案ありましたらお願いいたします
相変わらず長くてすみません
いろいろと整理が付いてきたので、迷惑ならばそろそろ消えようと思います
>>341 つまり、 1 -> Bar; のあとに、 Foo Bar 2; とかしたとき、
Foo Bar 2; が Foo 1 2; という文に変換されちゃうってことですか。
これは結局、Barがいつ評価されるのかが、はっきり決まっていないのが
問題なんじゃないかと。
Fooというオブジェクトにメッセージを送るまえに、Barを言語側で
勝手に評価する規則だとすると、オブジェクト指向言語としては
成り立たないと思います。
だいいち、そういう仕様だと、
1 -> Bar;
自体が成り立たないでしょうね。この文で、Barを評価してしまうと
変数Barには、いつまでたっても1が代入されないし。
というわけで、メッセージは受け取ったオブジェクト側で責任をもって
評価する規則にしておけばいいような気もします。
Foo Bar hoge;
という文のとき、(Lisp風に言えば)シンボルBarをそのままシンボルとして
扱うのか、中身を取り出して使うのかは、レシーバー側の責任ということで。
> Barがいつ評価されるのか
現時点では、前のメッセージが送信し終わった後か、レシーバから要求があった時に評価されます
前者は、関数そのものの起動、後者は、関数に対する引数として使う方法ですが、
関数自体は引数評価前に起動する点が、一般の言語と違います
ちなみに次のメッセージを評価し返す命令は
>>334 の System NextMsg です
メソッド -> は、『無条件で次の語が Self のニックネームである』ということをシステムに通知します
通知の直前では Bar は未評価のため、システムは変数 Bar を評価することなく、オブジェクトを代入することができます
もちろん、その後に Bar は (通常の引数処理とは違う意味で) 評価されたことになりますが
ということで 342 さんの意見も取り入れて、文全体の構成を改めて見直してみると
1) 無条件でレシーバに設定される、文頭のリテラルor変数
2) メッセージセレクタを通り、関数起動に使われるメッセージ文字列
3) 関数の引数として、関数から取得要求されるリテラルor変数orメッセージ
ということが判ったので、1 は変数を展開する、2 は展開しない、3 はレシーバ側で判断という方向性で
ちなみに
>>334 の if 構文が
>>341 で変更になったので、
関数から取得要求されてないメッセージは、変数展開する必要がなくなりました
また、
>>336 で指摘された : は、クラスベースで考えていた頃、括弧の中身が複数行になってしまい、
何となく見た目が変だった為に括弧の代わりとして導入したものだったということを思い出しました
度重なる仕様変更で、必要でなくなった仕様が彼方此方に見受けられます ^^;
要最適化
>>343 蒸し返して悪いけど、
>>334 のたらいまわし関数は
下のようには書けないんでしょうか?
こう書ければ、やや見やすいと思うんですが。
System <- Tarai { // グローバルなメソッドを定義してるつもり
System NextMsg -> x;
System NextMsg -> y;
System NextMsg -> z;
(x <= y) ifTrue {
Tarai (Tarai (x - 1) y z)
(Tarai (y - 1) z x)
(Tarai (z - 1) x y)
-> Result;
};
};
System Print (Tarai 12 6 0)
>>342 >Fooというオブジェクトにメッセージを送るまえに、Barを言語側で
>勝手に評価する規則だとすると、オブジェクト指向言語としては
>成り立たないと思います。
メソッドがオブジェクトに属していない言語ならありなんじゃないの?
良く知らないけど、CLOS とかってメソッド辞書を(個々のオブジェクト
じゃなく)処理系が管理しているんだよね?
関係ないけど、プロトタイプベースでメッセージパッシングなオブジェクト指向言語 って流行りなの? io とか slate とか soopy とか。
>>346 とりあえず説明用に以下のことを前提とします。
1.Fooというオブジェクトがある。
2.オブジェクトFooには、Barというメソッドがある。
3.グローバル変数Barがあり値は1である。
CLOSで書けば、こんな感じ↓
(defclass Class-Foo () ())
(defmethod Bar ((Foo Class-Foo)) (print "method bar"))
(setq Bar 1)
(setq Foo (make-instance 'Class-Foo))
(Bar Foo) ;; => "method bar"
で、
>>342 で問題にしているのは、上のCLOSの例で言えば、
(Bar Foo) が メソッドBarを検索する前に、
(1 Foo) という式に変換されてしまうということです。(グローバル変数Barの値が1だから)
で変換された後では、Barというシンボル(メソッド名)は
失われてしまうので、メソッドBarが呼び出されることはない
というお話です。なので、メソッドがどこに属しているか
という話とは、あまり関係がないと思われます。
>>347 流行ってるのかどうかはわかりませんが、
新しい言語を作ろうとしたとき、たいていは、
1.既存の言語の気に入らないところを直したような言語
2.今までに存在していない(ような気がする)タイプの言語
のどちらかの言語を作ることになりそうです。
2を選んだ場合、
クラスベースはもうありふれているから嫌
とか
ちょっと文法を変えただけのPerlとかは嫌
とか思って、勢いマイナー路線を爆心することになるのでは
とか想像してみたり。。。
>>348 式の評価と構文の解析をごっちゃにしてたみたいです。スマソ。
>>349 マイナーかもしれないですけど、メッセージパッシングスタイルってシンプルで
良いと思うんですよね。分岐とかループもこれ一つで表現出来るというのは S 式
に通じる物があるんじゃないかなと思います。
>>345 グローバルメソッドは作りたくないです
基本的な「あーきてくちあ」は「処理をワーカーに丸投げ・・・もとい委託」ですから
>>347 初めはただ言語を作ってみたい、ってだけだったんですよね
シンプルにシンプルに・・・と考え続けて構文がシンプルになりました
ラクしたかっただけなので
>>349 のどちらにも当てはまらないです
今気づいたけど、引数を後で処理する機構は、遅延評価そのものみたい 次のメッセージを評価せずにスキップできるような機構は考えていたけど、 これ使えばたらい関数がもっと速くなりそうな予感
>>351 いや別に、メッセージパッシングスタイルは嫌いじゃないですよ。
ただ個人的には、分岐とかループは、メッセージパッシングじゃない
ほうが効率よく実装でき(そうな気がし)て良い気がしたりはしますが。
>>353 実際に遅延評価を実装しようとすると、引数が評価されるときの
環境(というかスコープ?)を常に持っていなければならないのが
アレですが。。。
>>352 いや、グローバルメソッドじゃなくてもいいので、
せめて、こういう風↓には書けないんでしょうか?
Object Create -> App;
App <- Tarai {
System NextMsg -> x;
System NextMsg -> y;
System NextMsg -> z;
(x <= y) ifTrue {
Self Tarai (Self Tarai (x - 1) y z)
(Self Tarai (y - 1) z x)
(Self Tarai (z - 1) x y)
-> Result;
};
};
App <- Main {
System Print (Self Tarai 12 6 0)
};
App Main;
#出来ればSelfも使わないですませたいなぁ。
>>355 色々と文句言われていますが、これだけはどうしようもないんです……と思ったけどもしかしたら可能かも
技術的には可能・メッセージセレクタを起動する際に引数をスタックに積めば良い
ただし構文上 Self | それに等しい何かに対して明示的にメッセージを送る必要はありますが
現在の使用では、変数は各ワーカーごとに管理されている模様
スコープもワーカー内、ちょうど各ワーカーに1つ、HSP アプリが対応しているような感じ
実行環境の実装と、作成できるプログラムのモデリングがちょっと簡単になるはず
ただし実行環境を開発するときは C 系だけど
>>354 完全な遅延評価、とまではいきませんが、ある程度引数の取捨選択はできるようです
以下、今までの変更も含めた、たらい関数最新版
Object Cleate -> Tarai # たらい関数実行ワーカー
<- Calc {
System NextParam -> x;
System NextParam -> y;
(x <= y) ifTrue {
System SkipParam;
y -> Result;
} ifFalse {
System NextParam -> z;
Self Cleate Calc
(Self Cleate Calc (x - 1) y z)
(Self Cleate Calc (y - 1) z x)
(Self Cleate Calc (z - 1) x y) -> Result;
};
};
System print (Tarai Calc 20 5 1);
・ifTrue ブロック内が実行された場合、z にあたる引数が評価されずにスキップされます
・コメントが付きました
・未だ脳内言語です
・そろそろ用語を統一したい……特にワーカーとオブジェクトを
◆訂正
>>356 2行目:引数⇒変数
>>356 4行目:使用⇒仕様
◆追記
・行頭の ":" があった方が、どれが初期レシーバになるか分かりやすいような気がしてきた
・処理系の実装予定は無いけど、言語仕様だけは清書しても良さそうな気がする
・スレ乗っ取ってしまったような気がしますが、このまま続けてても大丈夫ですか?それとも?
>>358 このまま続けても良いのではないでしょうか。
どうせ、ほとんど死んでたようなスレですし。
有効に再利用するのは問題ないのでは。
ところで、戯れにYaccで文法のチェックだけしか出来ない
Versionを書いてみたんですがUPしてもよい?
%{ #include <stdio.h> #include <stdlib.h> #include <ctype.h> extern int yylex(); %} %token INT CHAR STRING SYMBOL END_INPUT %% program : /* nothing */ { return 0; } | stmt ';' { return 1; } | END_INPUT { return EOF; } ; stmt : expr | send_msg ; expr : INT | CHAR | STRING | SYMBOL | '(' stmt ')' ;
send_msg: expr expr | send_msg expr ; %% char yytext[1024]; /* あふれたらゴメン */ int yylex(){ char* ptr; int c = getchar(); if(c == EOF) return END_INPUT; while(isspace(c)){ c = getchar(); if(c == EOF) return END_INPUT; } if((c == ';') || (c == '(') || (c == ')')) return c; if(c == '"'){ /* lex string */ do{ if(c == '\\'){ c = getchar(); if(c == EOF) return END_INPUT; } *ptr++ = c; c = getchar(); if(c == EOF) return END_INPUT; }while(c != '"'); *ptr = '\0'; return STRING; } if(c == '\''){ /* lex char */ yylval = getchar(); if(yylval == EOF) return END_INPUT; c = getchar(); /* skip ' */ if(c == EOF) return END_INPUT; return CHAR; } for(ptr=yytext; !isspace(c); ptr++){ if((c == ';') || (c == '(') || (c == ')')) break; *ptr = c; c = getchar(); if(c == EOF) return END_INPUT; } ungetc(c, stdin); *ptr = '\0'; return SYMBOL; }
int yyerror(char* str) { fprintf(stderr, "ERROR: %s\n", str); exit(0); } int main(int, char*[]) { int result; while(true){ result = yyparse(); if(result == EOF){ printf("bye\n"); return 0; } } } /* * kmyacc -d parser.y * bcc32 ytab.c */
>>363 いや、リンク先にはなかなか良いもの書いてあったぞ
本気でありがd
>>359-362 素直に有難うございますと言いたいところですが、yac判んないです
流れから察するに、僕のアレの解析用らしいですが…チェック項目があまりに少ない言語でごめんなさい
とりあえず参考にさせて頂きますね
全然違う言語の解析用だったらすみません
>>365 その言語用で間違いないです。
> ・行頭の ":"
えーと、Yaccを使わないでということは、パーサは手書き?
だとしたら、行頭の":"の件も考えて、いっそLispでプロトタイプを
作ってみるのはどうでしょう?
行頭の":"は"("にして、文末は";"ではなく")"にしてみて。
(あくまでプロトタイプの段階での話です)
どうも、ワーカー(っていうんですか)の動きがよくわからないので
メソッドの選択の仕組みとか、変数のスコープとかを
Lispかなんかで、書いてみせてもらえるとうれしいな。
手抜きヴァージョンでかまわないので。
(気が向いたら自分でも書いてみようかとも思うんだけど。。。)
>>366 手書き
構文自体はかなり簡単な構造しているので、自前で書いても問題ないかなと
Lisp は触れてみた程度なので、読めますが書けないです
: 〜 ; と ( 〜 ) を相互変換できるようにしていた理由は
>>334 へどうぞ
そのままでもいいかもしれませんが
挙動が一人歩きしていて、実は僕自身、挙動があやふやな所があります
自分の中で整理されるまで、もうちょっとまっててください
ちなみに、全てのメッセージ文は、↓のような要素によって構成されています
1) シンボル (シンプルメッセージ文字列)
2) オブジェクト (厳密には、これがメッセージ文に記述される場合、変数の形をとっている)
3) 文字列・数値などのリテラル (厳密には、これらもオブジェクト)
4) メッセージブロック (厳密には、これもオブジェクト)
5) 変数 (厳密にはリテラルやオブジェクトを指したニックネーム)
6) メッセージ文
メッセージ文の評価は、今のところ↓のような図式
1) メッセージを1つ評価する
2) その文にレシーバが設定されていなければそのメッセージをレシーバに設定、
すでに設定されていればそのメッセージをレシーバに対して送る
ただし
>>343-344 にて微妙な変更が発生していて、変数の展開を行うタイミングが多少これとは異なります
>>367 了解。
確かに手書きでも簡単に出来そうですね。
◆変更点『シンボルと変数の区別方法について』
>>343-344 の変更をさらに変更
シンボルと変数の区別を prolog 形式にする事を思案
◆質問『変数のスコープ管理法について』
今のところ次の2案
1) メッセージブロックを実行するワーカーごとに1つの変数テーブルを使用する
>>357 の例では、全ての { } は Tarai ワーカーの管轄
記述場所が優先されるため ifTrue とかで渡された先で実行される場合でも同じ
2) メッセージブロックごとに1つの変数テーブルを使用する
>>357 とは違うタイプで、実行されているブロックのインスタンス(?)ごとに1つ割り当てられる
記述場所に対応した木構造で表現された変数テーブルを使う
1 はインスタンスごとに1つの変数テーブルなので、管理が楽
2 は再帰が可能だが、管理が難しく、さらには変数の宣言が必要になる場合も
また、インスタンス内で共有される変数を持ちたい場合、別にテーブルを用意する必要がある
どっちが良いだろ?
> : ... ;
: ... ; と ( ... ) が同じことだとすると、両者が混在して
かえって読みにくく感じるんですが、、、。
個人的には、( ... ) があれば、: ... ; はないほうがよいような。
同じ構文に2種類の書き方を用意するというのは、
シンプルな言語というのに反してるし。。。
>>371 2のほうが一般的かな、と思います。
メソッド(関数)が実行されるたびに、メソッドローカルな変数は
スタックなどに確保されるのがありがち。(返値とかリターンアドレス
とか引数とかの記憶場所も含めてフレームとか呼ばれたりします。)
メソッドローカルな変数はあらかじめ宣言しておくほうが好み。
なので、2を推します。
>>372 とりあえず現在の仕様では ; は行末記号、() で優先順位操作な感じです
2 の方の決定的な欠点は、変数の名前解決に時間がかかる事
それから、僕自身の実力が追いつかない恐れがあることです
2 は Smalltalk でいう block closure ですよね(各ブロックが入れ子に変数テーブルを 持った場合は)。昔の block context って 1 みたいな感じなのかな?
泣き言なんか言いたくないけど、マジでややこしいです そもそもインスタンスと変数スコープが 2 では直接対応していないですし 2 がややこしくなるもう1つの個所 例えば、変数を宣言する場合、今までのやり方で言うと Let X; な感じ *ただし Let は変数宣言オブジェクトを内包した“変数”です*
System があるのだから Let も良いのでは? 私なら Var にすると思います。 そうでなければ、Smalltalk 風に | x | みたいな感じ。 どちらにしても ifTrue などと同じく、一種のスペシャル構文ですよね。
>>375 >インスタンスと変数スコープが 2 では直接対応していない
これは問題ないです。
オブジェクト指向言語において、インスタンスメソッドは
2種類(大域変数もいれれば3種類)のスコープを
参照出来るのが当たり前というか、そうならざるを得ないというか。
ひとつには、メソッド自身のスコープ。これには、
引数とメソッドローカルな変数があります。
もうひとつは、インスタンス変数のスコープもある。
(場合によっては、インスタンスメソッドも)
で、変数名から目的の変数を検索するときには、
最初に、メソッドローカルなスコープを検索し、
次に、インスタンスのスコープを検索する、
という手順になると思います。
変数名を使った検索の実装が難しいのであれば、
C++ならSTLのmapとか使うという手もありです。
>>377 Javaにてフィールド使いまくった後遺症が
インスタンスごとに共通の変数が無いと落ち着かなくて
いっその事、オブジェクトを手続きの『処理機』にしてしまおかとも考えた
ちなみにインスタンスメソッドは考えてない
変数検索アルゴリズムは何とかなる
ただ単に面倒なだけで_| ̄|○
ところで、nil、true、false などのリテラルはどうしましょうか
メッセージか、リテラルオブジェクトか、変数に代入されたオブジェクトか
>>378 nil, true, false はリテラルオブジェクトでいいのでは?
> インスタンスごとに共通の変数が無いと落ち着かなくて
インスタンス変数ですよね?
これはあったほうがいいと思います。
で、それとは別にメソッドローカルな変数もないとまずいのでは?
メソッドローカルな変数として宣言されていないものは
すべてインスタンス変数として扱うという方針で。
メソッドローカルな変数を定義するのがLetだとすると、たらい関数はこんな感じ?
Object Create -> Tarai;
Tarai <- Calc {
Let x y z; # x, y, z はメソッドローカルな変数だよん
System NextParam -> x;
System NextParam -> y;
(x <= y) ifTrue {
System SkipParam;
y -> Result;
} ifFalse {
System NextParam -> z;
Self Calc
(Self Calc (x - 1) y z)
(Self Calc (y - 1) z x)
(Self Calc (z - 1) x y) -> Result;
};
};
System print(Tarai Calc 20 5 1);
>>378 インスタンスメソッドは考えてるに訂正
考えてないのはクラスメソッド(って言うかクラス無いし)
>>379 リテラル案&Let 案済有難うございます
が、やっぱり変数は宣言無しで行きたいな、と
1年近く考えていたオブジェクトモデルが、ここにきて邪魔をする_| ̄|○
曰く、名前を憶えられるのは、『手続き』ではなく『手続きを実行するワーカー』であると
>変数は宣言無しで行きたいな インスタンス変数への代入メッセージ(->)とは別に、 メソッドローカルな変数への代入メッセージ(たとえば、=>)とかを 導入するとかかなぁ。 >名前を憶えられるのは、『手続き』ではなく『手続きを実行するワーカー』である これは、変数をもてるのは、ワーカー(オブジェクト)だけ、って意味? 「手続き」は「ワーカー」の一種ではないんでしょうか? 「手続き」 is-a 「ワーカー」 という関係が成り立てば、「手続き」も変数をもてる、ってことに なると思うんですが、、、駄目?
>>381 逆に、インスタンス変数の代入に、スロット作成と同じ <- を使用するとか
今思いついたけど、これ案外良いかも
再帰を可能にするために、メッセージセレクタ通過時にメソッド変数テーブルを一つ作る
以降、手続き終了まで、そのテーブルをブロック内で使いまわす
これが今のところの妥協点で、且つ簡単で、意外といい感じ
ちなみに、『ワーカー』が実行するのが『手続き』という考えです
is-a はちょっと辛いかも
# トリップテスト中につき失礼致します
>>382 <- の構文はこうですか?
オブジェクト <- 変数名 値;
メソッドの定義の仕方から考えるとこうだと思うんだけど、
なんか奇妙な感じもしますね。
> メッセージセレクタ通過時にメソッド変数テーブルを一つ作る
手続きが呼ばれるたびに、メソッド変数テーブルが
作られるという理解でよい?
なら、一般的な言語の手続きの動作にほぼ等しい
と思われるのでいい感じです。
>>383 訂正
インスタンス変数への代入は ->> にします
んで <- の動作をを元に戻して、
Obj <- Msg Block;
で、Obj に Msg が送られたときに Block を起動するように設定する感じ
細かな仕様がだいぶ出来上がってきました
もう大丈夫かな?
>>384 代入まとめ。
1.グローバル変数への代入
式 -> 変数名
Object Create -> Tarai;
とかの例を見ても、たぶんグローバル変数への代入だろうと。。。
2.インスタンス変数への代入
式 ->> 変数名
3.メソッドローカルな変数への代入
?
これは、-> を使うのでしょうか?
メソッドのなかでは、メソッドローカルな変数への代入で、
トップレベルでは、グローバル変数への代入とか?
あるいは、もうひとつ > を追加して、
式 ->>> 変数名
とか。。
まてよ。2のインスタンス変数への代入は 式 ->> オブジェクト 変数名; じゃないと駄目かも。 試しに、BankAccountを書いてみる。 Object Create -> BankAccount; 200 ->> BankAccount balance; BankAccount <- deposit { System NextMsg ->>> x; balance + x ->> Self balance; }; BankAccount <- withdraw { System NextMsg ->>> x; balance + x ->> Self balance; (balance < 0) ifTrue { 0 ->> Self balance; }; }; BankAccount deposit 50; # => 250 BankAccount withdraw 100; # => 150 BankAccount withdraw 200; # => 0
>>385 インスタンス変数は全てプライベート
外部からはアクセスメソッドにてお願い致します m(_ _)m
メソッド変数への代入は -> インスタンス変数への代入は ->> です
トップレベルは System かどこかの管轄内でメソッドとして実行される予定
ちなみにトップレベルに関して言えば、2つの代入はほぼ等しくなる筈
連投でもう1つ 今うちが考えている言語の名前は決まっているので感想としての話ですが、 やっぱり自分で作ったプログラム言語である以上、かっこいい名前付けたいですね ruby とか perl とか、簡潔且つ存在感のある名前って、以外と付けるのが難しいです
>>387 了解。
ってことは、BankAccountはこうか。。。
Object Create -> BankAccount;
BankAccount <- set-balance {
System NextParam ->> balance;
};
BankAccount <- deposit {
System NextParam -> x;
balance + x ->> balance;
};
BankAccount <- withdraw {
System NextParam -> x;
balance + x ->> balance;
(balance < 0) ifTrue {
0 ->> balance;
};
};
BankAccount set-balance 200;
BankAccount deposit 50; # => 250
BankAccount withdraw 100; # => 150
BankAccount withdraw 200; # => 0
>>389 ぱっと見だけどそんな感じでいいと思います
・……このスレで聞きまくった分、他の人の方が理解が深そうで怖いな
おっと、1つ聞きたい事発見
単語の区切りは半角スペースでいいですか?
そのようにした場合、例えば 1+2+3 は一繋がりになっちゃいますけど、色々と簡単になるかもです
…えと、
>>389 の 7 行目 "set-balance" を見て気づいた事柄です
>>391 半角スペースでいいのでは?
っていうか、CLispでクロージャ以外の部分を
実装済みだったり。。。(^_^;;
Lispだと、単語の区切りはスペースですからねぇ。
(まだメソッド変数への -> は変更してないけど。
現在、CLispで370行程度。)
う。
>>389 のなかのメソッドwithdrawの
balance + x ->> balance;
の1行は
balance - x ->> balance;
の間違い。。。
>>392 ヽ(`Д´)ノウワァァァン
ナデカッデルャッデイヅンディスカ!
不躾ですが、出来たらくださいな
ちなみに今、リファレンス書いてますんで、夏休みまでにはあがります
折角なので名前も公募します こちらで考えた名前より良い物があったら即採用です 皆で作っていきませう ついでに資料【宝石・鉱物の英名】 Amethyst, Aquamarine, Bloodstone, Chalcedony, Citrine, Coral, Diamond Emerald, Garnet, Jadeite, Lapis-Lazuli, Malachite, Moonstone, Opal, Onyx Pearl, Peridot, Ruby, Sapphire, Sardonyx, Topaz, Tourmaline, Ulexite
>>394 あくまでプロトタイプとして作ってみたので、
期待しすぎてはいけません。
こんな感じの言語なのかぁ、と雰囲気を楽しむために
作っています。
連投、ごめんねー。
;; language hoge(?) (defpackage "HOGE" (:use "COMMON-LISP")) (in-package hoge) ;; make global var table (defparameter *global-vars* (make-hash-table)) ;; stack of method var (defparameter *hoge-method-vars* nil) ;; stack of stack(params) (defparameter *hoge-stack* nil) (defparameter *method-params* nil) ;; for '}' read macro (defconstant *end-of-brace-macro* (cons nil nil)) ;; for ';' read macro (defconstant *end-of-statement* (cons nil nil)) ;; params stack (defun push-params-frame (lst) (push lst *hoge-stack*)) (defun pop-params-frame () (pop *hoge-stack*)) (defun stack-top () (caar *hoge-stack*)) (defun pop-stack-top () (let ((top (caar *hoge-stack*))) (pop (car *hoge-stack*)) top))
(defun stack-empty? () (null (car *hoge-stack*))) (defun next-message () (if (stack-empty?) (throw 'abort "stack empty") (pop-stack-top))) (defun next-message-value () (let ((msg (next-message))) (typecase msg (symbol (get-var msg)) (cons (eval-expr msg)) (t msg)))) (defun next-message-as-number () (let ((val (next-message-value))) (if (numberp val) val (throw 'abort "not number")))) ;; method params (defstruct params-closure method-vars stack self)
(defun next-param () (if (null *method-params*) (throw 'abort "no next param")) (let ((old-self (get-global-var 'self)) (old-stack *hoge-stack*) (old-method-vars *hoge-method-vars*)) (unwind-protect (let* ((self (params-closure-self *method-params*)) (vars (params-closure-method-vars *method-params*)) (stack (params-closure-stack *method-params*)) (param (pop (car stack)))) (set-global-var 'self self) (setq *hoge-method-vars* vars) (eval-expr param)) (set-global-var 'self old-self) (setq *hoge-stack* old-stack) (setq *hoge-method-vars* old-method-vars)))) (defun skip-param () (if (null *method-params*) (throw 'abort "no next param")) (let* ((stack (params-closure-stack *method-params*))) (pop (car stack)))) (defun in-method-p () (not (null *method-params*)))
;; method var stack (defun new-method-vars () (push (make-hash-table) *hoge-method-vars*)) (defun remove-method-vars () (pop *hoge-method-vars*)) (defun set-method-var (sym value) (if (null *hoge-method-vars*) (throw 'abort "not in method")) (let ((vars (car *hoge-method-vars*))) (setf (gethash sym vars) value))) (defun get-method-var (sym) (if (null *hoge-method-vars*) (return-from get-method-var (values nil nil))) (let ((vars (car *hoge-method-vars*))) (gethash sym vars))) ;; Object (defclass prototype () ((slots :accessor proto-slots :initform (make-hash-table)))) (defmethod get-slot ((obj prototype) name) (let ((slots (proto-slots obj))) (gethash name slots))) (defmethod set-slot ((obj prototype) name value) (let ((slots (proto-slots obj))) (setf (gethash name slots) value)))
(defmethod copy-slots ((dst prototype) (src prototype)) (maphash #'(lambda (name value) (setf (gethash name (proto-slots dst)) value)) (proto-slots src))) (defmethod send-message ((obj prototype) msg) (case msg (create (let ((proto (make-instance 'prototype))) (copy-slots proto obj) proto)) (<- (let ((name (next-message)) (body (next-message))) (if (method-p body) (set-slot obj name body) (throw 'abort "not method in '<-'")))) (t (multiple-value-bind (slot found) (get-slot obj msg) (if found (if (method-p slot) (execute-method-with-object obj slot) slot) (handle-message obj msg)))))) ;; System object (defclass system-object () ())
(defmethod send-message ((obj system-object) msg) (case msg (NextMsg (next-message)) (NextParam (next-param)) (SkipParam (skip-param)) (load (let ((filename (next-message-value))) (if (not (stringp filename)) (throw 'abort "not string (System Load)")) (load-program filename))) (print (let ((obj (next-message-value))) (princ obj))) (terpri (terpri)))) ; system load "filename" (defun load-program (filename) (with-open-file (file filename) (do* ((eos (cons nil nil)) result (expr (read-statement file eos) (read-statement file eos))) ((eq expr eos) result) (setq result (eval-expr expr)))))
;; method (defclass my-method () ((body :accessor method-body :initform nil :initarg :body))) (defmethod method-p ((m my-method)) t) (defmethod method-p (m) nil) (defmethod set-method-body ((m my-method) lambda-expr) (setf (method-body m) #'lambda-expr)) (defun execute-method (m) (do ((body (method-body m) (cdr body)) expr (result nil)) ((null body) result) (setq expr (car body)) (setq result (eval-expr expr))))
(defmethod execute-method-with-object ((obj prototype) (m my-method)) (let ((old-self (get-global-var 'self)) (old-method-params *method-params*) (old-method-vars *hoge-method-vars*)) (set-global-var 'self obj) (setq *method-params* (make-params-closure :stack *hoge-stack* :method-vars *hoge-method-vars* :self old-self)) (new-method-vars) (unwind-protect (execute-method m) (setq *hoge-method-vars* old-method-vars) (setq *method-params* old-method-params) (remove-method-vars) (set-global-var 'self old-self))))
;; eval-object-with-message (defun eval-object-with-message (obj msg) (typecase obj (number (handle-number-message obj msg)) (string (handle-string-message obj msg)) (character (handle-char-message obj msg)) (boolean (handle-bool-message obj msg)) (system-object (handle-system-message obj msg)) (prototype (handle-object-message obj msg)) (t (handle-message obj msg)))) ;; find variable from 1. method local var ;; 2. instance var ;; 3. global var (defun get-var (sym) (multiple-value-bind (val found) (get-method-var sym) (if found val (let ((self (get-global-var 'self))) (if (null self) (get-global-var sym) (multiple-value-bind (v p) (get-slot self sym) (if p v (get-global-var sym)))))))) (defun get-global-var (sym) (gethash sym *global-vars*))
;; set variable (defun set-global-var (sym value) (setf (gethash sym *global-vars*) value)) (defun set-instance-var (sym value) (let ((self (get-global-var 'self))) (if (null self) (throw 'abort "no self")) (if (not (typep self 'prototype)) (throw 'abort "not object")) (set-slot self sym value))) ;; message handler for any object (defun handle-message (obj msg) (case msg (-> (let ((sym (next-message))) (if (not (symbolp sym)) (throw 'abort "not symbol in message '->'")) (if (in-method-p) (set-method-var sym obj) (set-global-var sym obj)))) (->> (let ((sym (next-message))) (if (not (symbolp sym)) (throw 'abort "not symbo in message '->>'")) (set-instance-var sym obj))) (t (throw 'abort (format nil "object '~s' has no message '~s'" obj msg))))) ;; message handler for object (defun handle-object-message (obj msg) (send-message obj msg))
;; message handler for system-object (defun handle-system-message (obj msg) (send-message obj msg)) ;; message handler for number (defun handle-number-message (obj msg) (case msg (+ (+ obj (next-message-as-number))) (- (- obj (next-message-as-number))) (* (* obj (next-message-as-number))) (/ (/ obj (next-message-as-number))) (< (< obj (next-message-as-number))) (<= (<= obj (next-message-as-number))) (> (> obj (next-message-as-number))) (>= (>= obj (next-message-as-number))) (t (handle-message obj msg)))) ;; message handler for string (defun handle-string-message (obj msg) (case msg (+ (concatenate 'string obj msg)) (t (handle-message obj msg)))) ;; message handler for char (defun handle-char-message (obj msg) (case msg (t (handle-message obj msg))))
;; message handler for boolean (defun handle-bool-message (p msg) (case msg (ifTrue (let ((m (next-message))) (if p (cond ((method-p m) (execute-method m)) ((consp m) (execute-message-expr m)) (t m))))) (ifFalse (let ((m (next-message))) (if (not p) (cond ((method-p m) (execute-method m)) ((consp m) (execute-message-expr m)) (t m))))) (ifTrue-else (let ((true-clause (next-message)) (false-clause (next-message))) (if p (cond ((method-p true-clause) (execute-method true-clause)) ((consp true-clause) (execute-message-expr true-clause)) (t true-clause)) (cond ((method-p false-clause) (execute-method false-clause)) ((consp false-clause) (execute-message-expr false-clause)) (t false-clause))))) (ifFalse-else (let ((false-clause (next-message)) (true-clause (next-message))) (if (not p) (cond ((method-p false-clause) (execute-method false-clause)) ((consp false-clause) (execute-message-expr false-clause)) (t false-clause)) (cond ((method-p true-clause) (execute-method true-clause)) ((consp true-clause) (execute-message-expr true-clause)) (t true-clause))))) (t (handle-message p msg))))
;; eval expr (defun eval-expr (expr) (typecase expr (cons (let ((obj (car expr))) (if (consp obj) (setq obj (eval-expr obj))) (if (and (symbolp obj) (not (eq obj t))) (setq obj (get-var obj))) (if (null (cdr expr)) obj (progn (push-params-frame (cdr expr)) (unwind-protect (do ((msg)) ((stack-empty?) obj) (let ((msg (pop-stack-top))) (setq obj (eval-object-with-message obj msg)))) (pop-params-frame)))))) (symbol (get-var expr)) (t expr)))
;; read-statement (defun read-statement (stream eos) (do ((expr (read stream nil eos) (read stream nil eos)) (result nil)) ((or (eq expr eos) (eq expr *end-of-statement*) (eq expr *end-of-brace-macro*)) (cond ((eq expr eos) eos) ((eq expr *end-of-brace-macro*) *end-of-brace-macro*) (t (reverse result)))) (push expr result))) ;; parse (defun parse (eos) (let ((expr (read-statement nil eos)) (result nil) (err nil)) (if (eq expr eos) (return-from parse eos)) (setq err (catch 'abort (setq result (eval-expr expr)) nil)) (if (null err) result (format t "Error: ~s~%" err))))
;; '{' macro reader (defun lbrace-reader (stream char) (do* ((eos (cons nil nil)) (body) (expr (read-statement stream eos) (read-statement stream eos))) ((eq expr *end-of-brace-macro*) (make-instance 'my-method :body (reverse body))) (push expr body))) ;; init (defun init-hoge () (set-macro-character #\# (get-macro-character #\;)) ;; '#' one line comment (set-macro-character #\; #'(lambda (stream char) *end-of-statement*)) (set-macro-character #\{ #'lbrace-reader) (set-macro-character #\} #'(lambda (stream char) *end-of-brace-macro*)) (set-global-var 'object (make-instance 'prototype)) (set-global-var 'system (make-instance 'system-object)) (set-global-var 'self nil)) ;; main (defun main () (init-hoge) (do ((eos (cons nil nil)) (result)) (()) (terpri) (princ "hoge>> ") (setq result (parse eos)) (if (eq result eos) (return-from main nil)) (princ result))) (main)
●使用方法
1.
>>397-411 までをひとつのファイルに順番にまとめてセーブする。
(ここでは仮に"hoge.lsp"という名前にしておく)
2.CLispを起動する。(CLisp以外でも、CLOSが使えるLispなら動くかも?)
3. (load "hoge.lsp")
4.プロンプト"hoge>>"が表示されたら成功。
いろいろな文を入力して、うまく動くことを確認すること。
ちなみに、
System load "tarai";
とかでファイルに書いたプログラムをロード&実行出来ます。
たらい関数はこんな感じ↓
Object Create -> Tarai;
Tarai <- Calc {
System NextParam -> x;
System NextParam -> y;
(x <= y) ifTrue-else {
System SkipParam;
y;
}{
System NextParam -> z;
Self Calc
(Self Calc (x - 1) y z)
(Self Calc (y - 1) z x)
(Self Calc (z - 1) x y)
;
};
};
System Print (Tarai Calc 20 5 1);
>>412 リアルタイムキタ━━━(゚∀゚)━( ゚∀)━( ゚)━( )━( )━(゚ )━(∀゚ )━(゚∀゚)━━━!!
マジ有難う御座います
CLisp は先ほど導入し終わったので、早速見させていただきます
>>413 感動いたしました (;∀;)
神様が御作りになられたとはいえ、自分の考えが形に成るというのは言葉で表すことが出来ません
唯一残念なことは、Lisp 上でシミュレートしている以上、実現不可能な機能が在る事でしょうか
それでも、自分の中で、この言語に対する明確なイメージを初めて持てた様な気がします
本当に有難う御座いました
[今回の考察点も含めたフィードバック]
・ifTrue-else メッセージを bool に導入するかどうか
・Result 変数を使わずに、メッセージブロック最後のアクティブワーカーを返すようにするか
・System load 命令はどうにかして使いたい
>>414 あとはまかせます。改造するなり、CやJavaに移植するなり
好きにしてくださいませ。
> ・ifTrue-else メッセージを bool に導入するかどうか
もとの (x <= y) ifTrue {...} ifFalse {...} 形式だと、
(x <= y) ifTrue {...}; という、後ろにifFalseが
つかない文との区別をつけるのが難しいと思うんですが。
ついでに、テスト用に書いたfactをのせとく。
Object Create -> app;
app <- fact {
System NextParam -> n;
(n > 0) ifTrue-else {
n + (Self fact (n - 1));
}{
0;
};
};
app fact 5;
うわ。 上のfactっておかしすぎ! 訂正。 Object Create -> app; app <- fact { System NextParam -> n; (n > 1) ifTrue-else { n * (Self fact (n - 1)); }{ 1; }; };
>>415 わざわざどうも有り難うございます
すっかり書き忘れていましたが、この言語はメッセージのカスケード (連続) 送信を行えます
つまり
BoolA ifTrue {...};
BoolA ifFalse {...};
を (途中で BoolA 変数の中の値が変わらないものと仮定して) 一行にまとめたのが
BoolA ifTrue {...} ifFalse {...};
なので、極端な話、
(n > 0) ifFalse {...} ifTrue {...} ifTrue {...} ifFalse {...} ifFalse {...} ifTrue {...};
という訳わかんない文まで可能です
>>417 ってことは、
BoolA ifTrue {}
という式の値は必ず、BoolA の値に等しいわけか。。。
じゃ、たらい関数なんかで、
(x <= y) ifTrue {
System SkipParam;
y;
} ifFalse {
System NextParam -> z;
Self Calc
(Self Calc (x - 1) y z)
(Self Calc (y - 1) z x)
(Self Calc (z - 1) x y);
};
って書くのは不可能なんですね。
やっぱり、Resultとかに結果を代入しとかないと。。。
> やっぱり、Resultとかに結果を代入しとかないと。。。 明示的に値を返さない procedure は、内部では Self を返す function という感じで…… Result 変数には、デフォルトで Self が入っていると考えてください お騒がせしておりますm(_ _)m
>>419 > Result 変数には、デフォルトで Self が入っていると考えてください
ああ。それで、BoolA ifTrue {} の値がBoolAと等しくなるのか。
ところで、Javaへのトランスレータとか試作してみてもいいですか?
完成させるとは限らないが(あきたらポイッ!)。
>>420 まあ、待て
俺の頭が追いついてないんだ
それからもう1つ
Java へのトランスレートは難しいと思う
プロトタイプベースという、Java とは違うオブジェクトの考え方を使用しているのに加え、
そもそもこの言語には、型チェックという概念が全く無い
個人的には、先に
>>395 で発言したように、この言語の名前を考えて欲しいかな?
>422
あれ?
>>321 と
>>327 は別人かな。読み間違えてたかも。。。
Javaへのトランスレータは出来なくはないです。
だいたいの実装方法は脳内では出来てるし。。。
(あまり効率はよくないが、goferのCトランスレータ風になる予感)
言語の名前は、hogeじゃやっぱりまずいですよねぇ。
かといって、宝石関係は誰もが考えそうで好みではないし、
うーん。。。"Dacks"とか、、、いや、目の前にうちのミニチュアダックスが、、、。
#あ〜、最近ストレスフルなので、なんかプログラミングしたい〜。
#D言語プラグインでも作るか?
Pochiとか。ポチハァハァ。
>>423 漏れはこのスレに 327 以外の名前で書いたのは 326 だけです
はやとちりごめんなさいでス
当方 Cranberry または OpenBrownie にて名前を立候補
Canberry は音の感じから
Brownie はオブジェクトの挙動がなんかパソコンの小人さんっぽいから
>>425 ああ。やっぱりこちらの勘違いでしたか。ごめんでございます。
名前ですが、あまり長いと起動するときに大変な気がする。
シェルから、いちいち
openbrownie hoge.brow
とかしたくないなぁ。
>>426 長い名前の言語は、大抵短縮されているみたいですけどね
まだ決定ではないですので、じっくり考えていけば良いかと
# リファレンスかいてて考えた事
・オブジェクトモデルが、本当にパソコンの中の小人さんっぽい
・キーワードが true, false, nil の 3 種類だけという異様さ
・リファレンスそのものに BSD ライセンスってかけられましたっけ?
大域変数用に ->>> を追加し、そこに System, Object, True, False, Nil 等を放り込み、 true, false, nil のキーワードなリテラルを削除する予定 今日思いついた名前案「Mew言語」……ってぐぐったらいろんな所と名前被ってました
>>428 Mewっていえば、Emacsのメーラーを一番に思い出すなぁ。。。
℃言語
大学の仲間と話したら、
>>424 の Pochi言語『One』がやたらと好評でした
某STGと被るの覚悟なら、実行は『wanko』コマンドでとか
行末の ; が出た場合、内部的には行を終了させずにレシーバを解除させます
多分これで平気
構想上は中間コード型の処理系みたい
ほす
定期保守
ほしゅー
ho
436 :
デフォルトの名無しさん :04/07/23 10:57
>>1 は二日で逃亡したのか。1年経ってもまだ出てこないようだが。
スマソ sage忘れてた
>>433 って
>>1 じゃない?
メールのところに中間コードはくところまでできたって言ってるから
439 :
デフォルトの名無しさん :04/07/23 16:49
hage
再利用していい?
>>441 許可致します
1 逃げましたし、僕まだかかりそうですし
ついでにもう1つ Linux に持ち込みたくて 純C で作ってましたが、 ガベコレが面倒なので C# で書き直そうかと考えてます
BrainFuckのような夢あふれる言語仕様を考案します
ガンバレ
446 :
デフォルトの名無しさん :04/07/28 11:40
乞食ばかり集まるスレだな
ガベコレぐらい自分で作れなきゃどうしよもない
* = 定義 @ = lambda >*a,3 >*b,4 >*ab,@.a.b,ab >ab.a.b? 12 …ゴミ。
>>447 オブジェクトを内部では構造体で扱うことを考えたんだけど、
拡張機能を外部に持ってきた場合、内部で使用するオブジェクトの解放が面倒なのよ
object_unlock で明示的に参照カウンタ1つ下げ、使われていないものから解放……
……って考えたけど、object_unlock がいろんな場所に散らばっちゃって
仕様作ってみようかとも思ったけど、正しく動くか検証するには、学生では頭が足りない
>>327 D言語使え。GC付きのネイティブコンパイラ、これ最強。
>>450 D言語を使うには、学生では頭が足りない
Nil オブジェクトの挙動は、次のどちらにしますか? 代入メッセージ以外の、全てのメッセージを 1) 許容する 2) 拒絶する 1 だと、メッセージが来てもエラーが起きずに Nil 自身が返ります 2 だと、システム内で UnknownMessageException が発生し、停止します
>>452 > Nil オブジェクトの挙動は、次のどちらにしますか?
3) Nilが受け取るべきメッセージだけ受け取る。
例えば、Nil isNil などはtrueを返すべきかと。
>>453 了解いたしました
Nil は =, !=, ->, ->> のみ受け入れ、他拒絶という方向性で調整いたします
という流れで、試作品が完成しました
ブリーフケースに入れておきますので、DownLoad > PetitSample からどうぞ
tp://briefcase.yahoo.co.jp/migimoo00
完成品では BSD ライセンスを適応しますが、まだ試作品なのでソース非公開
サンプル入れておきましたので、実行を確かめたい方は、とりあえず
petit sample.txt 20 5 1
とコマンドラインから打ってみてください
ちなみに、実行には .NET Framework が別途必要です
現時点では、各オブジェクトは次のメッセージを受け入れます [Root] ->, ->>, create, <- [System] nextMsg, skipMsg, puts [True, False] ->, ->>, and, or, xor, not, ifTrue, ifFalse [Nil] ->, ->> [Symbol] ->, ->> [Nmber] ->, ->>, +. -, *, /, %, =, !=, <, <=, repeat [Text] ->, ->>, + 上から 4 行目までのオブジェクトは、グローバル変数テーブルに入ってます 他はリテラルオブジェクトです
今後の予定 1) コードの全体的な改良 2) エラー時に行番号も出力できるように 3) System loadlib にて別アセンブリからのオブジェクト読み込み 4) 貧弱な制御構文を補佐する Flow.dll の作成 5) スクリプト処理本体を切り離し、別アプリへの組み込みを容易にする 6) マニュアルの作成 (最優先OTL) とりあえず思いつくのは以上です
>>455 Text には toNumber 、Nil には =, != も送れるですスマソ
ちなみに、トップレベルは PetitScript.PetitRuntime でメソッドとして実行していて、
PetitRuntime には Root のメッセージに加え main が送れます
サンプルでは Tarai オブジェクトを作成して、そこに calc メソッドを設定していますが、
Self に calc を設定することも出来ます
あと、System nextMsg | skipMsg をトップレベルで行うと、
コマンドライン引数に指定した値が Text オブジェクトとして受け取れます
ここいら辺の詳細はマニュアルを待ってください m(_ _)m
2, 3, 5 が完了したのでとりあえず差し替えました やっぱりこっそりと というかこのスレどのくらいの人が見ていますか?
>>458 > 2, 3, 5 が完了したのでとりあえず差し替えました
ダウンロードしましたー。
なんかファイル名が変。。。
> というかこのスレどのくらいの人が見ていますか?
3人ぐらい? (推測)
>>459 日本語入れると不味いみたい
名前変えときました
上手く動いたら感想ください m(_ _)m
とりあえず差し替えました Flow.dll 改め PetitScript.Plugin.Extension.Flow がある程度できました。 ついでに Block 以外をメソッドとして登録すると、呼び出し時にぬるぽが発生するバグを潰しました。 その他、内部仕様が微妙に変化しました。なんか安定しない。 んで1つ質問 現在の仕様では行末に ; があるとレシーバリセットですけど、 行末ではなく行頭に持ってきた方が見やすいような気がします どちらにしろ同じ事なのですが、レシーバに設定する単語の直前にリセッタを持ってきた方が 見やすいような気がするのですが…………どうでしょう?
>>461 > 現在の仕様では行末に ; があるとレシーバリセットですけど、
> 行末ではなく行頭に持ってきた方が見やすいような気がします
> どちらにしろ同じ事なのですが、レシーバに設定する単語の直前にリセッタを持ってきた方が
> 見やすいような気がするのですが…………どうでしょう?
それって行末はどう判定するんでしょう?
次のレシーバリセットが来たとき、あるいは、ファイルの終端、って感じ?
会話的に1行ずつインタープリタに打ち込んでいくとき、
行末の判断がつかなくなりそうな気がします。
(会話的な動作はさせない、のなら問題ないかもしれませんが)
>>462 行末の ; は、Delphi と同じ機能なのですが、今までは
行1;
行2
な感じですけど、これを
行1
;行2
の方が見やすいかと思いまして ^_^;
単にコーティングの差
後者を使用した場合、見易さを重視すれば ; を : に変更し、
行1
:行2
とか
実際に書いてみると分かるのですが、明示的にレシーバを交代する場合、 後者のほうが少し分かりやすいのですよ ; が交代する行に書けますから
>>463 > 行末の ; は、Delphi と同じ機能なのですが、
Delphiの場合には ; はセパレータ(区切り文字)として
働いているわけですが、セパレータがセパレータとして
認識されるのは(構文解析可能なのは)、
始まりを表す何らかのトークン
式 セパレータ
式 セパレータ
式
終わりを表す何らかのトークン
というふうに必ず「終わりを表す何らかのトークン」が
存在しているからではないでしょうか。
たとえば、
begin 文1; 文2;文3 end
てな感じでendなどが文法上、間違いなく存在することが
保証されてるからDelphiの場合は問題ないのです。
ところが、327の言語の場合「終わりを表す何らかのトークン」が
存在しない(ファイルの終端だけ?)ので、
どう構文解析するつもりなのかなぁ、、とちょっと疑問なわけです。
>>465 確かにw
でも end の対応が取れていないとその後の部分がエラーになる罠
今のところは、トップレベルの区切りはファイルの終端でいいと考えています
内側の区切りは「ブロック」「メッセージ行」をあらわす { 〜 } と ( 〜 ) ですね
begin 〜 end は区切りとは直接関係無いような気も……俺が馬鹿なだけか?
とりあえず区切り文字は : に変更を考えています
確か昔の BASIC と同じ形式だったはず
早くリファレンス書いてしまわないと……
行終端記号を ; と : の2種類を使うように変えました んで暫定公開所設置 かなり見難いリファレンス置いてあります PetitScript 暫定公開所 p://hp.vector.co.jp/authors/VA027545/petit/
>>468 わお、こんなに早く来るとは思ってなかったw
インタラクティブモードは出来なくはないです
実行を行うクラスを総入れ替えする必要ありますが
1.0.1700.1960 に差し替えました
パースを行うクラスを一から作り直したので、ちょっと微妙な感じ
とりあえず今後の予定
1) ソース公開
2) Extension.dll の本格的着手
3) Plugin の作り方のメモを書く
3) Petit.dll を組み込む方法のメモを書く
……こんな機能、欲しいのがあったら書いてください
とりあえず Extension.dll に入れられるかどうか考えてみます
>>469 俺も
>>468 のスレから来たクチだけど、はっきり言ってロクに出来てもいないものを宣伝されると
うざったくてかなり反感ムラムラ湧いてくる。やめてくれ。
>>470 オレもお前のような理不尽なことを言う奴は、
うざったくて反感ムラムラ湧いてくるんだが
丸く治めるには一体どうしたらいいだろうか?
>>470 俺も御前のような奴はうざったいと思う
しかし完成度が低いのは確か
その辺りは勘弁してくれ OTL
>>470 ま、確かに軽率だったのは謝るわ
で、やめろって言ったってどうすれば止められるんだ?
>>470 のレス削除依頼でもしてくるか?
>>471 > 丸く治めるには一体どうしたらいいだろうか?
>>470 に反感を持つ奴はみんな死んでしまえばいいんだよ。
>>470 が地球上でいちばん偉いんだから。
とりあえず収まった?
1.0.1701.37483 に差し替えました
そろそろ一人立ちできそうなので多分単純な更新ではこれが最後の通達にしますね
今までありがとうございました(* ^ー゚)ノ
>>470 ロクに出来ていないという事ですが、言語自体の完成度は既に90%超えていたり
後は拡張機能を整備するだけ⊂⌒~⊃。Д。)⊃
バージョン表示、なんでそんなに長いんだろう?孫という名の宝物
\ / \ / \ / \ ∧∧∧∧/ < 俺 > < 予 .し > < か > ─────────< .感 い >────────── < な > < !!!! い > /∨∨∨∨\ / \ / \ / \ / _| ̄|○ \
漏れ漏れも
漏れはいないよ
いないという存在なんですね
稲井さんだろ?
新バージョンはまだ??
俺?
ほっしゅ ついでに1個質問。 配列を実装しない場合、リストとかを言語レベルで実装すべき?
どういう言語なのかも書かずに言われても。
配列の代わりに、オブジェクトが「数値」メンバを持てることと 間接的メンバ指定ができることを実装したよ。
491 :
デフォルトの名無しさん :05/02/27 02:06:25
?
>>489 それをやるとテーブルが大きくなりすぎるという課題が残ると思うが。
どうクリアするんだ?
>>489 って漏れだったっけ。
未設定の「数値」メンバは、メンバ表に書かれないから無問題
ああ、そりゃperlの内部構造と同じだな。 とんだ車輪の再発明だったな。
>>494 あう。
まあ、新奇な仕組みっていうつもりじゃ無かったんだけどね。
なんかおもしろそうなんだけど良くわかんない これ理解するにはなんの知識が必要なの?
これこれ、これだよ
オレオレ言語キター。 特徴は実行コンテキストのすげ換えの多用 自分の子インスタンスのスロットにメッセージを送っているつもりが 実はコール元が好き勝手に指定したスロットに送り続けている もちろんOLE準拠
最強のRADツール希望
501 :
デフォルトの名無しさん :05/03/13 06:50:53
現在最強のRADツールの最も些細な問題点をクリアしたもっと最強なRADツールを希望
ホイールの使えるVB6。 そう言いたいのですね?
むしろRADだけでプログラムが完成するようなもの希望
504 :
デフォルトの名無しさん :05/03/16 01:48:51
>>502 いいえ、ホイールの使えるVB6と言いたいのです。
505 :
デフォルトの名無しさん :05/03/16 02:55:49
phd language?
ほぃーるっ!ほぃーっ!ほぃいいいーっ!
>>503 そういう製品になんどだまされてきたことか
念じるだけでプログラムが完成するようなもの希望
思考力のキャパが作れるプログラムの最大限界を決めたりして。
511 :
デフォルトの名無しさん :2005/04/14(木) 17:00:29
512 :
デフォルトの名無しさん :2005/05/30(月) 04:10:08
隊長!!無人島に漂流したようです!
513 :
デフォルトの名無しさん :2005/05/30(月) 04:15:12
静的型検査とメソッドオーバーロードが異様なほどムズイ件について
俺のは型無しだから分かんないけど、そうかムズいのか
516 :
514 :2005/06/04(土) 15:29:28
ムズいんです 普通の四則演算式ならともかく、何らかの形でクラスの多重継承をサポートすると、 必要ならば継承を遡って、引数として合致するメソッドを探し、 ひとつだけに絞ることができれば、そこで初めてメソッドの型が取得できまするゆえ [1] 強引、前へ [2] オーバーロード禁止 [3] 変数の型を廃止 が、こちらが考え付いた解決策ですが、誰か決めてくださりませんか?
517 :
514 :2005/06/04(土) 19:02:22
どうしよう。個人的には静的型付けにしたいんだけど、変数宣言が今のところは var int i = 0; だから var i = 0; に物凄い魅力を感じるw ……自分のレベルと相談して、どっちにするか決めますです(`・ω・´)
引数(の型)からメソッドを決定したいんだよね? 漏れは読んでないけど、"C++の設計と進化"にそのへんのことが書いてあるってよ
その辺はLISPで仮組みすると考えが整理できて良いよ。
え〜っと、じゃぁそろそろ… ぬるぽ
521 :
デフォルトの名無しさん :2005/06/28(火) 23:45:05
522 :
デフォルトの名無しさん :2005/06/29(水) 00:48:36
Lisp 風のを少しずつ構想中 もしかしたら、Object は Function のサブクラスなのかもしれないと、唐突ながら思った
そういう言語あるんじゃないかなあ オブジェクトっていうのはそのコンストラクタのことで つまり関数のうちコンストラクタとして働けるもののことだみたいな
んいや微妙に違って (obj 'tostr) で obj.tostr を起動すると見せかけて、obj の実態が (defun obj (m) (cond ((equal m 'tostr) (tostr)) ....))) みたいな。
あー。 漏れ Lisp あんまよく分かんないんだけど、 なんかメンバ名を引数に取ってそのメンバの実体を返すみたいな。
実体を直接返しちゃうと、元のオブジェクトとの関連があやふやになっちゃうから、 多分 obj 関数は、メンバを評価した物を返すんだろうなぁ……
あー、まあそのへんは実体っていう言葉の意味が その言語においてどういうものかによりけりかな 俺は母語が、メンバオブジェクトと言った時には コンテキストも込みで指定されるような言語なもんで、 無意識にそういうものを想像してしまった
けど問題発生。どういたしましょうか? 仮定 Function は Object の親オブジェクトです 問題 (func equal nil) だと、func.equal(nil) にしたいのに func(equal, nil) になってしまう 回答A こういうもんでス。func は仮定からも分かるとおり Object では無いですし ⇒ じゃ、あえて OO にする理由は?こういう風にも出来ますって例を示しただけ? 回答B Object の方を Function の親オブジェクトにして、 (func :equal nil) のように「:」を付与して関数起動と関数オブジェクトのメソッドコールを書き分けよう ⇒ 関数起動の判定処理が複雑にならないか? ⇒ それに上の例では、func.equal(nil) と func().equal(nil) の区別が付かない ⇒ 後者は ((func) :equal nil) にすれば良いのでは?
>529 漏れもぶつかった問題なんだけど、再帰の時、オブジェクト数が膨らまない? パフォーマンスにむちゃくちゃ悪影響を及ぼしそうなんだけど
>>530 そう?そんなに膨らむのかな……
[func fact (x) # fact オブジェクトの生成リスト。defun の Object 汎用生成版
(x * (fact (x - 1)))
]
(fact 20) # fact(20) 計算
で〜 …… スタックフレームを除いた、言語上のオブジェクト生成は fact の1個だけ
確かに、再帰関数内などに生成リストを書いていれば爆発しますが……
うぁ。馬鹿やった [func fact (x) (x <= 1 ? 1 (x * (fact (x - 1))))] a ? b c で C の3項演算子っぽく
ああ、そっか。ごめん、漏れの勘違いだ オブジェクトを func のサブと定義づけてるから、func 自体は呼び出しエントリに 過ぎないわけだ。だから、再帰しても特にオブジェクトが爆発する訳じゃないんだね 昔のC++の実装みたいな作りだったんだ
あう。こっちもスマンです。
んで、
>>529 は追々考えてみます。
>530 は 回答Bに対する脊髄反射ですた 漏れはオブジェクト・ベースで考えていたとき、極端に進めて関数とは処理と結果を ラップした機能単位と定義して、再帰でオブジェクトが爆発して挫折しますた デリゲートっていい考えだね(´・ω・`)
>>529 今まで通り、(obj method param......) の形式を徹底させる事にしました
Function も Object のサブクラスとして設定
(func equal nil) => func.equal(nil)
(self func equal nil) => func().equal(nil)
self のエイリアスとして : でも使えば (:func equal nil) となってスッキリ
ちょっと出来た。パーサ自体は出来てないけど、 ( 1 + (2 * 3) ) => 7 ( '(1 + 2 + 3) tail tail eval ) => 5 とか 今は、シンボルとリスト以外に ' が付いたら '1 => '1 : Symbol '1 => '(1) : List '1 => 1 : Number の、どれにするのかで迷ってたり
x をソースに書けるかどうか → 記述可かどうか x を評価した物 が x 自身であるかどうか → 安定かどうか を考えると 1) 記述可・安定 …… 数値やら文字列やらのリテラル群 (quote 付きのリスト含む) 2) 記述可・不安定 …… カッコ、シンボル 3) 記述不可・安定 …… オブジェクトのインスタンスなど 4) 記述不可・不安定 …… 関数 んで、評価タイミングが分かり難く、最も扱い難いのが 4 番になる (安定ならば評価してもしなくても変わらないし、記述可なら評価しない旨も同様に記述可) LISP では、関数はカッコを使って記述タイミングを調節している (例えば、関数である gc を (gc) のように記述して起動するとか)
関数を評価しても関数自身だろ? 関数の評価と関数適用は違うだろ。
評価と適応を分けて書くことが出来なければ、結局同じなんだな。
そうじゃなくて関数の参照と関数の実体としてのコードとは違うって感じの話じゃね?
>>541 え〜っと……とりあえず、関数そのものを指したいのか、関数を適応した結果を指したいのか、を区別する方法を探している。
適用、な。適応じゃなく。
関数自体の評価と関数適用を区別できない言語なんてあまりなさそうだが。
>>544 あー、俺のやつがそれだわ
関数って呼ばれるものは変数の一種で
評価すると中間コードの羅列になり
それをさらに実行すると適用結果が得られる
なさそうだから、自分で文法作るときには区別できるようにしなくちゃならないってコトで
547 :
デフォルトの名無しさん :2005/07/19(火) 14:58:21
>>538 細かいけど一応 Lispでは #'gc と (gc), 例に挙げられたコードは schemeだと思います。
perlやruby等のように funcで関数呼出、prefix付きで関数の実態を参照。
C,scheme,pythonのように、funcで関数の実態を参照、括弧付きで関数呼出?
関数の実態への参照をリテラルとして記述しない、する必要ないならば、(冗長になりますが)
Lispのようにsymbol-function,funcallに相当する関数を用意し、
パーサでは関与せず実行環境の方で扱う方法もあります。
>>545 代入(or名前束縛)とクロージャで関数を実装する方法ですよね。
関数を特別な扱いをせず少ないコードで実装できる点がお気に入り。
それで?
一ヶ月以上来てないじゃん 死んじゃったの?
>>547 >細かいけど……
すまぬ。申し訳ない
もしかしたら、( 〜 ) の一番最初の項目のみを関数呼び出しと見なせば、
それだけで呼び出しと実体参照を区別できるかもしれない……
結局、面白そうなんで
(obj method prm1 prm2 ...)
(func prm1 prm2)
の両方の書き方が出来るようにしてみます。極端な悪例だと、
(+ (1 + 2 + 3) (4 + (+ 5 6) + 7))
みたいな
引数の頭の種類で切り分けるのかな。 オブジェクト式と関数式の2つのパーサがあるわけだね。
あ〜 内部的に、Function と Object の共通の親 Unit (仮称) クラスを作っておいて、 unit.start(param_list); で実行させちゃう気でいます
あ、でも困ったな。Unit には評価用のメソッドが start // ( 〜 ) 内の先頭の要素として評価する call // quote の中の要素として評価する eval // 普通に評価する invoke // オブジェクトのメンバとして評価する 妙に多すぎる。少なくしないと
プロトタイプOOで作っていると、なんとなく proto 構造が Io を連想させて鬱 orz
それはしょうがないんじゃないかなー 俺もプロトタイプOOだけど
if とか car とかの、「グローバルにあったほうが便利な関数」 の格納場所に迷ってます [1] Io みたいに、ルートの Object が全部保持 [2] クロージャの要領で、メソッドは self スロットの次にメソッド生成時の環境を参照します [3] 素直にグローバルテーブル どれも実現は可能。どれが良いかな……
> (setSlot tail-rec (method (x y) (x <= 0 ? y (tail-rec (x - 1) (y + 1))))) #(method (x y) (x <= 0 ? y (tail-rec (x - 1) (y + 1)))) > (tail-rec 241 0) java.lang.StackOverflowError さて、どうやって延命させようか…… orz
言語よりクラスライブラリを作ってくれたほうがありがたい
完全なる趣味なんで、利用価値とか度外視ですわ ^-^
これなんて言う言語?
新言語
難解言語の悪寒
俺のはそうでもない。進んでないけど
564 :
デフォルトの名無しさん :2005/09/28(水) 13:22:09
何故新言語をポンポン作るの? 無駄じゃないの? そもそもどういう要請をうけて新言語は産声をあげるべきなの?
564が使っている言語が今だにアセンブラのみとかCOBOLとかなら少しは同意できるな。
アンケート。どっちが分かりやすいですか? ◆ type A …… 'object を 「quote が付いた object」 とするパターン >> ( 'object self ) object >> ( '(nil true?) self ) nil # self は (nil true?) なので、中身が実行された >> ( '(nil true?) list? ) true ◆ type B …… 'object を 「quote オブジェクト」 とするパターン >> ( 'object self ) 'object >> ( '(nil true?) self ) '(nil true?) >> ( '(nil true?) list? ) nil >> ( '(nil true?) `list? ) true # ` を付けると、quote の中身を QUOTE 評価する
どっちもなんだかよくわからんです。 quoteの意味を説明してもらわんと。 どちらかというとBだけど >> ( 'object self ) object (というシンボル) >> ( '(nil true?) self ) '(nil true?) >> ( '(nil true?) list? ) true がいいな。
569 :
567 :2005/10/22(土) 13:13:08
>>568 うげ。すまんです。quote は丁度 LISP の quote と同じような機能を考えてます。
んで提案への返信なんですが、
>> ( '(nil true?) self )
'(nil true?)
だと、self は quote 自身が受け取っていて、
>> ( 'object self )
object
>> ( '(nil true?) list? )
true
だと、list? は quote ではなく quote の中身が受け取ってるんで、両立は難しそうです。
self のような、特定の引数は quote が受け取って、それ以外は中身に送るみたいなことも考えたんですが、
それだと妙に内部構造が複雑になるんです (-∀-;)
570 :
568 :2005/10/22(土) 13:21:46
ごめんなさい。 >> ( '(nil true?) self ) (nil true?) がいいな、でした。つまりLispのquoteと同じね。 これならOK?
571 :
567 :2005/10/22(土) 13:42:19
うひ。self 送ると quote の掛かってないリストが出てくるから評価しちゃうんだ (;´Д`) 何とかしてみるよ。
ごめん。やっぱ無理だった (;´Д`)
QUOTE(obj) を obj と表示されるようにして、(quote obj) を QUOTE(obj) を返すメソッドにしてみたんだけど、
>> (quote (obj)
obj
>> (quote (nil true?))
(nil true?)
>> (quote (nil true?) self)
(nil true?)
>> (quote (quote obj) list?) # (quote obj) は list?
true
>> (quote (quote obj) quote?) # (quote obj) は quote?
nil
が精一杯。下の段があまりよろしくない。上の段の出力結果も quote が付いているかどうか分かんないし。
とりあえず、
>>568 さんがちらりと言ったんで
>>567 の B 案でいくことにするでス。
>>572 流れをよくわかってないけど…
Lispでは、
'obj => (quote obj)
'(nil true?) => (quote (nil true?))
('(nil true?) self) => ((quote (nil true?)) self)
だから
(quote (nil true?) self)
とか
(quote (quote obj) list?)
ってのが、変な気がするんだけど…(quoteが引数2つとってるあたりがよくわからない…)
574 :
567 :2005/10/22(土) 20:10:29
うん。LISP とはちょっとちがう。(1 + 2 + 3 + 4) を書きたいんですよ。 それから思ったんだけど、QUOTE はやっぱり A 案で行かなければいけない気がした。 A 案だと、object に QUOTE がついていてもいなくても、一部メソッドを除けば同じ風に実行されるはずだし。 >> ( expr: '(1 + 2) ) # スロット expr に '(1 + 2) を代入 '(1 + 2) >> ( expr head ) '1 >> ( expr tail ) '(+ 2) >> ( expr self ) 3 が違和感無いかどうかが問題になってくるけど。
なんかquoteというものを勘違いしてる気がしなくもないんだけど。 '(1 + 2) は (quote (1 + 2 )) の省略記法で、リーダーがこれを読むとquoteなんて消滅して (1 + 2) になるのがLispのquoteだと思うけど。 AならAで、2番目が理解不能。 >> ( '(nil true?) self ) は (nil true?) になるべきなんじゃないのか? なんでselfが(nil true?)になった後でさらに評価されるのかわからん。
576 :
567 :2005/10/22(土) 20:29:17
>>575 作ってるのは Lisp じゃないから 。・゚・(ノД`)・゚・。
( '(nil true?) self ) の評価手順は、順を追って説明すると
( '(nil true?) self ) ← null
'(nil true?) ← self ⇒ (nil true?)
(nil true?) ← null
nil ← true? ⇒ nil
という不思議空間。
このあたりは試行錯誤していたけど、結局全部評価した方が感じよかったんです。
577 :
567 :2005/10/22(土) 20:31:48
もしかしたら、いっそのこと配列と S 式を区別しちゃった方が便利かもしれない。 Lisp じゃないんだし。
578 :
573 :2005/10/22(土) 21:15:21
>>574 (1 + 2 + 3 + 4) の評価の仕方はどうなってるの?
+はメッセージで2は引数とかいうオブジェクト指向な世界??
あと、個人的には下のようなほうが好みかな…
(quoteがはずれるタイミングがどうも納得いかないので。)
>> ( expr: '(1 + 2) ) # スロット expr に '(1 + 2) を代入
(1 + 2) # 'は無し!
>> ( expr head )
1 # 'は無し!
>> ( expr tail )
(+ 2) # 'は無し!
>> ( expr self )
3
579 :
567 :2005/10/22(土) 21:25:31
>>578 >+はメッセージで2は引数とかいうオブジェクト指向な世界??
そうです。混乱させてごめんなさい。
それと quote が外れるタイミングが問題とのことですが、
quote が外れたオブジェクトは、いつ評価されても文句言えない仕様なんです。
あと1つ聞きたいことがあるんですが、
>> ( '( (1 + 2) + 3) head) )
'(1 + 2)
これは ' が付いてたほうが良いですか?
580 :
567 :2005/10/22(土) 21:28:57
すいません。一番最後の段落は無視してください。
多分表示するときには付いていない方が良さそうです。
とりあえず、最終的に "(1 + 2)" と表示されても、そのリストには quote が暗黙的にでも付いていなければ評価されてしまうんで、
やっぱり
>>572 が一番適切なのでしょうか……?
581 :
567 :2005/10/22(土) 21:31:53
>>572 をベースに、quote を関数ではなく構文糖として、ちょっと実験してみます。
582 :
573 :2005/10/22(土) 22:10:11
>quote が外れたオブジェクトは、いつ評価されても文句言えない仕様なんです。 オブジェクトがいつ評価されるのかは、きちんと決まってないと混乱の元になると思う。 (実装する人にとっても、その言語を使う人にとっても。) >quote を関数ではなく構文糖として、 quoteを関数として実装するのは無理な気が… quoteが関数だと '(1 + 2) ↑は '3 と等価になるんじゃないのかな? (1 + 2)がquoteに渡される前に評価されてしまうことになるから。
>>582 ん〜っと、関数って言うかスペシャルフォームです。
あと、一般のオブジェクトは引数無しで評価しても変化しないです。
584 :
567 :2005/10/22(土) 22:30:51
止めた。Quote は無し。代用品として [ 〜 ] で Vector を用意しておきます。 >> ( [ 1 + 2 + 3 ] eval ) 6 みたいなのあれば大丈夫でしょう。
585 :
573 :2005/10/22(土) 22:38:39
>>583 1を評価しても1ってことだよね。
だとすると
(1 + 2)
の評価順序は
a. 1を評価して、結果は1
b. 1にメッセージ+を2を引数にして送る。そして得られる結果は3
ということになると思うんだけど…
そうなると
('(nil true?) list?)
の評価は
A. '(nil ture?)を評価して、結果はquoteがはずれて(nil true?)
B. (nil ture?)にメッセージlist?を送って、結果はtrue
って感じじゃ駄目なのかな?
現時点では、手順Aの次に、(nil true?)がまた評価されてしまうように感じるんだけど…違う?
586 :
573 :2005/10/22(土) 22:46:05
書いてるうちに、quoteはやめたのか…
587 :
567 :2005/10/22(土) 22:47:31
>>586 ごめんなさい。私の頭の方が先に限界が来てしまいました。
>(nil true?)がまた評価されてしまうように感じるんだけど
いえ、( '(nil true?) list? ) の場合には true が帰ってきます
問題となるのは、式を末尾まで評価し終わったときに、( 〜 ) のような不安定なオブジェクトが残っている場合なんです。
だから、[ 〜 ] を用意したとしても、
>> ( [ + 1 2 ] head )
[+]
にしなきゃいけないはず……って、根本的な問題が何も解決されてないな orz
588 :
567 :2005/10/22(土) 22:52:32
Vector には、評価済みの値のみ入れられるようにしよう。そうしよう。・゚・(ノД`)・゚・。
なんか567の言語だとS式は値になれない希ガス
590 :
573 :2005/10/22(土) 23:16:57
>問題となるのは、式を末尾まで評価し終わったときに、( 〜 ) のような不安定なオブジェクトが残っている場合なんです。 別に残ってても何も問題ないような…? 例えば、 '(apple banana orange) を評価したら (apple banana orange) というリストが返ってくるだけでいいと思う。それをまた評価しようと考えてるのかな? Lispじゃ( 〜 )のようなデータは普通というか基本だし、さらに評価する必要なんかないと思う。
591 :
567 :2005/10/22(土) 23:25:21
評価手順がゴミのようです。 >> ( 1 + 2 + 4 + 5 ) 12 rcv: 1 prm: ( + 2 + 4 + 5 ) env: global rcv: + prm: ( 2 + 4 + 5 ) env: 1 rcv: 3 prm: ( + 4 + 5 ) env: global rcv: + prm: ( 4 + 5 ) env: 3 rcv: 7 prm: ( + 5 ) env: global rcv: + prm: ( 5 ) env: 7 rcv: 12 prm: ( ) env: global rcv: global ret: 12 : env: global えっと、整理すると Quote が外れた後の不安定なオブジェクトが評価されてしまうのが問題なんだから、 不安定なオブジェクトでは、そもそも Quote が外れないようにすれば……。
592 :
573 :2005/10/22(土) 23:35:40
>>591 えっと、そもそも不安定なオブジェクトって何なのかな?
リストとのことかと思ってたけど…
あと、評価規則だけど、
1.(整数など)アトムの評価結果はアトム自身
2.リストは'('から')'の間をメッセージ・センディングとして評価する
ってことでいい?
>1.(整数など)アトムの評価結果はアトム自身 はい。 例えば、安定なオブジェクトは >> ((((((((((((1234)))))))))))) 1234 みたいに変化しないオブジェクトです。 逆に、リストやシンボルは別な値へと変化しちゃうんで不安定。 >2.リストは'('から')'の間をメッセージ・センディングとして評価する リストは評価すると、head 宛てに tail を送信します。
ちょっと思いついたかも。実験します。
【 quote 】 > ( 'true self ) ... 0ms true > ( 'true proto ) ... 0ms root-symbol > ( 'true quote? ) ... 0ms nil > ( ''true quote? ) ... 0ms true 【 quote::quote内評価 】 > ( 'nil ) ... 0ms nil > ( 'nil self ) ... 0ms nil > ( 'object ) ... 0ms object > ( '( object true? ) ) ... 0ms (object true?) > ( '( object true? ) self ) ... 0ms (object true?) > ( '( object ) quote? ) ... 0ms nil > ( '( object ) list? ) ... 0ms true ……うまくいったです。 ( '(object true?) self ) が (object true?) を返してますけど、これは許してください。
もう1つだけアンケートさせてください。 『全てのオブジェクトの継承元である object にブール演算・条件演算を適用させたいかどうか』 適用させた場合、ちょうど Io と同じような構造になります。 また見た目を考えた場合、true と表示されるオブジェクトを作るかどうかも考えています。 適用させない場合、ブール演算や条件判断演算は、object に対しては行えません。 Smalltalk を初めとした諸言語と同じ構造になります。
Io って知らないんで全く外しているかもしれないが、 nil だとか 0 だとか false だとか(ものによってそれぞれだが)以外は 真になるってことなら一般的だと思うけど。
うひ。外見的には C と C# の違いです。 if (1) { /* これが C */ } if (true) { /* これが C# */ } ちなみに、Io では object は基本的には真で、唯一の例外として nil のみ偽です。 object にブール演算適用できるようにしても、true の件はどうしましょうか。 true スロットに object 入れておけば true として使えるんでスが表示は object になってしまうんで、 独自に true オブジェクトを作って表示も true にしたほうが良いかどうか。
ミスを防ぎたいならC#方式。 タイプ量を減らしたいならC方式。 オレの好みはC#方式。 タイプ量は「!= 0」をワンキーで入れるようにエディタを仕込めばいいから。
スロット A があったとき、A には 「true」 「nil」 「それ以外」 が入っている可能性があります。 これをどう見るかも、また問題かも。 ある意味で C 方式の方がミスが少なくなるかも。かも。
偽となる特定の値以外は真になってる方がいいよ。使いやすくて。 まあどうせ俺が使うことにはならないだろうからどうでもいいんだが。
またまた御力を頂きたい (;´∀`) シンボルの評価には、幾つかパターンがあります。 ( hoge ) # hoge スロットから取り出す ( hoge? ) # 末尾が ? のシンボルは、スロットが見つからない場合 nil を返す ( hoge: 0) # 末尾が : のシンボルは、スロットが見つからない場合、値を hoge スロットに代入する ( super hoge ) # proto の hoge を取り出す ( static hoge ) # proto を辿らずに hoge を取り出す んで、スロットの値を "評価せずに" 取り出すのは、どっちが良いでしょうか > ( hoge: (method (x) (x + 1))) > ( hoge 2 ) # これだと普通にメソッドを評価 3 > ( get hoge ) # 選択肢その1、get に続いてスロット名 #(method (x) (x + 1)) > ( hoge@ ) # 選択肢その2、シンボルの末尾を ^ や @ などの特殊文字に #(method (x) (x + 1))
俺はその2がいいな
じゃあ私はその1
されば俺はその3案を
606 :
602 :2005/11/04(金) 07:50:28
わかった > ( 'hoge get ) # 選択肢その3、hoge を quote で囲み、get を送信 #(method (x) (x + 1))
よく分かってないけど、 hoge とだけ書いたら hoge の値が取れるってのはどう? (hoge 2) は、hoge が評価されて ((method (x) (x + 1)) 2) になってから値を求めるとか。
>>607 ごめん。そいつは評価システムを根本から変えなきゃいけないから無理 (-∀-;)
申し訳ない……。
っていうか、ココ本当に俺しか居ないなぁ。 【今日の質問】 メソッドオブジェクトをスロットに保存しようとしても、取り出し時にメソッドが評価されてしまう このように、メソッドを評価したくて代入したのか保存したくて代入したのかが現時点では区別されて無い どうすれば良いか 【俺の案その1】 スロットテーブルを2個つくり、代入シンボルを変える 値を入れるときには hoge: で、メソッドを実行可能状態でセットするときには hoge! とか。 【俺の案その2】 スロットに代入後、スロットの属性を変更する。 set-mode hoge "-rwxrwxrwx" とか。 【俺の案その3】 気にしない。オブジェクトを評価せずに取り出す機構は別に用意してある。 実装の難しさは2、1、3の順で簡単になる。 案2は使用時に面倒だけど、読み取り属性とかも一緒に設定できて小回りが効く。 どれがいいでしょうか。
俺は1がいいと思う
>>609 呼び出し時の構文で、メソッドを評価するかどうか
変えるのが好み。
例えば、
1.aVariable = slot_name; // メソッドが取り出される。
2.aVariable = slot_name(); // メソッドを取り出し実行する。
ごめん。『案その1』 で実装したんだが、何故だか妙に使いにくい。 『案その3』 で行くことにするよ。
常々思うんだけど、マニュアル書くの面倒だね。 書き終わったら暫定ながら公開してみます。 自分で納得できるものが出来たです。
田中彰の応援歌を考えた。 行くぞ彰ホームラン!センターオーバーホームラン! 弾丸ライナーだ!飛ばせ!運べ!彰! 俺が考えた歌詞ですよ! 弾丸ライナーだ!の後に「ヘイ!」とか「おい!」って掛け声を入れてスタンドでジャンプするの とかいれると面白いかもしれない。
615 :
デフォルトの名無しさん :2006/02/16(木) 22:48:20
がんヴぁ
616 :
デフォルトの名無しさん :2006/02/16(木) 22:50:09
sage
sage
620 :
デフォルトの名無しさん :2006/02/17(金) 10:30:32
出来た?
621 :
デフォルトの名無しさん :2006/02/21(火) 00:56:08
頓挫したよ
622 :
デフォルトの名無しさん :2006/02/21(火) 01:20:01
Fortranのように直感的な書式で数式が書け、 Java程度にはオブジェクト指向で、 複素数、ベクトル、行列、テンソルクラスがデフォでついてて、 ついでにそいつ等の演算がblas、lapack並のポフォーマンスでできて、 C++のように目を回すほど複雑でない 科学技術計算向けの言語を作ってくれるツワモノのいないでしょうか。 グリーンジャンボがあたったら援助は惜しみません。
623 :
デフォルトの名無しさん :2006/02/21(火) 01:21:10
ポフォーマンスorz
>>622 それをソースにするとどんなかんじになる?
普通にc++ライブラリを作ればいいじゃないかと子一時間
綺麗好きが多いんだろ。
表記法に特化した言語を作るのは簡単だが あとあと、計算結果をグラフにしたり、文字で出したりする時にどんどん必要なものが増えてくるんだよ だから、すでにある言語にインプリメントしていったほうが結果的には奇麗になる
629 :
デフォルトの名無しさん :2006/02/21(火) 13:40:39
トップダウンかボトムアップか
630 :
デフォルトの名無しさん :2006/02/21(火) 19:19:50
631 :
デフォルトの名無しさん :2006/02/21(火) 22:41:37
Javaで演算子オーバーロードできればかなりうれしい。
632 :
デフォルトの名無しさん :2006/02/21(火) 23:00:25
すまんが、lisp系は萌えない
633 :
デフォルトの名無しさん :2006/02/21(火) 23:03:29
>>631 普通に構文解析パーサをクラスに持たせりゃいいじゃん
class.Compute("(a + b) * (a - b)");
class.Set("a",1);
class.Set("a",2);
value = class.Value();
みたいな〜
Javaのプリプロセッサで演算塩ーバーロードとかありそう