電卓プログラム作成の補足
専攻科実験で、「字句解析と構文解析で電卓プログラムを作ろう」というネタを実施中。
サンプルプログラムを見せて、課題の1つが「式を読みやすくするための空白が使えるように改良」としているが、学生さんより、『最初に空白を全部消してから処理するのはアリ?』との質問。
ひとまずは動くプログラムをつくってくれればいいけど….
でも、空白を先に全部消してから、トークン切り出しをやると、色々とトラブルが起こる。
((例1)) x=-1 ; 昔、私が学生の頃に使ったCコンパイラは、"+="演算子を、 "=+"と書いても良かった。だから、"x -= 1"と誤認され、 プログラムがバグった。この経験以降、代入文の"="の前後 とかややこしい演算子の式で、空白を適所に打たないヤツは シロウト判定している。 今回の質問のように、空白を除去してから字句解析を行うと、 "x = -1"と誤認されないように空白を入れあっても、 "x -= 1"に誤認される。 ((例2)) C++でのテンプレートクラスでは、<>の中に型を 書いたりするけど、Foot<int>といった型も 出てくる。んで、<>の中にテンプレートクラス が出てくると、Foo< Bar<int> > といった 型を使う場合がある。でも、空白除去後に字句解析をすると、 Foo<Bar<int>>となり、右シフト演算子になる。 → C++03 から C++11 での仕様の変化 ・C++03までは、テンプレートの">"の前後には空白を入れるべき。 ・C++11からは、"<"のトークンの数で">>"でも区別してくれる。
専攻科実験・コンパイラと関数電卓プログラム作成
- コンパイラの技術と関数電卓プログラム(1)
- 課題
- 複数桁の数字が使えること。
- 式中に空白が使えること。
- 何らかの演算子を追加すること。
- (例) %,単項演算子のマイナスなど
- 演算子が左結合か右結合か確認すること。
- オプション課題
- 変数が使えること。
(変数名は1文字のA-Zといったもので良い)
- 変数が使えること。
- レポート内容
- コンパイラ技術の概要、課題(1)の説明・ソース・動作検証、考察
- 課題
- コンパイラの技術と関数電卓プログラム(2)
- 課題
- 基本的に、lex+yaccで(1)と同様の課題完成を目指す。
- レポート内容
- lex,yaccの概要、課題(2)の説明・ソース・動作検証、考察
- 課題
電子情報棟の無線LANの更新
電子情報棟では、学生実験などでのノートパソコンのネットワーク接続手段 として、FERECのルータを活用している。 アクセスポイントのSSID,パスワードを知っている利用者であれば、 WiFi接続後に、Web認証が要求されるので、 自分の学籍番号ベースのIDとパスワードを入力すれば、 ネットワークが利用できるようになる。
ただし、ネットワーク接続によるトラブルを避けるために、 http,httpsしか利用できないようにFirewall機能を設定してある。 特別の登録IDを設定すれば、Firewallの条件を変えることもできる。
IEEE.802.11n対応ハイパワーAPに更新
これまでは、主要な実験室にはハイパワーのアクセスポイント、 実験的に導入していた部屋には、小型のアクセスポイントを設置していた。 元々の機材は11a.b.gに対応していたが、フロアや実験室の場所によっては、 電波が弱く接続が困難であった。
今回、業務用の11n対応のハイパワーアクセスポイントに変更し、 電波条件もかなり改善し、電子情報棟のすべての教室・大きな実験室では、 十分な電波強度でアクセスポイントに接続が可能となった。
払下げPCのセッティング
情報処理センターの払下げPCのセッティングを行う。 払下げ時のパスワードを変更し、 ウィルス対策ソフトを入れ、Microsoft Updateとなった。 最後に、BIOSのNetworkBootを停止させる。 でも、実験で必要そうなソフトを追加インストールしないといけないし、 Sambaのドメインに登録して、使えるようにしたいしな…
10台まとめてセッティングだけど、きびきびと動かないマシンじゃ、 待ち時間が長い。んで、複数台並行作業なんだけど、どのマシンはどこまでやったのか… という状態で、作業のヌケがありそう…
学研(大人の科学)、4bitマイコン
毎度ながら、面白そうなものを売り出してくれる学研さんだが、 次号は4ビットマイコンだそうな。 Data メモリ 8word, プログラムメモリ 40word 搭載で、 電子オルガンやらモールス電文発生などのサンプルも掲載となっている。
内容によっては、2年、3年の計算機アーキテクチャネタには十分だろうし、 実験にも使えると予想される。 ということで、個人的に購入するだろうな…
追記:関連授業&実験の先生に宣伝しているうちに、思わず予約購入ボタンを押しちゃった….楽しみ…