• Amazonで購入

タイニーBASICをCで書く

Raspberry Pi、Arduino、PICでタイニーBASICを走らそう!!

著者
鈴木 哲哉
定価
3,456円(本体価格 3,200円)
発売日
2016年4月23日
判型/ページ数
B5変形/288ページ(1C)
ISBN
978-4-8026-1020-9
備考
-

本書では、簡易版のプログラミング言語であるタイニーBASICの処理系をC言語で記述する方法を解説します。本書で紹介する「豊四季タイニーBASIC」は、コンパクトかつ移植性に優れ、一般的なPCで稼働するだけでなく、Raspberry Pi、ArduinoなどのマイコンボードやPICでも稼働します。インタプリタ系の言語であるBASICがどのような処理を行っているか、また、各種マイコンボードへの移植、Lチカなどの機能拡張のポイントなどを詳しく解説しています。

本書の第1章のSection1&2のPDFを「お試し版」として公開しています。「立ち読みPDF」ボタンをクリックしてください。

ジャンル
キーワード

立ち読みPDF本書の一部をダウンロードしてお読みいただけます

読者サポート

  • ダウンロード

目次

第1章 基礎編 開発の足場を固める

 実物で言語仕様を把握する
 開発の方針
  構造がわかりやすく移植や拡張が容易な BASICを目指す
  パロアルトタイニーBASICの外形的な働きをお手本とする
  マイクロソフトBASICにならって中間コードを取り入れる
  入出力装置は端末のみをサポートする
 雛形の取り扱い
  試用できて移植や拡張の原型となる 4 つの雛形
  Windows版の実行ファイルとソース
  Linux版の実行ファイルとソース
  Arduino版のスケッチとソース
  PIC24F版の HEXファイルとソース
  もぐらたたきとバーサライタの製作例
 雛形の言語仕様
  キーワードとエラーメッセージ
  命令─LIST、RUN、NEW
  文(一般)─ PRINT、INPUT、LET、REM
  文(実行制御)─ IF、GOTO、GOSUB ~ RETURN、FOR ~ NEXT、STOP
  関数─SIZE、ABS、RND
 カスタマイズの方法
  RAMの割り当てを定義するシンボルの概要
  文字列バッファの長さを決める SIZE_LINE
  中間コードバッファの長さを決める SIZE_IBUF
  プログラム保存領域のサイズを決める SIZE_LIST
  GOSUBスタックの深さを決める SIZE_GSTK
  FORスタックの深さを決める SIZE_FSTK
  配列の数を決める SIZE_ARRY

第2章 移植編 個別の事情に対処する

 内部の構造に少し立ち入る
 ソースの成り立ち
  起動用のソースと本体のソースを切り分けた構成
  コンピュータに固有のセットアップを受け持つ起動用のソース
  豊四季タイニー BASICの言語仕様を実現する本体のソース
  本体のソースにおける冒頭部分と本体部分の相互作用
 端末の制御
  端末のあらゆる制御を実現する 3 個の関数
  Linux版の端末の制御
  Arduino版の端末の制御
  PIC24F版の端末の制御
  コンピュータの仕組みに依存しない端末の制御
 乱数の生成
  見破られがちなパロアルトタイニー BASICの乱数
  タイマの値を利用する Windows版と Linux版の乱数
  ADコンバータの値を利用する Arduino版の乱数
  不定なレジスタの値を利用する PIC24F版の乱数
 移植の勘どころ
  京から LPC1114 まで幅広く許容する移植の条件
  LPC1114 マイコンボードの設計と製作
  mbedオンラインコンパイラによるプロジェクトの作成
  起動用のソース main.cppの記述
  本体のソース basic.cppの記述
  FlashMagicによるファームウェアの書き込みと動作確認

第3章 構造編 動作の不思議をなくす

 キーテクノロジーをモノにする
 中間コードの構造
  中間コードの仕組みを支えるメモリの構造
  プロンプトに対する1行の入力を中間コードの並びに変換する処理
  プログラム保存領域の構造と各行を指し示す方法
  プログラムの1行分をリストへ挿入する処理
  中間コードの1行分を可読文字列で表示する処理
  処理の過程でエラーを検出した場合の対応
 実行制御の仕組み
  実行制御で重要な役割を果たすポインタ clpと cip
  実現方法に決定版が存在しないRAM上の小道具
  BASICの構造の頂点に位置する関数basic
  命令が実行される仕組み
  プログラムの分岐が実行される仕組み
  プログラムの繰り返しが実行される仕組み
  プログラムの条件分岐が実行される仕組み
  プログラムの終端処理
 式の構文解析
  C言語で記述するのに適した構文解析の手法
  再帰的呼び出しによる括弧の値の計算
  優先順位が最高に位置づけられる値の取得
  演算子の優先順位を考慮した計算の手順
  条件式を含めてどんな式でも計算できる万能の関数
 一般の文の実行
  一般の文が実行される仕組み
  代入文を実行する関数
  PRINT文を実行する関数
  INPUT文を実行する関数

第4章 拡張編 装置の個性を生かす

 作る側から使う側へ引き継ぐ
 LEDの点滅
  LED文の文法を決めて書式の詳細を詰める
  Arduino版の起動用のスケッチにセットアップを追加する
  Arduino版の本体のソースにキーワードを追加する
  キーワードに対応する処理を組み立てる
  Raspberry Piのボード上のLEDをGPIOと連動させる
  何もしなくていい時間があったらほかのタスクに譲る
  Linux版の起動用のソースにセットアップを追加する
  Linux版の本体のソースに文を追加する
 スイッチの読み取り
  関数SWの文法を決めて書式の詳細を詰める
  Arduinoでスイッチの状態を読み取る方法
  Arduino版のスケッチに関数を追加する
  Arduino版のプログラムによる関数SWの動作確認
  Raspberry Piでスイッチの状態を読み取る方法
  Linux版のソースに関数を追加する
  Linux版のプログラムによる関数SWの動作確認
 セーブとロード
  SAVE命令とLOAD命令の書式を決めて機能の詳細を詰める
  本体のソースにキーワードを追加する
  本体のソースに命令を追加する
  SAVE命令に対応する関数を追加する
  LOAD命令に対応する関数を追加する
  SAVE命令とLOAD命令の動作確認
  Linux版のSYSTEM命令に関する補足
 マイコン特化機能
  マイコンの個性を生かすセーブとロードの構想
  セーブとロードのキーワードを追加する
  SAVE命令とLOAD命令を追加する
  LINK文を追加するとともにプログラム中の命令をハネる
  不揮発性メモリを読み書きする方法
  パワーオンランの動作確認
  LINK文の動作確認

Column【コラム】
◎東大版タイニー BASICの実物を動かしてみる
◎ハローワールドの正しい書きかた
◎気が進まないPOUT文とPIN関数

この書籍の購入

  • Amazonで購入する