1 :
デフォルトの名無しさん:
N88-BASICは?
スレ立て感謝です。
VB for Winの初期で一時的に中間コードコンパイラでしたけど
基本的にはずっとインタプリタ/ネイティブコンパイラの組み合わせだったMS-BASIC。
QBには*.QLBという、今で言うdllもどきを組み込む事でインタプリタのままで
アセンブラなんかと併用する能力があったり。
VB for DOSのフォームデザイナがFD.exeで、某ファイル管理ソフトと併用するには
いちいちPATHを切り替えないといけなかったり。
それがいつの間にかgenericsですよ!
VB6を中心にプログラミングしています。
Visual Studio 6.0をインストールしているPCに
Visual Studio.NET 2003をインストールしたら
VB6.exeの動作がおかしくなったんですけど
そんなもんなんですか?
$やら%やらに慣れてると、バリアント型は嫌で嫌で…
最終的にOption Strictは付いたけど、全て失われて普通の言語になってしまったというか…
皆さんどういうふうに見てます?
BASICそのものの言語仕様とかも話したいですね
他のスレですと、.NET色やら比較話やらが濃く出てしまいますから
で、変遷を続けた変数宣言。
個人的にはOPTION EXPLICITしてなおかつDIM A$, B%, C#, D&, E!と書けたVB for DOSが、
バランスとして一番良かったと思うのですよ
…気にしてる人はいないのかな(苦笑
ところで、.NET SDKのヘルプに
>非共有メソッド内で宣言された Static ローカル変数は、インスタンスごとに有効です。
という一文を見つけました。
って事は、そのメソッドからしかアクセスできないメンバ変数を、メソッド側で定義する機能、ですよね!?
C#の後追いみたいなイメージが強かったのですが、さり気なく先進的な部分がありそうだなあ…
数値リテラルの精度を決めるポストフィクスが、FとかRとかDになってるしい…
ここだけでも!とか#とかにして欲しかったなあ…記号が足りないのはわかるけど
整理されたって言えば整理されたことになるのかも知れないけど
C系の記号の使い方が紛れ込んで来てて、なおさら意味不明になってるなあ…
14 :
デフォルトの名無しさん:04/07/15 08:12
'$DYNAMICとか思い出したあげ
VBでFormat("##,###")のケタぞろえをやめた理由がわからん。
もしかして日本語版だけ?
Microsoft.VisualBasic.Strings.Formatってのがそれじゃない?
それでも、かつてのPRINT USING "##.## + ##.## = ##.##"; A, B, A+B みたいに書きたいかなあ…
書式文字列と実際の出力の長さが一致するため、printfよりも便利
>>16 VB.NETで復活したのね。
>>17 PRINT USING は便利だった。
これが使えないと、BASICのメリットは大幅にダウン。
失われた便利仕様でも挙げていきますか。
PRINT USINGは言わずもがな、DATA/READなんかもそうだよなー
逆に、追加されたもので、他の言語の後追いではないものは何があるだろう
バリアント型ぐらい?
20 :
デフォルトの名無しさん:04/07/19 17:50
next j,i
21 :
デフォルトの名無しさん:04/07/22 23:22
そーだよなー、環境依存しまくった言語仕様であってこそBASICだもんなー、
言語仕様のみを語っても意味無いよなー
22 :
デフォルトの名無しさん:04/07/22 23:32
OPEN "A:mona.txt" FOR INPUT AS #1
とか
LINE (10,20)-(30,40),5,BF
とか、関数ともつかないような不思議な構文がいろいろあったな。
当時は、これが当たり前だと思っていたが・・・。
PEEK, POKE, USR(0)
24 :
デフォルトの名無しさん:04/07/22 23:37
インタープリタ作成の点から見ると、昔の貧弱なマシン上で動かすのだったら、
C や Lisp のような単純な構文のほうがパーザーも単純で良かったろうに。
C のインタプリタ?
26 :
デフォルトの名無しさん:04/07/22 23:40
C のインタープリタといえば CINT だが、BASIC 的には CINT は整数キャストの関数だな。
do〜loopで用は足りるのに、いまだにwhileがあるのも充分不思議だったりするけどな…
>>24 むしろ、DISK BASICなんかBASICそのものがOSの一行コマンドとスクリプトを兼ねてたので、
行ごとにばらせる非・構造化文法は必然だった気がする
それと、Cは…構文は単純だが、曖昧な点が多いのでパーサにはやさしくない…
VB.NETの配列定数の中括弧がなー、
今までBASICで使われていなかった記号を使ってしまうって、どうよ?
>>26 そういえば、INTもFIXもあるのに、CINT(というかCXXX系関数全般)の存在意義が俺にはわからなかったのを思い出した
説明できるなら教えて欲しい
VB6のエディタの色分けによると、Int、Fixは識別子、CInt()はキーワード・・・らしい。
Intは互換性のために仕方なく残した。
C〜は戻り値の型を意識できるので推奨、だったような。
33 :
デフォルトの名無しさん:04/07/31 23:59
ぶっちゃけ、BASICが優れてるところってあるかな…?
レイトバインディングのような他の言語でも後から足せそうなものは除いて、BASICの構文として
行指向なのは面白いけど、PythonぐらいまでいけばともかくEnd Ifとか書くのはあんまり意味無いし
>>32 互換性もなにも、Intは切り捨てで、CIntは暗黙の変換と同じ(銀行家の丸め?)だった気が…
所詮BASICなんだからいっそ、式に%付けたら整数、$付けたら文字列、とかやって欲しいなw
確かに"."を書かなきゃいけないWithはめずらしーな
>>33 元の言語仕様が古いからねぇ。
最近の言語と比べて優れているところと言っても…。
JIS の full BASICなんかだと組込で行列計算ができて便利なんだけど。
38 :
デフォルトの名無しさん:04/08/03 14:37
動機付けにはあまりにも些細過ぎる気が…しかもJavaのラベル付きbreakという上を行く先例まであるのに…
40 :
デフォルトの名無しさん:04/08/08 03:01
ここまで寂れるとは…
まあ、まともなBASICerにとっては道具は道具でしかないだろうし(じゃなきゃ他の言語に手を出してる)、
まともじゃないBASICerは他の言語のスレに乗り込むのが好きなようだし…
41 :
デフォルトの名無しさん:04/08/10 19:28
上げてみるか
>>36 スコープのあいまいさが多少なりとも緩和されるので、
意外にいい仕様だと思う。
>>42 半分同意。PascalやJSのwithと比べて多少なりとも、でしかないけど…
本当はブロック限定で式に別名付けできる構文があれば一番いいのだけど
Adaのrenamesというやつ
C++でローカルスコープの参照で { T &ShortName = LongLongLongExpression; ... } ってやるのも一緒だけど
AdaにしろC++にしろ型を書かないといけないので、その辺は推論してくれるのがいいな、理想を言えば
45 :
デフォルトの名無しさん:04/08/13 22:22
46 :
デフォルトの名無しさん:04/08/15 05:24
47 :
コピペ推奨:04/08/15 07:09
N88でマルチウィンドウシステム作ろうとしたけど
だめでした。
MicrosoftBASIC ver.7 にはそんなツールキットがついてきたな>ウィンドウシステム
ポインタや参照の類を一切使わずによくもまあ、だったし、使い物になるとも思えなかったが
51 :
デフォルトの名無しさん:04/08/19 20:37
53 :
デフォルトの名無しさん:04/08/23 18:03
XP SP2入れたら、VB製アプリが起動時に警告が出るようになったんだけど、
やっぱり.NETって裏でセキュリティ的にヤバイことしてるんだな。
メモリリークとかバッファオーバーフローもするし。
54 :
デフォルトの名無しさん:04/08/25 13:41
55 :
デフォルトの名無しさん:04/10/28 18:42:16
56 :
デフォルトの名無しさん:04/10/28 19:02:29
C#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>VB
57 :
EXCULTer's / Active PC ◆xCyLv.Cgwg :04/11/07 15:39:56
VB、か。史上最大のゴミだなww
C++>C#>JAVA>C>>Delphi>>VB>>Perl>Ruby>>>HSP>>>ひまわり>>TTSneo>>>>>>>>>>>MicrosoftBASIC
59 :
EXCULTer's / Active PC ◆xCyLv.Cgwg :
>ひまわり
ワロタw