タイトル | : Re^2: Pascal & Basic |
投稿日 | : 2022/11/09(水) 23:06 |
投稿者 | : 文太 | 番 号 | : 10377 10376 番 としき さんへのコメント コメント数 2 |
>機械翻訳を使わず、辞書だけでがんばった。がんばりました〜!!! (^^)/~~~~>Wikipediaにもありますが、もともとPascalでPascalコンパイラというのは書ける>わけで、これはほかの言語のコンパイラを書くことができるようにしたい、という>意味なのかなぁ。そういう意味なのではないですかねぇ。> この拡張というのが何なのか分からなかったのですが。APPENDIX E. PASCAL STANDARD AND IBM FEATURES Summary of IBM Pascal Features This list summarizes the extensions added to Standard Pascal. Syntactic and Pragmatic Metalanguage Metacommands: ;これらはコンパイラへの擬似命令。 $BRAVE $DEBUG $ENTRY どどどどど。5ページくらい。読む気にならない。 読んでも大半わからないだろう。>言葉のニュアンスが違う、というのはわかります。>でも、コンパイラというのは多くの場合、マシン語を直接出力します。>一方、アセンブラというのは、原義としては、マシン語と1対1の変換機。>なので、「Basic -> Asmに翻訳」というのがマクロ構文をビシバシ使っている>ものに対する翻訳であれば高級なプリプロセッサだと思いますが、単にマシン語>に翻訳するだけであれば、それはコンパイラに他ならない。ふーん。コンパイラよりアセンブラのほうがもっとマシンよりなのかと思って ましたけど、そうとも限らない、と。ふーん、です。>あとは、BASMという言語そのものがどういったものか、という点も知りたい。どうしても本気で知りたいなら、basm最終版を落としてもらって、basm.txtを 読んでもらうしかないですが、僕がなんとなく理解できたのは、 ・配列に制限がある ・複文(?)=関数の返り値が関数の入力になるようなのはダメ=単文2つに分けよ。 ・.comモデル用ソース生成で、relocatableなのは作れない。コンパイル時にメモリ 配置が固まるものに限る。 ぐらいでしょうか。 いっぱい足りないものがあるのかもしれませんが、概略としてはこんな感じ みたいです。↓ "BASM supports the following statements and functions:" Say 07,07,"DIR$ HEX$ OPEN CLS REPLACE" Say 07,08,"SHELL ASC CLOSE PRINT SWAP" Say 07,09,"TIME$ ABS KILL INPUT DELAY" Say 07,10,"DATE$ BIN2DEC CHDIR POS ASM" Say 07,11,"COMMAND$ GETKEY MKDIR CSRLIN BEEP" Say 07,12,"CURDIR$ INSTR RMDIR LOCATE DIM" Say 07,13,"UCASE$ VAL NAME COLOR ARRAY SORT" Say 07,14,"LCASE$ LEN PRINT# FRAME ARRAY INSERT" Say 07,15,"MID$ SGN INPUT# GETSCREEN ARRAY DELETE" Say 07,16,"TRIM$ EOF LINE INPUT# PUTSCREEN SCAN" Say 07,17,"LTRIM$ ERR EOF CHANGEATTR MOD" Say 07,18,"RTRIM$ AND DIR$ VIDEOCARD INCR" Say 07,19,"EXTRACT$ OR CURDIR$ DEF SEG DECR" Say 07,20,"REMOVE$ XOR GET$ PEEK SHL" Say 07,21,"REPEAT$ NOT PUT$ POKE SHR" Say 07,22,"SPACE$ TICKS LEFT$ RIGHT$" END SUB SUB Display3 ReFrame Say 13,05,"BASM supports a rich set of control and loop constructs Say 07,07,"DO - EXIT LOOP - LOOP Say 07,08,"FOR - NEXT - STEP - EXIT FOR Say 07,09,"IF - THEN - ELSE - END IF Say 07,10,"SUB - EXIT SUB - END SUB Say 07,11,"GOTO labelname Say 07,12,"GOSUB labelname Say 07,13,"RETURN Say 07,14,"FUNCTION - EXIT FUNCTION - END FUNCTION Say 07,15,"CALL subname [parameters] { CALL is optional } Say 07,16,"SELECT - CASE - END SELECT Say 07,17,"WHILE -EXIT WHILE- WEND Say 07,18,"END [optional DOS Errorlevel value] END SUB じゅうぶん立派な気がする。GOTO、悪くないと思うけどなぁ。>極端なことを言うと、アセンブラのレジスタの数しか変数が使えない、なんて仕様>のBASICなら機械語に変換するのもたやすいかもしれない、みたいな感じで。なかなか受けましたが、そのようなことは書いてなかったと思う。 keep instructions short, use the registers, use string instructions, というのが、速いコードを書く鉄則だそうです。気にしないけど。変数、大好き。 当たり前のことがさらりと書いてあっただけなのですが、引用元は、Zen of Asm Lang です。知ってる? 怖いよ、タイトルからして。同じ著者の別の本のタイトルは、 Black Bookです。こ、怖いです。5年先にすら読もうとする可能性はかなり低い。 もちろん、アサム本です。
- No.10377 一括表示へ - コメント元:10376 一括表示へ - [ 返信 ] [引用あり] pre