コンピュータ科学科 佐々木晃研究室 |
プログラミング言語とは?
人がコンピュータとコミュニケーションするための言葉 - 人がコンピュータに指令を伝え、思い通りに動作させる。 - 指令=プログラム
プログラミング言語:人間が使う - コンピュータが理解できる言葉への翻訳が可能 - Java言語、C言語など - 人が話すことば(自然言語)とは少し違う。 マシン語:コンピュータが理解できる言葉 - コンピュータの頭脳=CPU (Central Processing Unit)が理解する。 - デジタル信号 インタプリタ、コンパイラ:翻訳者 - プログラミング言語による指令(プログラム)を、マシン語に翻訳する道具、ソフトウェア。人間の意志をコンピュータに伝える。
|
コンパイラおよびコンパイラ生成系に関する研究
インタプリタ、コンパイラなどはプログラミング言語処理系と呼ばれます。これらは、現代のコンピュータ社会を支えるインフラストラクチャの1つです。私たちは、プログラミング言語処理系に関する研究、特にコンパイラの効果的な実装方法、効率的な作成法についての研究を行います。
コンパイラの構成要素 フロントエンド プログラムに書かれた文字を1字1字読み取り、文章の構成を調べる。さらに、文章に書かれたものがどういう指令であるか、その意味を解釈する。
最適化器 指令の内容を、コンピュータがより効率良く処理できる方法を探す。色々な手法の組み合わせで構成される。
コード生成器 最終的に指令の内容をコンピュータが理解、処理できる形(マシン語)に変換する。 コンパイラ生成系 コンパイラの各構成要素(フロントエンド、最適化器、コード生成器)を、分かりやすい設計図から自動的に作成する道具(ソフトウェア)。複雑な仕組みをもつコンパイラを、簡単に作成できるようにする。
|
研究を進める上で身につける知識や技術 - プログラミング言語に関する最新の理論や技術 - コンピュータアーキテクチャに関する知識 - WEB、XMLなどのインターネット関連技術 - プログラミング言語処理系の他分野への応用法
|
プログラミング言語処理系の応用研究
プログラミング言語処理系の基礎研究を応用して、様々な分野の人たちがコンピュータを利用するための、ドメイン特化型プログラミング言語の研究を進めています。
ドメイン特化型プログラミング言語(Domain Specific Languages) コンピュータの専門家ではない人々や、特定の分野の専門家が使うためのプログラミング言語。ある特定の目的で用いる。 - 例 - 子供が、さまざまな自然法則を学ぶための教育用プログラミング言語 - 経済学者が、経済学の問題の解決法を探すために使うプログラミング言語
目的指向型言語は、コンピュータの専門家が使うJava言語やC言語とは違うプログラミング言語であり、以下に挙げる課題があります。 - コンピュータに詳しくない人たちでもプログラムを書ける仕組みが必要。 - 分野特有の知識や方法論を、プログラミング言語に導入しなければならない。 私たちは、プログラミング言語処理系の基礎的な研究を応用し、これらの新しい課題にチャレンジします。
|
当研究室は2006年にできたばかりの新しい研究室です。プログラミング言語の理論や、実装方法などの基礎的な研究を行うと共に、これらを応用する研究を行っていきます。(研究室所属に関して) |
研究紹介 - プログラミング言語とは? - コンパイラおよびコンパイラ生成系に関する研究 - ドメイン特化型プログラミング言語に関する研究 |
開発中のドメイン特化型言語 子供向け教育用プログラミング言語SABER (東京工業大学出口研究室との共同研究)
|