ホーム » 2012 » 3月

月別アーカイブ: 3月 2012

2012年3月
« 2月   4月 »
 123
45678910
11121314151617
18192021222324
25262728293031

最近の投稿(電子情報)

アーカイブ

カテゴリー

永年勤続表彰・校長表彰

今日は、定年を迎える前川先生、研究教育活動で表彰の3名の校長表彰がありま した。

前川先生・永年勤続表彰

定年を迎える前川先生ですが、来年度も授業などでは電子情報の科目の ご協力をして頂きますが、長い間ご苦労さまでした。

1203301540_320x238.jpg

校長表彰

研究活動では、堀井技官・西先生・村田先生が校長表彰を受けました。 おめでとうございます。

1203301540_320x237.jpg

実験実習安全必携

高専機構で作成していた、学生向けの実験時の安全マニュアル。 どの学科でも使える内容なので、薬品などの注意もあるけど、 電子情報で関連しそうなページを掲載。

1203301042_849x590.jpg

再帰下降パーサのサンプルコード

春休みだというのに、真面目に学校に来ている学生さんから、 数式のグラフ化アプリを作っている。 数式の処理をどうすればいいのか? との質問で、再帰下読みでプログラムを書くのが定番ということで、 説明をする。

一般的なコンパイラの雑談ということで、字句解析(lex / flex) , 構文解析(bison / yacc) でコード生成といった話もしておく。

追記:『再帰下読み』って説明&記事を書いたけど、 正しくは『再帰下降パーサ』みたいだな。

再帰下降パーサ・サンプル

授業でもやっていない再帰下読みの説明でもあり、 簡単なサンプルコードを示したいけど、Webで探しても全体的に大きなプログラムばかりで、 再帰関数をどう記述していくか解かりにくい。 ということで、+,-,*,/と数字1桁という条件で、字句解析無しのサンプルコードを書いてみた。

// 再帰下読みの基本の一番短いサンプル
//
//   字句解析は面倒なので、
//   演算子は1文字のみ、定数は数字1桁だけとする。

#include <stdio.h>
#include <ctype.h>

// 括弧の無い +,-,*,/ だけの式の処理
//
//   今回は以下の構文だけとする。
//   以下のような文法の書き方をバッカス記法(BNF)と言う。
//
// exp_PLUS_MINUS ::= exp_MUL_DIV '+' exp_PLUS_MINUS
//                  | exp_MUL_DIV '-' exp_PLUS_MINUS
//                  | exp_MUL_DIV
//                  ;
// exp_MUL_DIV    ::= DIGIT '*' exp_MUL_DIV
//                  | DIGIT '/' exp_MUL_DIV
//                  | DIGIT
//                  ;
// DIGIT          ::= [0-9] ;

int exp_PLUS_MINUS( char* , char** ) ;
int exp_MUL_DIV( char* , char** ) ;

// PLUS,MINUSだけの式
//   構文解析関数の引数
//   pc:   解析する文字列の先頭
//   endp: 解析が終わった場所
int exp_PLUS_MINUS( char* pc , char** endp ) {
   int left = exp_MUL_DIV( pc , endp ) ;

   if ( **endp == '+' ) {
     int right = exp_PLUS_MINUS( *endp + 1 , endp ) ;
     return left + right ;
   } else if ( **endp == '-' ) {
      int right = exp_PLUS_MINUS( *endp + 1 , endp ) ;
      return left - right ;
   } else {
      return exp_MUL_DIV( pc , endp ) ;
   }
}

// MUL,DIVだけの式
//   DIGITに相当する構文木の処理は、組み込んでしまう。
int exp_MUL_DIV( char* pc , char** endp ) {
   if ( isdigit( *pc ) ) {
      int left = *pc - '0' ;
      *endp = pc + 1 ;
      if ( **endp == '*' ) {
         int right = exp_MUL_DIV( *endp + 1 , endp ) ;
         return left * right ;
      } else if ( **endp == '/' ) {
         int right = exp_MUL_DIV( *endp + 1 , endp ) ;
         return left / right ;
      }
      return left ;
   } else {
      printf( "Error\n" ) ;
      return 0 ;
   }
}

// 課題(1): () を含む処理にしたかったら、
//          BNF の構文木は、どう直すべきか?
// 課題(2): () を含む処理、空白を無視する処理、
//          定数式が複数桁を使える処理。

int main() {
   char* e = NULL ;
   printf( "%d\n" , exp_PLUS_MINUS( "1+2*3" , &e ) ) ;
   printf( "%d\n" , exp_PLUS_MINUS( "1*2+3" , &e ) ) ;
   return 0 ;
}

んで、このプログラムを読んだら、「このプログラムでは演算子は、右結合?左結合?」 と聞いてみるのが、理解度把握の定番ネタ。

2012年3月25日(第261回)

収録でお送りしました。

  • 謝恩会いってきました
  • 3/12の就活セミナーについて
  • 講演会について

PC管理ソフトのインストール

先月頃からアナウンスがあったんだけど、 コンピュータのOSやインストールされたソフトの ライセンスを確認するためのソフトをインストールせよとのお達し。

ソフトウェア資産の管理なので仕方がないのだが、 よく判らないソフトは不気味で、インストールをサボっていたけど、 「入れて下さいよぉ〜」メールが来たので、さすがにインストール。

渋っていた理由の1つは、演習室のパソコン群全部に入れないと いけないから。学科管理の演習室なのでちょっと面倒なんだな。

うーん、インストールしたのはいいけど、 インストール一覧を生成して、 管理サーバに送信するソフトが重い。 いまようやく終了。

1203211232_162x120.png

2012年3月18日(第260回)

収録でお送りしました。

  • 卒業式でのインタビューの様子

電子情報工学科・卒業式・謝恩会

2012/3/16 電子情報工学科20期学生 33名が卒業となりました。 改めて、ご卒業おめでとうございます。

あわらでの謝恩会では、5年間を振り返りながら、 楽しいお酒が呑めました。

1203171558_314x209.jpg

卒業の学生さんへ

くさい文章かもしれませんが、卒業関連の冊子で 担任からの文章ということで書いた2つの文章です。

電情20期、学科もクラスも成熟!?

 まずは、電子情報20期のご卒業の皆さん、おめでとうございます。 20期ということで学科の誕生と共に生まれ、 5年間の思い出と共にようやくの門出を迎え、 思いも様々だと思います。

 電子情報も20年ということで、学科自体も情報系科目中心になったり、 再び電子系にも力を入れるようになったりと紆余曲折のあった中、 最近は創造系を交えたカリキュラムに落ち着き、 次は実際の成果が求められる節目に突入です。

 そしてこのクラスも、能登地震で新入生宿泊研修がなくなるドタバタで始まり、 2年ではクラスがドタバタする中、担任を引き受けました。

 この中で工場見学旅行・体育祭・インターンシップ・卒業研究と 様々なイベントを重ねながら、ドタバタも落ち着きに 次第に変わってきた中の卒業です。 さて学科同様に、これからは就職先や進学先で本当の実力を 試される節目に突入です。

 そして、実は私も教員生活20年。私も頑張ろう!、 電子情報も頑張ろう、皆さんも頑張ろう!

今までの絆とこれからの絆

 皆さん御卒業おめでとうございます。 高専では20歳卒業ということで、 学業の区切りと社会人としての始まりが重なります。

 ここまでを振り返れば、クラブ活動やテスト前の 情報交換ということで、皆さんはクラスメイトとの絆の大切さは 実感されているでしょう。 でも私自身、自分の結婚式で両親や親戚が祝ってくれたり、 子供が生まれる中で、改めて親の存在への感謝に気づきました。 そして最近、職場での不幸の中で、悲しむ親御さんの姿や 近親者・同僚・関係者・学生さんの寂しい背中を見て 『誰もが大勢の人の絆に支えられて生きている』 ということに改めて気づけたように思います。

 この卒業の区切りを迎え、 あなたは誰に支えられていたか考えてみませんか? そして人生は、まだたった1/4。 この先大切なのは、これからもお互いに助け合える、 友人や家族の絆でしょう。 そして、新たな大切な絆を、数多く増やせるよう 何事にも感謝して頑張っていきましょう。

卒業式・電子情報工学科

電子情報工学科、卒業33名、代表 久世さん

1203161057_634x476.JPG

Google Apps for Educat…(03/14)

  • 03/12 Google Apps for Education(無償) で前学生のメールアドレスを取得可能 #fnct http://bit.ly/yNevmG
  • 03/12 安否確認システムで、学内メール→携帯転送設定は、Usermin を使って管理している。/ 携帯キャリアフィルタで不通が増えてきた→学校発行gmailアドレス。 #fnct
  • 03/12 安否確認・メール添付URLで安否確認。非常時のインタフェースを考慮し、認証なしの学生IDで情報を入力可。 #fnct
  • 03/12 沼津高専・安否確認システム、学生は学校配布のメールアカウントを携帯に転送する設定を、ほぼ全員やっている…. #fnct
  • 03/12 しかし出張先で使う配布資料はDropboxにいれてきたけど、肝心の開催場所の地図がなくて、ちょっとビビった。スケジューラに入ってた地名のおかげで助かった….(x_x; #fnct
  • 03/12 出先の出張先で、職場CloseなWebシステムを使いたいネタがあるんだが、Firewall内側だからな…VPNサーバほしーな… #fnct

この記事は、twitter の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。