プチコン3号&BIGまとめWiki

Toukou/SZ Language Interpreter の変更点

パンくずリスト


#title(投稿プログラム : SZ Language Interpreter)
#contents

2019年8月5日投稿
// / 2017年×月×日更新
/ 投稿者 : すず
/ &tag(投稿プログラム,インタプリタ);

* 説明 [#Setsumei]
すず言語なる新言語をつくりました

割とBrainなんちゃらに似てますがそれより2割くらいは作りやすい気がします

* 用法 [#Tsukaikata]
これはインタプリタなので、.SZL拡張子のソースコードを用意する必要があります

ソースコードはEDITモードでつくることができます

* 操作 [#Sousa]
** ファイル読み込み画面 [#Yomikomi]
下のファイル名入力ダイアログにファイル名を入力して決定してください

また、ここで実行設定を変更することができます

- &basic{-V}; 垂直同期(処理速度が遅くなります)
- &basic{-S}; 手動更新(ステップ実行)
- &basic{-D}; 処理情報(下画面の処理情報表示)

戻るを押した場合はそのままインタプリタを終了します

** プログラム実行中 [#Jikkou]
処理情報をTRUEにしている場合、下画面に処理情報が表示されます

- &basic{処理位置}; 現在処理している命令の場所
- &basic{ポインタ位置}; 現在のポインタの位置
- &basic{条件/ループ/コメント}; &basic{[]=};での条件分岐、&basic{()};でのループ、&basic{'};でのコメントの状態
- &basic{参照1 参照2}; 現在参照先としているポインタ

手動更新をTRUEにしている場合は、Aボタンで次の命令を実行できます

** プログラム実行後 [#Jikkougo]
Bボタンでファイル読み込み画面にもどります

Xボタンで解析画面に移動します(解析画面からこの画面にもどることはできません)

あと、プログラム実行終了までにかかった時間が表示されます

** 解析画面 [#Kaiseki]
全ポインタの値を見ることができます

↑↓ボタンでページの切り替え、Bボタンでファイル読み込み画面にもどります

* 命令 [#Meirei]
以下の33命令がいまのところ使えます
| &basic{>}; | ポインタを1進めます |
| &basic{<}; | ポインタを1もどします |
| &basic{+}; | ポインタの値に1を足します |
| &basic{-}; | ポインタの値から1を引きます |
| &basic{C}; | ポインタの値を文字コードとして出力します(例:65ならA) |
| &basic{N}; | ポインタの値を出力します |
| &basic{I}; | ポインタに値を入力します |
| &basic{L}; | ポインタに文字を入力します(例:Aなら65) |
| &basic{D}; | ポインタの値を削除します |
| &basic{.}; | ポインタを参照1にセットします |
| &basic{,}; | ポインタを参照2にセットします |
| &basic{!}; | 参照1と2を入れかえます |
| &basic{[}; | 参照1 > 参照2 なら @ まで実行します |
| &basic{]}; | 参照1 < 参照2 なら @ まで実行します |
| &basic{=}; | 参照1 = 参照2 なら @ まで実行します |
| &basic{B}; | BEEP音をならします |
| &basic{$}; | 全ポインタの値を文字として文字列ポインタに格納します(0は無視) |
| &basic{S}; | 文字列ポインタの文字列を出力します |
| &basic{E}; | 実行を停止します |
| &basic{W}; | 1フレーム動作を停止します |
| &basic{Q}; | ソースコードを出力します |
| &basic{a}; | 参照1 + 参照2 をポインタに代入します |
| &basic{s}; | 参照1 - 参照2 をポインタに代入します |
| &basic{m}; | 参照1 * 参照2 をポインタに代入します |
| &basic{d}; | 参照1 / 参照2 をポインタに代入します |
| &basic{(}; | &basic{)};まで処理をループします |
| &basic{)}; | &basic{(};までもどります |
| &basic{#}; | &basic{()};ループを抜けます(&basic{)};の次の命令を実行) |
| &basic{r}; | ポインタの値までの乱数を代入します(例:10なら0~9までの乱数) |
| & | 参照1 && 参照2 をポインタに代入します |
| &#x007c; | 参照1 &#x007c;&#x007c; 参照2 をポインタに代入します |
| &basic{&}; | 参照1 && 参照2 をポインタに代入します |
| &basic{|}; | 参照1 &#x007c;&#x007c; 参照2 をポインタに代入します |
| &basic{@}; | &basic{[]=};条件分岐の終了 |
| &basic{'}; | 次の&basic{'};までをコメントとして扱う |
//| &basic{}; |  |

/////////////////////////////////


* 画像 [#Gazou]

#ref(HNI_0091.JPG)

* 下載 [#Daunroodo]
プチコン3号向けの公開キーだとおもいます。
#ptcmid(CK3NYDNF)

** 同梱 [#Doukon]
- SZ_LANG(プロジェクト)
-- CALC.SZL(電卓)
-- GAME.SZL(数あてゲーム)
-- HELLO.SZL(HELLO WORLDを表示)
-- HELLO2.SZL(HELLO WORLDを表示)
-- HELLO3.SZL(HELLO WORLDを表示)
-- LOOP.SZL(指定回数処理をループ)
-- RND.SZL(0~9までの乱数を表示)
-- SZL-INTP.EXE(インタプリタ本体)
-- SZL2BAS.EXE(Smile BASICに変換(.BAS))

/////////////////////////////////


* 一覧 [#Ichiran]
#basic{{
'HELLO3.SZL'
,>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>
a+++++++.>a--->a++++.>a+++.>a++++++++>a+++>a-----------
<<<<<<C>C>CC>C<<<<<C>>>>>>C<C>C>>C<<<C>>>>C
}}

* 感想 [#Kansou]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は[[掲示板>Board]]へ)

#comment

*** 計測 [#Keisoku]
今日は &counter(today); 人が来てくれました。
合計で &counter(total); 人ですよ。

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.006 秒 | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30