第 315 回 PTT のお知らせ


日時:2005年10月27日(木) 18:30 から


場所:早稲田大学理工学部59号 4階 情報学科会議室


      高田馬場駅下車で早稲田通り,もしくは大久保駅/新大久保駅下車で
      大久保通りを山の手線の内側へと10分弱進むと明治通りに出ます.
      高田馬場からであれば右折,新大久保からであれば左折をして10分弱
      進むと理工学部のある大久保キャンパスが明治通り外側(山の手線側)
      にあります.

      ※上記は迷子にならないための遠回りの道のりです.近道に
      ついては下記の情報に従って下さい.

        http://www.sci.waseda.ac.jp/campus-map/

      59号はキャンパス南西にあり,情報学科会議室はキャンパス内の
      最も背の高い建物(51号)に近い位置にあります.

話者:
長 慎也 (早稲田大学)


話題:
soyBasic - 「ケータイでコーディング」の時代は来るのか?

概要:

携帯電話上で動作するBASIC環境"soyBasic"を開発した。

携帯電話でプログラミングする
問題点として、「入力が大変」「そもそも携帯でやる必要性がない」
が挙げられる。前者の「入力が大変」についてsoyBasicは工夫を凝らした。
プログラムにおいては入力される単語や、入力される順番が限定されるという
特徴を生かし、辞書(変数表)の自動生成を行ったり、次に来るであろう記号の
種類が特定されやすいという性質を利用して、入力文字種を文脈に応じて自動
選択したり、命令や変数を、ワンタッチ入力したりできるようにした。

本発表では、「ケータイでも一応BASICくらいなら作れる」ことを示し、将来的
にはもっと本格的な言語(Javaとか)を携帯電話で開発・保守する可能性・
必要性について議論したい。


第 315 回 PTTメモ

第 315 回 PTT メモ

出席者:
出席者: 16名

和田英一(IIJ),伊知地 宏(ラムダ数教研),石畑 清(明治大),
並木美太郎(農工大),太田尚志,酒井政裕,瀬古俊一(慶応大),
五十嵐正浩,大日向大地,滝田 裕,多田好克,前澤直洋,丸山一貴(電通大),
荒川博志,田中哲朗,筧 一彦(東京大)

質疑応答:


- プログラミング言語だと冗長性が少ないため予測は難しいのでは.  

記号(字句要素)の並び順に規則性があり、それが冗長性といえる。
実際、カーソル直前にある字句要素による、入力文字種類切り替えは
わりとうまくいく。


- 「文脈依存が強い」という主張は, プログラミング言語によりけりではないか.  

よりけりなので、文脈依存が強いものを選んで実装した。
 BASICのように、すべての命令が独自の文法で書かれる言語は特に文脈依存が
激しい。
他には、型にうるさいJavaなども文脈依存が強く、その性質がeclipse などの
補完機能を可能にしていると思う。
  型がバリアントで、文法が単純な言語(Lispなど)はきついかも。


- 変数の長さはどれくらいまで許すのか.  

無限。昔は2文字とか1文字だったけれども、そこまで再現しても不便だと思った
ので。


- 表示の中の「@」は何を意味する?  

文字列を挿入後、カーソルが移動する位置。
「LINE(@,)-(,),,BF」であれば、第一引数の場所にカーソルが動くので入力が
楽になる。


- 同時押しは使えないのか, また使わないのか.  

使えるが、片手で操作する可能性もあるのであまり使わない。


- 「=」の後は数字, と決めてしまっているが, 変数になることもあるのでは
ないか.  

変数の場合は、左ソフトキーによる単語入力を呼び出せばよい


- 間違った入力も登録されてしまうのか.  

される。それどころか文字列リテラルまで登録される。消すには一旦SAVEして
再起動して、LOADする。


- ベンチマークはどのような入力状態を仮定して行なったのか.  どの機種での
入力の結果か.  

あらかじめ用意してあるプログラムリストを入力。
携帯では両手が使える環境にあった。
機種は SH900i


- 行番号はAUTOで入れさせても良いのではないか.  

あったほうがよいと思うが、数字の入力はあまり大変でないので思ったほど
快適にならないかも。


- いろいろ携帯電話で開発した経験からいうと, Javaのclassfileなどが
 よくわからない状態になっている.  そういうものを高レベル言語でくるんで
  使えるようにしてくれると嬉しい.  例えば描画やI/O, カメラといった
  携帯電話の機能を使わせてくれる言語があると良い.  Script言語のような
  雰囲気のものが.  

soyBasicは、WebからもBASICのプログラムを編集可能なので、開発用プラット
フォームとしての可能性もあると思う。ただそっちの方向性でいくのならば
BASICではなくもっと近代的?言語がよい。


- 通信ができなくても携帯電話の持つ有用な機能は他にもいろいろとあるので, 
  「ユビキタスコントローラ」のように使えるようにできると良いのではないか.  

前の質問と関連して、写真や赤外線通信、SDカードなどのデバイスを簡単に
扱えるようにすれば通信機能以外でも使いでがかなりあると考えられる。


- 携帯電話上で動作するLispはもうあるのではないか.  

たとえばこんなのはあるらしい(PDA用)
http://www.lispme.de/index.html#lispme/index.html
入力が大変そう


- 浮動小数点数は実装されているのか.  
- サンプルとしてデモを行なったゲームはintのみで作ったのか.  

浮動小数点はない(整数BASIC)。ゲームの細かい動きはBASICのプログラムが
がんばってスケーリングしている。


- 【済みません, どの集まりの話しか書き落としました】U20で学生(生徒?)が
  作ったもので, 数学のグラフを表示させるものがあり, それはfloatを実装
  していた.  
- floatingがないほうが教育的では.  昔(EDSACなど)にはfloatingがなくても
  プログラムを書いていたわけだし.  また桁落ちなどの精度の問題に気付く
  ことができないままになってしまう.  

浮動小数点の実装もあるとよいが、jarファイルの容量が大きくなりそうなので
割愛した。


- Ajaxのように, 描画の部分だけ携帯電話で行なわせて, あとはserverに
  任せてしまうというやりかたはどうか.  
- 補完入力の考え方を突き詰めると, editorの機能だけ携帯電話に持たせる, 
  というアプローチもあるのでは.  

よい考えだけど、パケット代が気になる。


- 教育用に, とのことだけれど, 学生はDocomo社のを必ずしも使っている
  わけではない(むしろ他のAUやVodafoneのものを使っていることが多い).  

移植もしたいところだがなにぶん他会社のプロファイリングが不明なうえ
自由に野良アプリがつくれるのがi-appliだけなのでつらい。


- プロファイリングはどうなっているか.  
- 19個しか入力キーは使えないのか.  もっとボタンがあるように見えるのに.  

Doja-3.0 / 低レベルアプリケーション。この状態だと、便利なキー(クリア
キーなど)が使えなくて不便。しかし高レベルアプリケーションは自由に画面に
描画できないのでもっと不便。


- GOSUBに引数は持たせられるか.  

昔ながらのBASICなので、もちろん、持たせられない。


- networkへのアクセスは可能か.  

現時点ではネットワーク経由でのプログラムの保存(LOAD & SAVE)のみ。
将来的にはネットワーク上のファイルを 
10 OPEN "http://foo.bar.com/test.txt" for input as #1
20 INPUT #1,A$ :CLOSE #1: PRINT A$
という具合でいじってみたい。


- 音声を拾って処理させる, という入力方式はどうか.  

携帯電話は音声認識のAPIが弱い、あるいはあっても使い方が難しい。電話なのに。
個人的には、「じゅう、えっくす、いこーる、いち」とかしゃべるのはちょっと...