森畑研究室
東京大学教養学部 学際科学科 総合情報学コース
東京大学大学院総合文化研究科 広域科学専攻 広域システム科学系

研究目標:プログラミングに産業革命を
 現代では、誰もが情報機器を使い、高度な情報技術の恩恵を受けています。しかし、それを駆動するためのプログラムの作成は、専門的な修練を積んだ人による手作業に頼っています。プログララミングが本物の「産業」として成り立つためには、マニュアル通りにやれば誰でもできるような生産技術が必要です。
 本研究室では、誰でもできるプログラミングを目指して、プログラミングの基礎理論、およびその応用について研究しています。
本研究室のアプローチ
 プログラミングをサポートする統合開発環境(IDE)やフレームワークも随分進歩しました。 しかしそれらは、服飾産業で言えば針や糸のようなものです。産業化に真に必要なのは「産業機械」、例えばミシンです。スイッチひとつで自動的にほつれ止めも飾り縫いもしてくれて、マニュアルを読めばすぐ操作できる。そういう「産業機械」がプログラミングにも必要です。
 近年、機械学習技術に基づいた自動プログラミングが現れてきたことで、「産業機械」のための歯車やモーターなどは随分揃ってきました。しかし、それをどう組み合わせると「産業機械」になるのかは、まだよく分かっていません。
 プログラミングのための産業機械を作り上げるため、本研究室では以下の3点を中心に研究を行っています。  本研究室の目標はあなたのプログラミング技術を高めることではないことに注意してください。むしろ、本研究の目標は、プログラミング技術が低くてもプログラムを作れるようになる・プログラミングのメリットを享受できるようになるような手法の開発です。

参考:
森畑による講演動画(2022年)
森畑による講演動画2(2013年)
所属学生の研究成果
対外発表
修士論文
卒業論文
本研究室に向いている人・あまり向いていない人
 本研究室には、現状のプログラミング・プログラミング言語に疑問・不満のある人が向いています。逆に、現状のプログラミングに不満のない人、自由にプログラミングができている人はあまり向いていないかもしれません。
 プログラミングの研究をする以上、現状を知るという意味で、プログラミング言語等について一定の知識が必要です。しかし、高いプログラミングスキルや個々のプログラミング言語についての詳しい知識などは、あればそれに越したことはありませんが、必須ではありません。
 プログラミングに関する技術をソリッドに組み立てるためには、最終的には数学が必要になります。どの程度の数学が必要かは研究テーマやアプローチによりますが、数学アレルギーの人にはあまりお勧めできません。逆に、数学は好きだが純粋数学よりも数学の応用を探求したい、という人は楽しめる可能性があります。
研究テーマ例とそれに関連する文献
以下に典型的な研究テーマ例を挙げますが、これらに限らず、プログラミング・プログラミング言語にまつわる研究テーマであれば広く扱っています。
プログラムの自動並列化 p
プログラム変換 p
プログラム自動合成 p
宣言的プログラミング p
プログラム運算 p
(参考:森畑の研究テーマ候補リスト
本研究室で扱うテーマの範囲
 本研究室のテーマは原則として「プログラミング」であり「ソフトウェア開発」ではありません。つまり、(往々にして巨大な)ソフトウェアの開発というプロジェクト全体ではなく、ソフトウェアを構成する(往々にしてそれほど大きくない)各部品の開発を扱います。
 本研究室は、標準的な(ないしはそれに満たない)技量のプログラマが書くようなプログラムを対象とします。高度な技術をもつ職人が作成するような、本物の「一品もの」の開発は扱いません。例としては、気象予報やスペースシャトル制御のように非常に高い性能と信頼性が必要なもの、富嶽コンピュータのような特別なアーキテクチャに特化したものなどです。
研究室に参加したい方へ
<研究室に参加したい方へ (How to Join Our Laboratory)>
関連研究室

<back>
Akimasa Morihata. Aug., 2023