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

タイトル Re^3: Pascal & Basic
投稿日: 2022/11/11(金) 03:33
投稿者としき
参照先http://toshiki.la.coocan.jp/
 番 号 10386    10377 番 文太 さんへのコメント

> >  この拡張というのが何なのか分からなかったのですが。

> APPENDIX E. PASCAL STANDARD AND IBM FEATURES
> Metalanguage 
> Metacommands:	;これらはコンパイラへの擬似命令。

なるほど、これは私の感覚では、確かに正統な拡張と言う感じです。

>  どうしても本気で知りたいなら、basm最終版を落としてもらって、basm.txtを
> 読んでもらうしかないですが、僕がなんとなく理解できたのは、

そこそこ興味はそそられるので、落としてしまうかも。
とりあえず、ネットをさまよって、英語で書かれたいくつかのサイトをざっくり
読んでみたのですがね。関係者が書いたのか善意の第三者が書いたのかわからない
ページで、compilingという単語を見かけました。なので、これって実は、ただの
BASICコンパイラなのではないか、と思いました。
とはいえ、今の所はまだ、表面をなぞっただけ、という自覚はある。
私の知りたいところとしては、ごく簡単なもの、例えば hello world を表示する
だけとかでいいので、完璧に動作するソースリストと、それの変換結果がどうなる
か、というのを見たい。なぜかいまだにBASM用のソースリストにお目にかかれて
いない。

>  いっぱい足りないものがあるのかもしれませんが、概略としてはこんな感じ
> みたいです。↓

これをみるに、なかなかできの良いBASICコンパイラではないか、という思いが
ますます強くなります。


>  ふーん。コンパイラよりアセンブラのほうがもっとマシンよりなのかと思って
> ましたけど、そうとも限らない、と。ふーん、です。

ここだけ、ちょっと長くなるけど、解説。
私の感覚が古い、とか、かつてはそうだったけど今は違う、という部分は多々ある
かと思います。でも、もしBASMが20世紀末にリリースされたのであれば、私の
感覚も大ハズレではないと思う。

まず機械語というのはビットの羅列。そして人間には、どのコードが何をするか
なんてことを覚えるのはなかなか難しい。そこで記憶用の、いわゆるニーモニック
というのが開発された。最初はまさに、それぞれのコードの挙動の記憶用。のはず。
なお、ニーモニックという言葉の由来とか原義とかは、たぶん英語の専門家にお尋ね
いただいたほうがいいでしょう。
そして、ニーモニックを使ってコンピュータの挙動全体を書き下ろすようになった。
すると次に、それをそのまま機械語に変換できるとうれしい。
ということで、ニーモニックを機械語に変換するのがアセンブラ。
その後、アセンブラには擬似命令だのマクロ機能だのが追加されて、構造化構文
までサポートされるようになりました。
とはいえ、基本的にニーモニックと機械語は1対1。
そうではなく、変数に定数を代入する、というようなロジックでプログラムを書く
のが高級言語。最初のころのFORTRANとかCOBOLとか。そして、そのプログラムを
複数の機械語に変換する、というのがコンパイラ。
また、コンパイラも、ターゲットのマシンの機械語にコンパイルする、いわゆる
普通のコンパイラのほかにも、仮想的なマシンの機械語にコンパイルするという
種類のものが昔からありました。有名なところでは、JavaはJVMという仮想マシン
をターゲットにコンパイルされることが多く、WindowsやLinuxではそれぞれ自分
の環境で動くJVMを用意しています。古くは、PASCALでp-codeコンパイラという
ものがありました。これは pseudo code というものを出力するコンパイラで、
別途 p-codeを解釈するインタプリタを実際の各マシンで用意するという形に
なっていました。
これら伝統的なアセンブラやコンパイラのほかに、トランスレータというのかな、
別の言語処理系があります。つまり、ある言語を別の言語に変換する、というもの。
最初にBASMの話を聞いたとき、私はこれだと思ったんですよ。つまり、BASICの
ソースをバリバリの機械語にいきなり変換するのならコンパイラだけど、例えば
マクロを使いまくったアセンブラのソースに変換するのであれば、それはコンパイラ
でもアセンブラでもないよね、ということ。
これの有名なものにratforという言語があります。rational FORTRANということで、
構造化されたPascalっぽい構文のratforで書かれたプログラムをトラディショナルな
FORTRANに変換してくれるのです。ratforが最初に紹介されたときは、これはFORTRAN
の前処理、すなわちプリプロセッサであるという言い方をしていましたが、今では
プリプロセッサというのは単なる置き換え程度のみ行うものをさすようになっていて、
ratforのように構文解析して全く異なったものを出力するものに対しては使わない
用語となっているようです。

ということで、BASMの入力と出力がどうなっているか、ということに興味津々。
とはいえ、今日はもう寝る。

    - No.10386 一括表示へ   -   コメント元:10377 一括表示へ  -    [ 返信 ]    [引用無し] 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   暗証キー
    [ページトップへ] [管理用]