今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル 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


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
10351.「問題解決」(problem solving) - 文太 22/11/02-16:10
  ┗10352.Re: 「問題解決」(problem solving) - としき 22/11/03-13:37
   ┣10353.Re^2: 「問題解決」(problem solving) - めざら 22/11/03-16:34
   ┣10354.Re^2: 「問題解決」(problem solving) - 文太 22/11/03-18:16
   ┗10362.Re^3: 「問題解決」(problem solving) - としき 22/11/04-19:31
    ┗10363.Re^4: 「問題解決」(problem solving) - 文太 22/11/04-20:52
     ┗10365.Re^5: 「問題解決」(problem solving) - としき 22/11/04-22:45
      ┣10366.そこまでジャパンはすごかったのか! - 文太 22/11/05-12:18
      ┣10367.Re: そこまでジャパンはすごかったのか! - としき 22/11/05-12:58
      ┗10371.Pascal & Basic - 文太 22/11/07-23:03
       ┣10372.cplate.def (v1.00) 再掲 - 文太 22/11/07-23:10
       ┗10376.Re: Pascal & Basic - としき 22/11/09-13:00
        ┗10377.Re^2: Pascal & Basic - 文太 22/11/09-23:06
         ┣10380.Zen of Assembly Language - 文太 22/11/10-01:00
         ┗10386.Re^3: Pascal & Basic - としき 22/11/11-03:33
      ┣10368.補遺とか訂正とか - としき 22/11/05-15:29
      ┣10369.Re: 補遺とか訂正とか - 文太 22/11/06-12:20
      ┣10370.Re: 補遺とか訂正とか - としき 22/11/07-19:16
      ┗10373.Re^2: 補遺とか訂正とか - 文太 22/11/08-15:20
      ┗10383.DOSとBasic - 文太 22/11/11-01:14
      ┗10378.Re^6: 「問題解決」(problem solving) - konno 22/11/09-23:55
       ┗10384.Re^7: 「問題解決」(problem solving) - としき 22/11/11-02:06
   ┣10355.「問題解決法」(problem solving)(^^; - konno 22/11/03-20:08
   ┗10356.Re: 「問題解決法」(problem solving)(^^; - 文太 22/11/03-21:20
    ┗10358.Re^2: 「問題解決法」(problem solving)(^^; - 文太 22/11/03-22:16
   ┗10364.Re^2: 「問題解決」(problem solving) - 文太 22/11/04-21:20

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用あり]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]