2021年02月27日 | Version 0.10α公開。 |
2021年05月21日 | ツイートできるBASICプログラムの文字数の上限を、200文字から600文字に拡張。 |
2021年05月25日 | Syn BASICをVersion 0.25αにアップデート。また、ページ構成を変更し、1ページ目の内容の一部を2ページ目に移動。 |
2021年06月05日 | Syn BASICをVersion 0.27αにアップデート。 |
2021年06月14日 | Syn BASICをVersion 0.28αにアップデート。 |
2022年11月24日 | Syn BASICをVersion 0.30αにアップデート。 |
2022年12月03日 | Syn BASICをVersion 0.31αにアップデート。 |
2023年01月04日 | Syn BASICをVersion 0.32αにアップデート。 |
Syn BASICは、オンラインで無料で使えるBASICインタプリタです。ブラウザ上でBASICのプログラムを実行できるので、開発環境を準備する事なく、気軽にBASICのプログラムを実行できます。
上の画面(画面1)で、BASICのプログラムが実行できます。使い方の説明は1章以降に書いてあります。
画面が狭いと感じる場合は、例えばWIDTH 80,25ENTERと入力すると、画面が広くなります。WIDTH文の第1パラメータは桁数(横幅)で、第2パラメータは行数(高さ)です。詳しくはWIDTH文の説明をご覧ください。
プログラムをツイートボタンで、入力したプログラムをツイートできます。プログラムのツイートは、圧縮された形でツイート内のリンクに埋め込まれ、そのリンクをクリックすると、このサイトで、実際にプログラムが実行できます。
注:ツイートできるプログラムのサイズに上限があります。上限は、圧縮後で1900バイトです。圧縮前だと、2kバイト強のプログラムがツイートできます。
次に示すツイートは、筆者が実際に自分で作ったプログラムをツイートした例です。ツイート内のリンクをクリックすると、作ったプログラムが実際に起動します。
2本の抵抗の抵抗値の比を入力すると、なるべくその比に近い2本の抵抗を、E24系列から選ぶプログラムを作りました。
— しなぷす@synapse.kyoto (@h164tan1) June 14, 2021
スクリーンショットは、比が3.14に近くなる組み合わせを選んでいる様子を示します。リンクをクリックすると実行できます。
https://t.co/j8w92YmcjW pic.twitter.com/03bgmhwB5J
なお、このページで公開しているSyn BASICのバージョンはVersion 0.32αです。アップデートの履歴についてはSyn BASICリリースノートをご覧ください。
Syn Basicの操作法やプログラムの作り方に関する初心者向けの説明や、サンプルプログラムを紹介したページもありますので、そちらも参考にしてください。
Syn BASICは、気軽にBASICプログラムを実行できる様に開発された、オンラインで使えるBASICインタプリタです。スマートフォンなどの狭い画面の端末でも動作する様に作られています。
またSyn BASICはマイクロソフト社のMBASICを意識した文法を採用しています。
行番号のあるBASICで、各行には行番号を付ける必要があります。現在では、Visual Basicなど、行番号を使わない(あるいは行番号を使う事を強制されない)BASICが一般的になっていますが、古き良き時代を偲ぶため、あえて古い文法を採用しています。
例として、1から100までの合計を求めるプログラムを、画面2に示します。各行の先頭に10、20、30、・・・と行番号が付いている事が分かります。
画面2では、RUNボタン(青い三角形のボタン)をクリックすると、実際にプログラムを実行できます。(あるいは、画面をクリックして、画面に文字を入力できる状態にしてから、RUNENTERと入力してもプログラムを実行できます) プログラムを実行すると、1から100までの合計の5050が表示されるはずです。
プログラムの行の追加、削除、変更などは、この行番号を使う事で行います。
例えば、上の画面のプログラムの60行を、次の様に変えたいとします。
60 print "Sum:",s
その場合、上の通り入力してENTERキーを押すと、プログラムが変更できます。
その後、LISTENTERと入力してプログラムのリストを表示すると、次の様に表示されるはずです。
10 '100までの数を合計するプログラム 20 s=0 : ' 変数sを0に初期化(省略可) 30 for i=1 to 100 40 s=s+i 50 next i 60 print "Sum:";s
この様に、すでに入力済みの行の行番号(この場合は60)で始まる文字列を入力してENTERキーを押すと、既存の行を、新しく入力した行で置き換えます。
入力済みのプログラムに使われていない行番号で始まる文字列を入力すると、プログラムにその行を追加します。
15 print "Calculation of sum"
例えば、先ほど60行を書き換えた後に、さらにリスト3の様に打ち込み、ENTERキーを押すと、プログラムに15行としてリスト3に示す行が追加されます。
その後、LISTENTERと入力すると、表示されるプログラムリストはリスト4の様になります。
10 '100までの数を合計するプログラム 15 print "Calculation of sum" 20 s=0 : ' 変数sを0に初期化(省略可) 30 for i=1 to 100 40 s=s+i 50 next i 60 print "Sum:";s
この例で分かる様に、BASICプログラムの行は、行番号が小さい順に並べられます。
ある行と次の行の間に新しい行を追加したい場合は、追加する行の行番号は、既存の2つの行の行番号の間の数字にすればよい事が分かります。上の例では、10行と20行の間に行を追加するために、10と20の間の15を行番号として、新しい行を入力しました。
プログラムの行番号を、1,2,3,・・・と1ずつ大きくしていったのでは、後から行と行の間に新しい行を追加できませんから、BASICでは、行番号を10ずつ増やす習慣があります。
Syn BASICには、起動時にプログラムを自動入力したり、あるいはさらにそのプログラムを自動的に実行する機能があります。
画面3では、一秒間隔で数字がカウントアップしているはずです。これは、次の様なBASICプログラムを作って、それをページに埋め込み、自動実行する様にしてあるからです。
10 i=i+1
20 print i,
30 wait 1000:' 1秒(1000ms)待つ
40 goto 10
Syn BASICの起動時に、上のプログラムを自動的に入力し、それを自動的に実行するために、このページのHTMLには次の様なコードが埋め込んであります。
<div class="SynBasicFrame"> 10 i=i+1<br> 20 print i,<br> 30 wait 1000:' 1秒(1000ms)待つ<br> 40 goto 10<br> cls:list:'画面を消してリスト表示<br> run </div>
SynBasicFrameというクラスのdiv要素を設けると、そこがSyn BASICを実行できるコンソール画面になります。そのdiv要素の中に、Syn BASICで自動実行したい命令や文をbrタグ(改行タグ)で区切って書くと、それらが順に自動的に実行されます。
上の例では、10行から40行までのプログラムを打ち込み、画面を消去(cls)してプログラムリストを表示する(list)という操作を自動実行します。
この機能を使うと、ホームページで何か計算を行うサービスを提供したい場合、習得が難しいJavaScriptやPHPを使わないでも、習得の易しいBASICでスクリプトを書けます。
画面4に示すのは、一次方程式の解を求めるサービスを、Syn BASICで実現した例です。xに関する一次方程式ax+b=0のaとbを入力すると、方程式の解を表示します。
参考:どのようなプログラムが動いているのかを知りたい方は、中断ボタンをクリックしてプログラムを停止した後、LISTENTERと入力してください。プログラムのリストが表示されます。
ボタンを押したりプルダウンメニューから選択肢を選んだりといったグラフィカルなインターフェースはSyn BASICは実現できませんが、逆にいえば、GUIを扱うのに必要なイベントハンドラ等の勉強をせずに、とりあえず動作するプログラムが組めます。
Syn BASICはTypeScriptで記述されていますが、そのTypeScriptのソースファイルを、近い将来MITライセンスで公開する予定です。そのソースファイルをダウンロードし、ご自分のWebサイトのサーバーにアップロードすれば、ご自分のサイトにBASICプログラムを組み込む事ができる様になります。
参考:TypeScriptは、JavaScriptを拡張したプログラミング言語で、JavaScriptと共に、Webブラウザ上で動作するプログラムの開発によく使われます。
このBASICインタプリタの特徴として、多くの予約語に日本語のエイリアス(別名)がある事が挙げられます。
例えば"PRINT"のエイリアスは「書け」と「かけ」なので、"PRINT"と入力する代わりに、「書け」や「かけ」と入力しても、同じ動作になります。
主な予約語と、そのエイリアスを表1に示します。
注:将来のバージョンアップにともない、予約語やエイリアスは変更になる可能性があります。
予約語 | エイリアス |
---|---|
書け,かけ | |
INPUT | 聞け,キケ |
LIST | リスト, りすと |
NEW | 消せ, けせ |
RUN | やれ |
GOTO | 行け, いけ |
GOSUB | 行ってこい, いってこい |
RETURN | 戻れ, もどれ |
IF | もし |
THEN | なら |
ELSE | 違えば, ちがえば |
FOR | 繰り返せ, くりかえせ |
TO | 最後の数, さいごのかず |
STEP | 幅, はば |
NEXT | 変えろ,かえろ |
REM | 注,ちゅう |
また、変数名に日本語が使えます。変数名の最初が全角文字なら(厳密にいえば基本ラテン文字でなければ)、全角文字が続く限り変数名が続いているとみなします。
予約語に日本語のエイリアスがある事と、変数名に日本語が使える事を利用すれば、画面2の1~100の数の合計を求めるプログラムは、画面5の様に記述する事もできます。
RUNボタン(青い三角形のボタン)をクリックすると、プログラムを実行できます。
また、ひらがなのエイリアスを使えば、画面6の様に、ひらがなだけでプログラムを記述することもできます。
RUNボタン(三角形の青いボタン)をクリックすると、プログラムを実行できます。
なお、予約語のエイリアスに、ひらがなの物を用意したのは、「小学生にプログラミング教育をする上で、児童がアルファベットを習得していない点がネックになる」と聞いたことがあるからです。最終的に、全ての英語の予約語にひらがなのエイリアスを用意して、数字とひらがなと小学生にもなじみのある記号だけでプログラムできる様にしようと考えています。
なお、このBASICの日本語化の際に行っているのは、予約語に日本語のエイリアスを用意している事だけで、ぴゅう太のG-BASICの様に、命令の語順を日本語に合わせて変える事は行いません。(例:GOTO 100 ⇒ 100 ニイケ)
キーボードの絵のボタンをクリックすると、ソフトウェアキーボードが画面の下に出てきます。スマートホンやタブレットでそれをタップする事でプログラムを入力できます。通常のQWERTY配列のキーボードもありますが、ABC順のキーボードやひらがなのキーボードも用意してあります。QWERTY配列を覚えていない小さな子供には、ABC順のキーボードやひらがなのキーボードでプログラムする方がとっつきやすいかも知れません。
次のページでは、Syn BASICで使える命令や文などについて説明します。