コンピュータ科学科 佐々木晃研究室

プログラミング言語とは

 

人がコンピュータとコミュニケーションするための言葉

  - 人がコンピュータに指令を伝え、思い通りに動作させる。

 - 指令=プログラム

 

 プログラミング言語人間が使う

  -  コンピュータが理解できる言葉への翻訳が可能

  -  Java言語、C言語など

  -  人が話すことば(自然言語)とは少し違う。

 マシン語コンピュータが理解できる言葉

  - コンピュータの頭脳=CPU (Central Processing Unit)が理解する。

  - デジタル信号

 インタプリタ、コンパイラ翻訳者

  - プログラミング言語による指令(プログラム)を、マシン語に翻訳する道具、ソフトウェア。人間の意志をコンピュータに伝える。

 

 

コンパイラおよびコンパイラ生成系に関する研究

 

 インタプリタ、コンパイラなどはプログラミング言語処理系と呼ばれます。これらは、現代のコンピュータ社会を支えるインフラストラクチャの1つです。私たちは、プログラミング言語処理系に関する研究、特にコンパイラの効果的な実装方法、効率的な作成法についての研究を行います。

 

コンパイラの構成要素

フロントエンド

 プログラムに書かれた文字を1字1字読み取り、文章の構成を調べる。さらに、文章に書かれたものがどういう指令であるか、その意味を解釈する。

 

最適化器

 指令の内容を、コンピュータがより効率良く処理できる方法を探す。色々な手法の組み合わせで構成される。

 

コード生成器

 最終的に指令の内容をコンピュータが理解、処理できる形(マシン語)に変換する。

コンパイラ生成系

 コンパイラの各構成要素(フロントエンド、最適化器、コード生成器)を、分かりやすい設計図から自動的に作成する道具(ソフトウェア)。複雑な仕組みをもつコンパイラを、簡単に作成できるようにする。

 

研究を進める上で身につける知識や技術

プログラミング言語に関する最新の理論や技術

コンピュータアーキテクチャに関する知識

WEBXMLなどのインターネット関連技術

プログラミング言語処理系の他分野への応用法

 

プログラミング言語処理系の応用研究

 

 プログラミング言語処理系の基礎研究を応用して、様々な分野の人たちがコンピュータを利用するための、ドメイン特化型プログラミング言語の研究を進めています。

 

ドメイン特化型プログラミング言語(Domain Specific Languages)

 コンピュータの専門家ではない人々や、特定の分野の専門家が使うためのプログラミング言語。ある特定の目的で用いる。

-

  - 子供が、さまざまな自然法則を学ぶための教育用プログラミング言語

  - 経済学者が、経済学の問題の解決法を探すために使うプログラミング言語

 

 目的指向型言語は、コンピュータの専門家が使うJava言語やC言語とは違うプログラミング言語であり、以下に挙げる課題があります。

コンピュータに詳しくない人たちでもプログラムを書ける仕組みが必要。

- 分野特有の知識や方法論を、プログラミング言語に導入しなければならない。

 私たちは、プログラミング言語処理系の基礎的な研究を応用し、これらの新しい課題にチャレンジします。

 

当研究室は2006年にできたばかりの新しい研究室です。プログラミング言語の理論や、実装方法などの基礎的な研究を行うと共に、これらを応用する研究を行っていきます。(研究室所属に関して

研究紹介

- プログラミング言語とは?

- コンパイラおよびコンパイラ生成系に関する研究

- ドメイン特化型プログラミング言語に関する研究

開発中のドメイン特化型言語

子供向け教育用プログラミング言語SABER

(東京工業大学出口研究室との共同研究)