QRコードとURL

https://goo.gl/KFsnYq

QR コード

香川研究室について
ショートバージョン


香川 考司

教員紹介

  • 香川 考司 (かがわ こうじ)
    香川大学 創造工学部 情報コース
  • 専門分野
    プログラミング言語(コンパイラー・ツール・ライブラリー)
    プログラミング学習支援システム
  • 担当授業

    『プログラミング』『オブジェクト指向言語』
    『プログラミング言語論』(大学院)など

例えると…

Genie emoji clipart (F) Genie emoji clipart (M)
  • コンピューター   魔法のツエ
  • プログラム     呪文
  • プログラミング   呪文を組み立てること
  • プログラミング言語 呪文体系
  • コンパイラー    呪文を解釈する呪文
  • ライブラリー    呪文の部品集・魔導書?
  • 学習支援システム  魔法使いの弟子養成システム

プログラム

コンピューターに与える手順・指示のまとまり

  • 一つ一つの指示は、実はとても単純である
    例えば…
    • +−×÷<=>などの算術命令
    • 直前の式が成り立つなら進む、そうでないなら戻るなど、 スゴロクの指示のような命令
    など
  • めちゃくちゃ速くて、間違えない、忘れない

プログラムの組立て

プログラムの組立ての基本は 順次反復分岐の 3 つである。 これだけあれば“何でも”できる

  • 順次 ⋯ いくつかの処理を、順に一つずつ実行していく
  • 反復 ⋯ 同じ処理をくり返す
  • 分岐 ⋯ 条件が成り立つかどうかによって、処理を選ぶ

プログラミング言語

それだけで大きなプログラムを作るのは難しい。
そこで…

  • 指示のまとまりを部品化することで、 さらに複雑な指示を組み立てる

部品化の考え方の違いによって、たくさんの種類のプログラミング言語がある

ポイント

コンピューターは、一つ一つは単純な指示を、 何億回・何兆回⋯でも疲れずくりかえす

  • たくさん覚えて忘れない速くて間違えない、
    『常識』は持ち合わせていない。つまり人間が指示を間違えると、間違ったまま実行する
  • プログラムはとても長い
    プログラミング言語を使って、うまく部品化することで、 大規模・複雑なプログラムを組み立てることができる

香川研究室の研究テーマ

  • プログラミング言語(ツール・ライブラリー)
    大規模で複雑なプログラムを、部品化することで効率よく作り、 しかもプログラムの間違いを起こりにくくすることを目指す
  • プログラミング学習支援システム
    初心者が、楽しく、効率よく、プログラミングを学習できることを目指す

今後のプログラミング言語はどうなる?

  • 組み立ての基本の理解の必要性は変わらない
    • 日本語や英語などの自然言語よりも圧倒的に簡潔に書ける
  • 部品化はますます大事になる
    • AI が作成したプログラムを読解する必要がある
    • ボイラープレート(何度も繰り返されるお決まりの部分)は少ないほど良い
  • 検証や証明が当り前になる
    • プログラムの細部を理解しなくても正しさが保証される、例えば
      • どんな順番・タイミングでイベントが起きても、正常に反応する
      • 前のバージョンより性能が圧倒的に良いが、実行結果は変わらない
      のような証明が一般的になる

やってみよう

香川研究室の展示「お絵かきプログラミング」では、 ここまでで説明した、 順次反復分岐 を使って、コンピューターに規則正しい絵を描かせる体験をします。

Processing という言語を参考にして、お絵かき用の機能を部品化しました。

サンプル (1)

やってみる

サンプル (2)

やってみる

興味のある人は…

以下のリンクへ進んでください。