1 / 32

次世代プログラミング言語の 創造と挑戦

次世代プログラミング言語の 創造と挑戦. 横浜国立大学 倉光君郎 情報メディアコロキウム 2008 @ 横浜国立大学 , 横浜 , 東京. (注意). 本資料は、情報メディアコロキウムの招待講演として、大学院生や若い研究者を対象にして、大学院時代からの研究活動とその方向性について、話したときの資料(一部)を若干マイルドにした内容である. 講演者略歴. 倉光君郎(くらみつきみお) 東京大学、東京大学大学院 博士 ( 理学 ) 専門:コンピュータサイエンス 2001 年 東大大学院情報学環 助手 2004 年 工学院大学 CPD センター 特任教員

quade
Download Presentation

次世代プログラミング言語の 創造と挑戦

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 次世代プログラミング言語の創造と挑戦 横浜国立大学 倉光君郎 情報メディアコロキウム2008 @横浜国立大学, 横浜, 東京

  2. (注意) • 本資料は、情報メディアコロキウムの招待講演として、大学院生や若い研究者を対象にして、大学院時代からの研究活動とその方向性について、話したときの資料(一部)を若干マイルドにした内容である

  3. 講演者略歴 • 倉光君郎(くらみつきみお) • 東京大学、東京大学大学院 博士(理学) • 専門:コンピュータサイエンス • 2001年 東大大学院情報学環 助手 • 2004年 工学院大学CPDセンター 特任教員 • 2006年 米ジョージア工科大学 客員研究員 • 2007年 横浜国立大学 准教授

  4. Konoha Project • 高度ユビキタスアプリケーション開発のため、次世代のスクリプティング言語をオープンソース開発を行う  多様なデバイス  多様な情報源

  5. Konoha 言語 • 新設計のスクリプティング言語 • Java ベースのオブジェクト指向技術 • ハイブリッドの型システム(静的/動的) • バーチャルマシン(KLR)ベースの実行環境 • クロスプラットホーム • Linux, MacOS X, • Win32, • TRON(T-Kernel)

  6. なぜ? • 現在のアプリケーション開発は、スクリプティング言語が中心となっている。 • 組み込み&ユビキタス分野でもスクリプティング言語の活用は大きく伸びると予想される

  7. それでも、なぜ? • 指導教官 坂村健先生の影響が大きい • 坂村先生のトロンみたいに、世界に向けて日本のソフトウェア技術を発信していきたい!!

  8. Konoha の生まれた背景学生時代のテーマ「相互運用性」

  9. ユビキタスコンピューティング環境 thermometer automatic windows refrigerator TV set PC fun 多種多様なデバイスを相互に運用するため、 意味(semantics)を扱うことが重要 toaster timer audio set

  10. オントロジ技術 • セマンティクスを扱う中核的な技術体系 • ドメイン特化、再利用可能な知識表現 • Semantic Web の登場でWeb上に広がる HTML XML RDF RDF/S OWL XTM RuleML To be complicated..

  11. sales-price: 40 prix: 48 値 値 USD: 40 EUR: 48 属性名 属性名 C1.sales-price C2.prix オントロジ軽量化 [倉光2001~] • ユビキタス環境 多種多様、不統一な情報リソース • セマンティック相互運用性 • オントロジ(知識ベース)の軽量化 Frege 構成原理 Toulouse ? Toulouse  FrenchCity Abduction 推論 nice(FrenchCity) nice(Toulose)

  12. セマンティックな研究の数々 • … • K. Kuramitsu. Managing Grid Schema Globally. In Proc. of IFIP/ACM International Conference on Semantics of a Networked World: Semantics for Grid Databases, LNCS 3226, pp. 296-307, 2004. • K. Kuramitsu. An Algorithm of Finding Periodicity in Sensor Data Stream. In Proc. of First International Workshop on Networked Sensing Systems, 2004. • K. Kuramitsu. Mappings As A Lightweight Ontology System for the World-Wide Web. In Proc. of the Symposium on Professional Practice in AI / IFIP World Computer Congress (WCC2004), 2004. • K. Kuramitsu. Materializing Ubiquitous Computing Environments. In Proc. of IEEE COMPSAC 2004, 2004. • K. Kuramitsu. “人生の転機が訪れた”, 横浜国立大学, (unpublished) 2005.

  13. 「意味がわかる」プログラミング言語を作ってみよう「意味がわかる」プログラミング言語を作ってみよう

  14. 実世界の「意味」を目指して • 1999年 NASAは火星観測衛星を失った • 火星人の攻撃か?それとも 長さ (メートル法) 長さ (フィート) ヨーロッパ&アジアの 開発チーム アメリカの開発チーム 現在のプログラミング言語では、フィート法とメートル法の 区別も扱うことができない。 (Guy Steel Jr. OOPSLA2004)

  15. 実世界プログラミング 摂氏 ? 華氏 ? • 温度は、摂氏?華氏かわからない • 寒いの基準は、動的に変わる Sensor デバイス void check(float t) { if(t < 10.0) { activateHeater(); } } 今風の プログラミング 体感温度: {Hot, Comfortable, Chilly}

  16. セマンティックプログラミング 摂氏 ? 華氏 ? 温度センサーデバイス //温度が寒ければ、ストーブを付ける void check(温度 c) { if(c == "寒い") { activate("ストーブ"); } } 寒いって一体、何度?

  17. Web / WebServices 意味型による推論エンジン • 意味の違いを型として解決し、自動的に変換してくれる Ontology Software Modules リレーショナルDB セマンティックマッピング 温度 体感温度

  18. オブジェクト指向を超える • Konoha はオブジェクト指向モデルと互換であるが、実行時に関係(互換性)を追加できる Length Length Height of Mt. Fuji meter feet feet OO style (+OM) Traditional OO style (class-subclass hierarchy)

  19. プログラミング言語の設計

  20. 基本設計 • せっかくだからみんなに使ってもらいたい!! Java のように書けて class Person { String name; int age; Person (String name, int age) { _name = name; _age = age; } } Person p = new Person("なると", 17); 対話的にも動作

  21. 静的な型付けスクリプティング言語 ML Ocaml C AOP、DbC パラメタ型 アノテーション メインストリーム言語 オブジェクト指向の登場 C++ Smalltalk Java Objective-C C# クラス継承 カプセル化 ポリモーフィズム 抽象クラス デザインパターン ハイブリッド言語 BASIC Konoha スクリプト言語の登場 Perl Csh Python PHP Ruby ダイナミック言語 Duck typing 1980 1990 2000 1970

  22. Konoha 言語ランタイム(VM) スクリプト int fibo(int n) { if(n < 3) return 1; return fibo(n-1)+fibo(n-2); } コンパイル SETEBP(14) sfp[2] iLTn(72) sfp[2] sfp[1] 3 bJIFF(45) 0x106750 sfp[2] RETo(19) sfp[-1] 1 iSUBn(60) sfp[5] sfp[1] 1 FCALL(30) sfp[3] 3 sfp[0] fibo iSUBn(60) sfp[6] sfp[1] 2 FCALL(30) sfp[4] 3 sfp[0] fibo iADD(57) sfp[-1] sfp[3] sfp[4] RET(16) KLR (VM) CPU

  23. Konoha "Runanytime" コンパイラ・テクノロジ • スクリプトは、いつでも実行可能であるべき。 • 型検査が行われる • エラー箇所は安全に動作可能なコードへ変更 コンパイルを停止しない if(n < 1000) { /* ERRORを発見 */ }

  24. 性能が気になる? Konoha 0.3 では、 より高速化 オブジェクト指向スクリプティング言語では、世界最高水準の 性能を実現している

  25. Konoha 0.3 fibo(36) バーチャルマシン型スクリプティング言語では、世界最高の 実行性能を誇る。

  26. 現在の研究課題 • スクリプティング言語の高速化、組込み化 • どこまで早くなるか? • 「意味のわかる」プログラミング • 相互運用性とセマンティック処理 • 高信頼性ソフトウェア技術 • SecurityWeaver • 新しいスクリプト言語活用の領域開拓

  27. 実世界のセキュリティ • 親がいなければチャンネルはかえられない

  28. 監視 SecurityWeaver テクノロジ • 実行環境にあわせて、アスペクトとして、セキュリティ機能を安全に変更することができる RBAC(ポリシー) SecurityWeaver void TV.changeChannel(int n) Konohaスクリプト

  29. Kernel Scripting • スクリプティング言語テクノロジを組み合わせ、次世代のオペレーティングシステムの先進的な研究開発 スクリプトによる OS機能拡張 Kernel land 小型のKonoha バーチャルマシン

  30. Konoha プロジェクトの目標 • 教育 • テキストブック • 教材・教育コースの開発 • 中高生への情報教育 • 研究 • プログラミング言語, • 先端ソフトウェア技術 • 高度アプリケーション実証 • 産業 • オープンソース産業 • 組み込みソフトウェア産業 • Webソフトウェア

  31. Get Konoha Today!! Konoha をダウンロードしてみましょう http://konoha.sourceforge.jp/

  32. 謝辞 • Konoha は、下記の研究ファンドからの支援を受けて、開発されてきました • 経済産業省 IPA 未踏ソフトウェア創造事業「軽量オントロジレポジトリの開発」 • 総務省SCOPE-R「意味型を備えたユビキタスバーチャルマシンの開発」 • 文部科学省 JST/CREST 「SecurityWeaverとP-Scriptによる実行時セキュリティの研究」

More Related