JavaScript (43) BASIC の構文解析

JavaScript の連載は 3 年ぶりになります。今回は最近始めた「BASIC でコンバータを作る」企画の一環で、BASIC の構文解析の部分を6年前に作った JavaScript のパーサージェネレーターで使って作ってみようということで、BASIC パーサーを作ります。

作成したコードとその結果をこちらに公開します。

とりあえずパーサーらしきものが出力されました。次回は作成したパーサーが動作するか確かめてみたいと思います。

(つづく)

関連項目

BASIC (5) 構文解析について

BASIC の構文解析をどのように進めるか、考えていこうと思います。

『FM-7 F-BASIC文法書』 の PLAY 文のところに「PLAY構文図」というのが載っています。これは PLAY 文の構文を図で表したものです。

Play

すべての文に対してこのようなものを作り、それにしたがって内容を読み取るのが今回作ろうとしている構文解析になります。

そういえば以前、JavaScript でパーサージェネレータというものを作りました。これは囲碁の棋譜 SGF (Smart Game Format) の構文を解析するために、EBNF (Extended Backus-Naur Form) で書かれた構文から JavaScript のパーサー(構文解析プログラム)を作り出すツールです。

EBNF は上図の構文図の代わりになるものです。SGF の構文を書けば SGF のパーサーが出力され、BASIC の構文を書けば BASIC のパーサーが出力されます。

このツールで出力されるのは JavaScript のコードですが、一から BASIC のコードを書くより JavaScript のコードを見ながら書いたほうが、正しいコードを書けるような気がします。

ということで、しばらくの間、JavaScript の連載に移行します。

関連項目

プログラミングを学んでみるには

PCアイコン

コンピューターやロボットのプログラミングを学んでみるのに役立ちそうな情報をまとめています。

 

コンピューターやロボットのプログラミングを学んでみるのに役立ちそうな情報をまとめました。以下の項目に分類してあります。
・新着情報
・記事
・ツイート
・イベント
・入門サイト
・サイト
・学校など
・教材
・まとめ

 

新着情報

 

WRO2020概要 | WRO Japan 公式サイト – 小中高校生のロボットコンテスト
WORLD ROBOT OLYMPIAD JAPAN

 

Online PHP/Java/C++… editor and compiler | paiza.IO
以前、ツイッターでプログラムをつぶやくと実行してくれるサービスを提供していました。ツイッターアカウントは凍結されてしまったようですが。

 

Maker Faire Tokyo 2020 | Make: Japan
2020年10月3日(土)、4日(日)、東京ビッグサイトで開催予定。

 

SwitchScience – YouTube
スイッチサイエンスチャンネル – スイッチサイエンスによる電子工作に関する最新情報を動画で見ることができます。

 

Micro:bit財団は、技術による発明を誰にとっても楽しいものにする、グローバルな非営利団体です。
micro:bit の公式サイトです。

 

Small Basic: Xamarin Workbooks でインタラクティブな学習 (ja-JP) | TechNet Wiki
Xamarin Workbooks で C# 言語から Small Basic ライブラリを呼び出す方法をまとめた TechNet Wiki の記事です。

 

Rhino | MDN
Rhino(ライノー)はプログラミング言語 JavaScript をインタラクティブに実行できる環境です。プログラミング言語 Java で記述されています。

 

Code With Mu
Mu(ムー)とはプログラミング言語 Python をインタラクティブに実行する環境です。micro:bit や Raspberry Pi にコードを送り込むこともできますが、単独でも使用できます。

 

カムプログラムロボット工作セット
TAMIYA のカムプログラムロボット工作セット。コンピュータは使いませんが、はるか昔のバンダイ コンピューターカーと同様の仕組みでロボットが動きます。

 

プチコンBIGについて – SmileBasic
プチコンBIG – ニンテンドー Wii U でBASIC言語によるプログラミングができます。

 

みんなが作ったRobotist動画集 | 株式会社アーテック
アーテックブロック + スタディーノ(Arduino互換機)で作ったロボットのビデオです。

 

Arduino STEM educational Robot kits Building Platform | Makeblock ®
中国製教育用ロボット Makeblock

 

Minecraft | Code.org
Hour of Code のマインクラフト版。マインクラフトが好きな子ならすぐにコンプリートできると思います。日本語も選べます。

 

MESH:遊び心を形にできる、アプリとつなげるブロック形状の電子タグ|ソニー
ちょっと高いんですが、プログラミング的思考の初歩を学ぶのには手軽かも。

 

こどもパソコン IchigoJam – はじめてのプログラミングパソコン(1500円)
テレビ、キーボードをつなげて IchigoJam BASIC のプログラミングができます。キット製品ですが、組み立て済みや、ブレッドボード版もあり。

 

記事

 

10 PRINT “Hello world”:iPhoneやiPadを「ポケコン」にするアプリ「DPC-100」 – ITmedia Mobile
ちょっと古いニュースですが、昔ポケコン使っていた人は欲しくなるのでは。私は買ってしまいました。
2013-01-21

 

プログラム未経験者の同僚が、たった1時間でゲームを作った方法 – paiza開発日誌
Flappy Codeでビジュアルプログラミングを学ぼう
2014-10-16

 

ゲーム感覚でプログラミングを学べる小型PCキット「Kano」を使ってみました – GIGAZINE
かなり詳しく解説されてます。
2014-10-09

 

パソコン甲子園2014「プログラミング部門超実況」VTR(編集バージョン) – YouTube
パソコン甲子園。高校生のみなさんはチャレンジしてみては?

 

Pythonが大学の入門用プログラミング言語として人気を集めていると判明 – GIGAZINE
2014-07-15

 

4歳からのプログラミング入門:我が子にプログラムを教えるための5つのヒント : ライフハッカー[日本版]
2013−11−04

 

ツイート

 

 

 

 

 

 

 

イベント

 

全国小中学生プログラミング大会実行委員会 – ホーム | フェイスブック
全国小中学生プログラミング大会

 

Hebocon ヘボコン Official – ホーム | Facebook
プログラミングが必須でないので番外編なのですが、コンテストの精神が素晴らしいと思いました。

 

「ビーバーコンテスト」情報ページ
小中高生向け国際情報科学コンテスト。毎年11月にコンテスト開催。

 

入門サイト

 

VISCUIT(ビスケット)〜コンピュータを粘土のように〜

 

プログラミン | 文部科学省
Adobe Flash Player のサポート終了に伴い、2020年12月31日で閉鎖予定。

 

動画でまなぶScratch Jr『5才からはじめるすくすくプログラミング』【まとめパック】 – Udemy
Udemy のコース『5才からはじめるすくすくプログラミング』【まとめパック】。ScratchJr を使ってプログラミングを学べます。今なら \1300。【Vol.1】だけなら無料で受講できます。

 

ScratchJr – Home
ScratchJr オフィシャルページ。ScratchJr には iOS 版(iPadのみ)、Android 版があります。とてもかんたんにプログラミングが学べます。(詳しい説明は英語、でもほとんどは絵)

 

Make: Japan | Kids
オライリージャパン, Make: の「キッズ・教育」コーナー

 

とほほのWWW入門
HTML/JavaScript/CGI/スタイルシートなど、 ホームページ作成に関する情報を満載した ホームページ作成関連総合サイトです。プログラミング言語としては JavaScript の他に Java, perl, PHP, Ruby, Rython のリファレンスもあります。

 

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
ツイッターでちょこちょこ利用者を見かけました。

 

初めての方へ | プログラミングとゲームの杜
GreenOwl さんによる無料のプログラミング入門講座です。現在 Small Basic, MBASIC86, Scratch について学べます。

 

サイト

 

ドットインストール – 3分動画でマスターする初心者向けプログラミング学習サイト
2015年3月16日現在、以下の10カテゴリがあり、216のレッスンがあります。
・iOSアプリを作れるようになろう
・Androidアプリを作れるようになろう
・ホームページを作れるようになろう
・JavaScriptから始めるお手軽プログラミング
・jQueryでひとつ上のプログラミング
・サーバー環境を作れるようになろう
・PHPでウェブサービスを作れるようになろう
・Rubyでウェブサービスを作れるようになろう
・仕事で使える技術に挑戦してみよう
・ゲームプログラミングに挑戦してみよう

 

natural science 科学・技術講座
仙台の特定非営利活動法人の nature science による「ものづくり」などの小中学生向け講座。

 

CodePen – Front End Developer Playground & Code Editor in the Browser
CodePen というサイト。HTML, CSS, JavaScript のコードを作って公開できます。それらを学ぶためのコードを公開している方もいるので見るだけでも参考になると思います。ただし英語です。

 

3分動画と練習問題で学ぶプログラミング学習サービス「paiza動画ラーニング」 | プログラミング学習のpaiza
動画で学ぶプログラミング学習サイト。さまざまなプログラミング言語について学べます。求人と連動しているのでプロを目指している人向けかも。

 

Apache Cordova
Apache Cordova は以下のプラットフォーム上で動作するモバイルアプリケーションを HTML, CSS, JavaScript で作れる開発環境です。かんたんかどうかは不明。
iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada, および Symbian

 

TouchDevelop
スマホ、タブレット、ラップトップ向けのアプリをブラウザからタッチで開発できます。iOS, Android, Windows, Mac および Linux に対応。開発元は Microsoft Research 。

 

製品詳細 – 製品ラインアップ – 電卓 – CASIO
カシオのプログラム電卓 fx-5800P です。

 

Bitsbox – Monthly Code Projects for Kids
Bitsbox 英語です。

 

プチコンmkII
ニンテンドー DSi / 3DS 向けの BASIC です。

 

プログラミング言語Sunaba
覚えることが少なく、調べる手間がないプログラミング言語。

 

Learn RFO Basic – The Easiest Way To Create Android Apps
Android で走る BASIC です。

 

W3Schools Online Web Tutorials
Webサイトのプログラミングについて学べます。(英語)

 

Mobile BASIC for iOS – TECHNOMISER SOFTWARE
Mobile BASIC for Andriod もあります。

 

コードの書き方を学ぼう | Codecademy

 

Anybody can learn | Code.org
世界中の人がコーディングを学べるサイト。HOUR of CODE というコースでは、ブロックを使って誰でも簡単にプログラミングの基礎を学べます。

 

プログラミング学習ならオンライン個別指導のプログラミングスクール [CodeCamp]

 

プログラミング言語「ドリトル」
教育用プログラミング言語。日本語ベースです。

 

学校など

 

gacco
MOOC の日本版 JMOOC にコンテンツを提供する gacco。2016年2月に「プログラミング入門 ~Javaによるオブジェクト指向プログラミング~」の開講が予定されています。

 

スーパーサイエンスキッズ
特定非営利活動法人スーパーサイエンスキッズのワークショップ(スクール)一覧

 

CANVAS | 遊びと学びのヒミツ基地
フジテレビ「とくダネ!」のコメンテーターを務める石戸奈々子さんが理事長のNPO法人「CANVAS」。プログラミングを通して子どもたちの考える力や表現力を育てています。

 

PEG programming education gathering | Facebook
CANVAS主催、Google後援のプロジェクト。6~15歳の子どもに「ラズベリーパイ」5,000台を提供。各地でgathering実施中。

 

TENTO » 子ども向けIT/プログラミングスクール

 

ITとものづくり教室 Qremo(クレモ)

 

Internet of Things ワークショップ
ノンプログラマーでもわかる!作れる!動かせる!
Internet of Things 1日ハンズオンワークショップ

 

小学生のためのプログラミング入門コース | Tech Kids CAMP(テックキッズキャンプ)

 

Life is Tech! | ライフイズテック | 中学生、高校生のためのプログラミング・ITキャンプ/スクール

 

コードアカデミー高等学校
2014年4月に開校したコード学習を必修とする通信制高校

 

TechAcademy [テックアカデミー] | ITに特化したスクール

 

CoderDojo
全世界に展開しているボランティアによる無料の子供向けコーダー道場。
このまとめに初めてリンクを作成したころは日本には14ヶ所しか道場がありませんでした。今では218以上の道場が存在するそうです。

 

IT@NET塾:セミナーと通信教育を統合したプログラミングスクール

 

教材

 

Why!?プログラミング [技術 小学生・中学生]|NHK for School
2016年3月21日より放送。

 

【家庭学習】教材 | 教育版レゴ マインドストーム 正規代理店(株)アフレル

 

物理法則プログラミング入門 | gacco
gacco の無料オンライン講座「物理法則プログラミング入門」の募集が開始されました。受講開始日:2015年3月5日、学習期間:4週間。
本講座は終了しました。

 

まとめ

 

これからの情報教育に関するまとめ – NAVER まとめ
プログラミングを学ぶ目的という意味で「プログラミング的思考」についてまとめました。

 

今もっとも”ホット”な習い事 「プログラミング言語」を学ぶべき3つの理由 – NAVER まとめ

 

プログラミングが学べる!IT・パソコンスクール(学校)まとめ | TechAcademyマガジン

 

Microsoft Small Basic まとめ – NAVER まとめ

 

今すぐ動画で「プログラミングの基礎」を独学できるWebサービス10選はコレだ! | シェアしたくなる最新のWebサービス・ITニュース情報をチェック! APPGIGA!!(アプギガ)

 

ソースコードを解析することで、プログラミング学習が可能になるWebサービスまとめ!|APPGIGA!!(アプギガ)
初級者から中級者にステップするためのサービスまとめ

 

プログラミング初心者のうちに身につけたい3つの習慣 | Social Change!
2012-04-06

 

プログラミングのアイデアをまとめてみました。 – NAVER まとめ
じゃあ、どんなプログラムを作ろうか。アイデアをまとめてみました。