Delphiで言語を作るぞ(゚Д゚ )ゴルァ!!
Delphiでし●言語、ギコ●ーシックに負けない言語を作るんだぁ!
と、いうスレでつ...
ちなみにマターリとsage進行
3 :
デフォルトの名無しさん:02/12/30 17:04
ん?gccをブーツストラップでもするか?
Delphiって何ですか?
デルポイで女の子にモテモテ
Delphi[でるふぃ]
Pascalと何か関係がある開発環境・言語、その辺。
用途的にはC++と同じっぽい
C マガにコンパイラの作り方載ってたね。
とりあえず
>>1は言語名を決めて丁髷。
言語名は (゚Д゚)ハァ?スカル で決まり。
(゚Д゚ )ゴルァ!!スカル でもいいじゃん
(・ )デルパイ( ・) で決まり。
馬鹿は放置っと。
↑
馬鹿
>>9 速く読むとラスカルなんで却下
>>8 だとしたら ( ゚Д゚)ハァ?スカル かね
>>10 もっともっと変えてくれ
デルミ゚Д゚彡フォルァ!!
15 :
デフォルトの名無しさん:02/12/30 18:39
テルミw
(;」゚Д゚)」 テ・テルミー!!
>>17 TellMe と Telmi どっちかな。
Delphi のパロなら後者だろうけど。
>>6 遅レスだけど俺も「デルフィー」って読んでるよ。
>>18 TellMeって何だよ。そんな名前にするわけない。
ネットアイドルテルミに決まってるじゃん。
>>19 じゃあ Terumi か。
てか
>>1はどこ逝ったよ?
適度に煽ってくれないと盛り上がらないじゃんw
似たようなの何個も作ってもしょうがないだろ
>>22 偽をやるな
おれも思ったことだけど
名前はTellascal(てらすかる)に(仮)設定
まだ変える余地があるからまだ話しててくれ
年末&新年だけど仕事が入った......
まずはDelphi Languageのコンパイラをフルスクラッチで開発して
Borlandの頚木から逃れるのが先決だろう・・・
29 :
デフォルトの名無しさん:02/12/30 22:41
>>28 最新の機能さえ使わなければ FreePascalでOK
つーか、
>>1がある程度形を作れないと
この手のスレは無意味
#!/bin/tellascal
say 'using: no parameter.' if args.
// if (args != null) {System.out.println('usi...er.');}
say hello world,
>>1.
// [
>>1].say('hello world');
#!/bin/tellascal
class sample class {
say hello { say hello. }
}
class sample class test {
main {
s = new sample class.
say hello, s.
}
}
糞コード貼るな
34 :
デフォルトの名無しさん:02/12/31 07:50
このスレ乗っ取って、 Delphi用テンプレートもどきを作るスレにしてもいいですか?
>>34 COM使えば容易そうだけどな。レイトバインディングだっけか。
テンプレートもどきというのは、cのプリプロセッサのように コードを読んでDelphiのコードを吐くもの
です。
で、
1、専用 C++のように文法に入り込む
ただ、そうなるとDelphiの文法解釈も必要で、非常に労力が大きい
2、汎用 プリプロセッサとしてDelphi文法に入り込まずに済ませる
こっちが作る方は格段に楽だし他言語にも使えるけど、使う側は使い難い
ホントは1を考えたいけど、自分の実力じゃこの冬中に何か作るのは無理なので
2の方式で作ってみたい。
とりあえず、定義については#define / #include のCのプリプロセッサ方式を考えています
それでも、
#define int Integer
で
var a:int;
というのを解釈させるには、少なくとも語句レベルの分析ルーチンが必要ですが・・・・
>>37 なぁ、いるか?
type
int = integer;
じゃ不満か?
テンプレート関数については
#function "ファイル名" 関数名(引数):帰り値;
でファイルで定義した関数を引数並びで置換というような感じでどうでしょう?
問題はテンプレートクラスと 演算子
テンプレートクラスは、チョット考え中。アイデア誰か無いかな。
演算子オーバロードは文法の解釈が絡んで来るので自分には無理。
やれるとしたら、演算子の新設
#operator 型名 演算子 "ファイル名" 関数名
例
#operator TRect _+ "ファイル名" RectAdd
この行が
function RectAdd(var s,d:TRet):TRect;
begin
・略・
end;
と置換されて
a:=b _+ c; を a:=RectAdd( b , c) と置換
>>38 あ、例が悪かったですね
#define Add(a,b) (a+b)
みたいなのは?
つぅかなんで今更プリプロセッサ?
近代的な言語では軒並み廃止される方向に進んでいるのに。
個人的な勉強ならともかく、スレッドまで立てて大々的に前時代的なことをする意味があるのか。
>>41 まあ、確かに。 あれば便利かと思ったけどね。
>>42 いや、あれば便利かと思って・・・・
作るなら、自分だけじゃなく人にも使って貰えるものをと思ったから・・・
いや、要らない? 要らないならやめる
Delphiがジェネリックを言語レベルでサポートすれば、いらないねえ。
>>44 テンプレートってそのテンプレートで良いの?
彼が言ってるのはジェネリック云々とは別のベクトルな気がする。
単純置換では2種類以上の型のテンプレートに対応できないわけで。
#define T int
void hoge(T giko);
//このソースではこれ以外の実態を生成できない。
>>45 それで、
#function "ファイル名" 関数名(引数):帰り値;
って構文を考えたんだ。
ファイルに
function <NAME>(arg1:<ARG1>):Integer;
var wk:<ARG1>
begin
#if ARG1=Integer
・・略・・
#else
・・略・・
#endif
end;
みたいな感じで準備しておくと
#function "ファイル名" hoge(var name:Integer):Integer;
このファイルがインクルードして置換されてソースに出力されると
まあマクロアセンブラのマクロのノリで
>>46 じゃあ別の構文導入しないでもDelphiの拡張構文っぽくして良いんじゃないの?
素Delphi
program Test
var i: Integer;
begin
for i := 0 to 9 do
Writeln(i);
end.
S式風Delphi
program Test
begin
begin var i Integer end
begin for i 0 9
begin Writeln i end end end
> program Test
> begin
begin program Test
Cの__FILE__と__LINE__に相当するマクロだけ欲しい。
あとはバグの元になるのでイラネ
2です。
このスレは無事に終了いたしました。
2ってのは1ではなかったのか?
Delphiを関数型言語にして名づけてDelphiML。
使えそうで使えない。
ネ・・・・ネタスレになってる・・・・・
ObjectPascalの何が不満なのか。
カズアテ ダ(゚Д゚ )ゴルァ!!
ヘンスウ
セイカイ, ニュウリョク: セイスウ;
(・∀・)ハジマリ
セイカイ := ランスウ;
ループ
(・∀・)ハジマリ
ニュウリョク := セイスウノニュウリョク;
セイカイ < ニュウリョク ?
モジノシュツリョク('');
(゚Д゚)ハァ? セイカイ > ニュウリョク ?
モジノシュツリョク('');
(゚Д゚)ハァ?
(・∀・)ハジマリ
モジノシュツリョク('');
(・∀・)ジサクジエンデシタ!;
(・∀・)オシマイ;
(・∀・)オシマイ;
(・∀・)オシマイ;
結局、賛同が得られないので、勉強がてら中間言語方式のベーシックもどきを作っています。
現在出来ているのは
L1=1+2*3+4
DAT=(1+L1)*3
の計算式から中間言語バイト列を出力させる所までです。
0 RAM=2word
2 6E 01 00 Num 1
5 6E 02 00 Num 2
8 6E 03 00 Num 3
11 2A *
12 2B +
13 6E 04 00 Num 4
16 2B +
17 62 01 00 Set 1
20 6E 01 00 Num 1
23 61 01 00 Get 1
26 2B +
27 6E 03 00 Num 3
30 2A *
31 62 00 00 Set 0
>>62 そう 数字やデータをプッシュしといて 演算子や関数でポップする方式
だって、他のは正月休みじゃ作れないよ。
それと、勉強用だから データは16bit限定
テキスト直接のインタプリタと違って、中間言語方式だと結構大変だね。
まだ600行くらいだけど、時間思ったよりかかってる。
困ったなあ 現在800行を少し超えた所
case op of
'+' : push(pop + pop);
'-' : push(pop - pop);
'*' : push(pop * pop);
みたいに書いたら、当然左のpopが先に実行されるようで、負数や除算が反対になっちゃう。
格好良く書く方法ないかなあ
'-' : push(- pop + pop);
除算は変数使うか、ネスト function を呼び出すかしないとむりぽ。
1.0 div pop * pop じゃ精度が落ちるしね。
>>65 ありがとう。 ブロック置換で
'+' :begin w:=pop;push( pop + w );end;
'-' :begin w:=pop;push( pop - w );end;
ってやったよ。
結局、作ってみたけど低機能だから Delphiだけで使うんじゃ面白くない。
だから、今、実行エンジンをcで書いてみる事にしようと方針転換。
Delphiで中間言語吐かせて、M16とかのボードマイコンで実行するみたいな使い方で
簡単な説明
procedure TScript.TranslatePass1(p:PChar);
pで与えたソースを分解して FItems 配列に出力
procedure TScript.TranslatePass2(Items: TAScrItem);
Itemsを与えて、
ラベル類を解決し、バイトコード PCODE配列に出力
function ScriptRun( pcode:array of byte; proc:TScrCallBack):TScrInt;
中間言語 pcode配列を実際に実行する
値をPush する=> opNum ,opLab,opELab
2項演算子は pop pop 演算 push
単項演算子は pop 演算 push
関数は aBPに位置を記録しておいて @演算子でaBP相対で引数参照
今、Cで実行エンジン書いてるけど、関数内関数が無いとツライからだになってて愕然とした。
で、#define 使い出した・・・・ そしたら
>>64は
'+' :begin aStack[aSP-2]:= aStack[aSP-2] + aStack[aSP-1] ;dec(aSP);end;
'-' :begin aStack[aSp-2]:= aStack[aSP-2] - aStack[aSP-1] ;dec(aSP);end;
みたいに書けば良い事に気付いた。 Cだと += -= 演算が使える事にも
やっぱり、複数の言語で書くと、色々勉強になるな。
あと ++ / -- はやっぱり便利だなあ
inc / dec も 値を返せばいいのに
ただそうなると、 PostInc PreDecとか欲しくなるか
>>67 の ScriptRun には
CALL・RET が多重になるとマズイ面がある事に気付いた。
スタックフレームの作り方がダメダメみたい。
72 :
デフォルトの名無しさん:03/01/07 22:07
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
男は裏2ch
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
モキュ
>>751 まともじゃないから2ちゃんねるという図式は考えないのか?(苦笑)
2ch=アングラとは決して思ってないしそう言う意味じゃないけど
するからなー。
>>84 裁判所認定事実の項にも原告・被告の主張を挙げてるよ。
その上で裁判所の判断を示す。
現在、A*B/C という式は
PUSH A
PUSH B
op *
PUSH C
op /
に再帰下降でコンパイルしてるのだけど、これを
PUSH C
PUSH A
PUSH B
op *
op 逆除算
とコンパイルするとしたら、どうやればいいのかな?
何をしたいかというと、
掛算と割算が連続してたら、一時的に倍精度を使いたいので
後の方が実行エンジン側が楽になるので
単純にMulDiv( A,B,C) って関数を定義した方がいいか
>>84 裁判所認定事実の項にも原告・被告の主張を挙げてるよ。
その上で裁判所の判断を示す。
>>86 の前に「第3 当裁判所の判断」ってのもあった、、
ちゃんとインデントしてくれ、、
裁判官はアホだね。
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
test
>>530 そんなやつばかりになった2ちゃんねるがおもしろいのかどうか。
表で見える部分だけでなく、裏でもQ等を使ってやりとりしていますからね。
協力してもらった人、お世話になった人は一杯いますよ。
挨拶位、大目に見て下さいな。
県人会に帰ろうぜ
>>85 一種の最適化だね。
単純に、構文木が特定のパターンだったら変換してやる。
>各板のTOPに一定期間、お知らせみたいに貼ってたら?
テストの結果次第でこのまま運用が続いたら書くかもです。
どこぞの宗教団体を批判するスレ・レス出現
↓
どこぞの団体が、管理人にスレ・レス作成IP教えろ
↓
管理人がIP教える
│
├─────┐
↓普通 ↓異常
裁判 VXガス
こうなるとオウムに個人情報を知らせ 大量殺人にまで発展した
TBSと同じになるな。 カルトは裁判を起こすことが目的ではなく
都合の悪い相手を特定して殺害することが
IPを得る本当の目的だから真実の書き込みができなくなる。
平和な日本の昼下がり、
創価学会脱税疑惑を追及した市議会議員が自宅の団地で家事をしている。
すると突然、自宅の窓から化け物のような歪んだ力で
あっという間に空へ丸投げされて落下死する。
団地の部屋はコンビニへ買い物に行っているかのように
台所も洗濯物も何もかもがそのままの状態だ。
地元警察は創価学会と数日前から綿密な口裏合わせがあったかのように
他殺を自殺と決め付けてろくな捜査も現場検証もせず数分で打ち切る。
http://www.sokamondai.to/ ちなみにフランス内務省は最高危険度カルト教団として
日本の創価学会を公式に指定した。
正義のためにフランス政府公認のカルト教団と
たった一人で戦った市議に黙祷( ‐人‐ )
2ちゃねらーはプロバイダー責任法案を
国会で通過する前に反対しておけばよかったのに。
私は反対したが力が足りなかった。
いきなり夜勤さん降臨か・・・。
あのことを聞いてみようかと思う今日この頃
てか憲法で公共の福祉なんとかかんとかを習う時
そういうことも同時に勉強するよな。漏れの場合は中学の時だった。
バカに乗っ取られたマターリスレ晒しage中。
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
>>94 構文木は作っていません。
構文解析では再帰下降でスタック上で処理して直接PCODEアイテムを吐き出しています
・・・まあそんな所で楽するからこういう処理が難しくなってしまうわけだけど
◎●●●●●◎
◎●ミ.|.|.|.|.|.|.|彡●◎
◎●ミ 口 彡●◎
◎●三 口 .| .| 三●◎
◎●彡 ノ └-.ミ●◎
◎●彡川.|.|.|.ミミ●◎
◎●●●●●◎
__◎' ◎' ◎_
| 友 |
| 枝 |
| 小 |
| P |
| T |
| A |
/7 ̄ ̄ ̄ ̄ ̄キヘ
/7 キヘ
/7 キヘ
こらポリ製品おまい誰に断って快速スレの継続たてているんだ。
warata
知ってるよ、今はただでさえヤヴァィのに
十数人の小学生をばたばた殺したら相当ヤヴァィだろ、と思った訳です
うーん、ちょっと軽率発言でしたね、すみません
お前ら、年がバレます
2002年2ちゃんねるアニメランキング1位のアニメに・・・・
モナーが出演決定!!!!!!!!!!!!!!!!!!!!!
<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00
コピペするひとって、作文能力に、不自由な、ひとなのでしょうね。
自分の考えを、自分の言葉で、表さないで、何がうれしいのか、わからないから、
バカかって思いますけど、それよりもカワイソウ、なのです。
12/24
| \
| ('A`) ギシギシ
/ ̄ノ( ヘヘ ̄ ̄ アンアン/
12/25
| \
| ('A`) ギシギシ
/ ̄ノ( ヘヘ ̄ ̄ アンアン/
1/1
| \
| ('A`) ギシギシ
/ ̄ノ( ヘヘ ̄ ̄ アンアン/
それはそのとおりだが、実際問題としては、そこまで追っかける人は少ないようだよ。
大変よいところに気付きました。
そう言う風にダラダラした負荷が続くときは、
鯖のリブートが必要なのです。
更にこの現象が悪化するときは、夜勤さんを召還してください。
やりかたはこう。
夜勤さん!! ヘ(^^ヘ)(ノ^^)ノ
(^^)
コピペ職人さん帰省しないの?
(^^)
120 :
デフォルトの名無しさん:03/01/20 07:31
マ板は落ちるのはやいねえ
山崎なんとかいう荒しのせいだろ
あれでシャッフルされちゃったんだな
>>73 のは改造して仕事に使っちゃいました。 デバックしてたら色々バグがボロボロと
でも、仕事のソースと混じっちゃったから、ゴメン。
思い出せるのは、
IF 文にコメントを付けた時の挙動とか
CのソースでIF の論理が反対とか、
(^^)