著者
香川 考司
出版者
日本ソフトウェア科学会
雑誌
日本ソフトウェア科学会大会講演論文集 日本ソフトウェア科学会第22回大会 (ISSN:13493515)
巻号頁・発行日
pp.13-19, 2005 (Released:2006-03-29)

多相ヴァリアントはGUI、データベース、インタプリタなど潜在的に多くの応用分野を持っている。実際、Haskellはパラメトリック型クラスを導入すると、多相ヴァリアントを模倣することができる。しかし現実に多相ヴァリアントを使用することはほとんどない。これは多相ヴァリアントを模倣するコードを手で書くことはたいへん面倒であり、また型の曖昧さが問題となるためであると思われる。この論文では、そこで、Haskellで多相ヴァリアントを模倣するための方法について、解説し、またそれを直接サポートし結果として通常のHaskellのクラスを出力することができる型クラスの拡張について述べる。
著者
櫻 裕司 香川 考司 垂水 浩幸
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告グループウェアとネットワークサービス(GN) (ISSN:09196072)
巻号頁・発行日
vol.2002, no.97, pp.23-27, 2002-10-24
参考文献数
3

分散環境での開発では、複数のユーザによるファイルの更新が衝突してしまう可能性がある。現在の共同開発を支援するシステムではこれを防ぐためにファイルのロック、マージといった方法を用いている。しかし、これらの方法では共同開発の作業中に問題が発生する。そこでファイルの一部分のみをロックすることによりこの問題解決するシステムを作成した。本システムではXHTML ファイルの各要素をロックの粒度とし、ユーザ間の排他制御を行っている。またJava Servlet Java Plug-inを用いることによりHTTP 及びそのトンネリングのみの通信で制御されている。In a distributed environment, there is a possibility of conflicts when a file is updated by multiple users. Current systems supp orting distributed development employs metho ds such as "locking" or "merging" in order to prevent or to dissolve conflicts. However, these traditional methods are problematic. In this paper, we propose a system where a lock is applied to a part of a file in order to avoid this problem. More specifically, an entity in XHTML documents can be a unit of mutual exclusion. Since the system is constituted of Java Servlets and Java Plug-in's, it uses only HTTP(including HTTP tunneling) for communication between components.
著者
香川 考司 Koji Kagawa 京都大学数理解析研究所 Research Institute for Mathematical Sciences Kyoto University.
出版者
日本ソフトウェア科学会
雑誌
コンピュータソフトウェア = Computer software (ISSN:02896540)
巻号頁・発行日
vol.11, no.5, pp.377-386, 1994-09-16
参考文献数
18

破壊的代入,入出力などの副作用を関数型言語で模倣するプログラムを書く際に,副作用をmonadというある種の条件を満たす型構成子として表現すると,プログラムの可読性,変更のしやすさなどが増すことがわかってきている.しかし,従来では代表的な副作用である"状態"を扱う場合に,1つの(平板な)構造しか状態として扱うことができず,関数型言語の特徴の1つである,組やリストなどの階層的データをその構造を生かして状態として扱うことは難しかった.その結果,状態を扱うプログラムをこれらのデータ型を介して部品化することができないため,あるデータ型の状態を対象として書かれたプログラムの部品を,他のデータ型を状態として持つ場合に再利用することが難しく,関数型言語にmonadを導入する動機の1つである命令的プログラムの書換え,再利用の容易性が達成されたとはいい難かった.例えば,配列を2つ以上扱いたい時に,どのように配列を1つだけ扱うプログラムの部品を再利用してプログラムを書けばいいのか,その方法がわからなかった.この論文では,階層的なデータ型の中の構成要素の"位置"をmonad morphismとして表現し,その位置にあるデータを局所的状態として扱うことにより,複合的,階層的なデータをその構造に自然な形で状態として扱う方法を提案する.その結果,プログラムの部品化を容易に行なうことができるようになる.結果としてのプログラミングのスタイルは,オブジェクト指向プログラミングを思い起こさせるものとなる.ここでは,オブジェクト指向との対応についても述べる.
著者
香川 考司 富永 浩之 白岩 真一 堀井 達也 池田 秀聴 横山 裕一 韓 根鎖 吉崎 翔 平川 裕弥 長江 明彦 白神 佑典 尾崎 陽一 末友 貴大 鳥原 悠平 藤沢 尚樹 森田 昌樹
出版者
香川大学
雑誌
基盤研究(C)
巻号頁・発行日
2011-04-28

Webベースプログラミング学習支援環境のサーバー側プログラムに、Scalaスクリプトによる柔軟なカスタマイズ機能を提供できるプラットフォームを構築することを目的として、教師用システムと学習者用システムの間のファイルシステムを利用した疎結合インターフェイスの設計と、プロトタイプによる基本機能の確認を行った。教師用サーバー側プラットフォームにScalaインタプリターとのインターフェイスを実装した。また、プログラム可視化ツール、スクリプト入力支援ツールなどのクライアント側の補助的なツールを設計・実装した。
著者
東山 裕徳 香川 考司
出版者
情報処理学会
雑誌
研究報告コンピュータと教育(CE) (ISSN:09196072)
巻号頁・発行日
vol.2010, no.5, pp.1-4, 2010-02-27

初めてプログラミングの学習を行う場合に、言語処理系の導入が最初の障害となることがある。Adobe Alchemy を用いて、Web ブラウザ上で動作するプログラミング学習用の言語処理系を実現する研究を行った。Web ブラウザ上で動作させることで、ユーザはインストールの手間なく簡単にプログラミングの学習が可能となる。JVM (Java Virtual Machine) 上に言語処理系を実装する方法も考えられるが、既に C/C++ 言語によって実装されている処理系もあり、これらの処理系を JVM 上に実装することは現実的ではない。そこで、C/C++ 言語で Flash の作成ができる Alchemy を用い、C 言語インタプリタの XCI が動作するシステムの開発を行なった。Installation of a programming environment may be an obstacle to novice learners of programming. We have developed a programming environment for learning that runs on Web browsers so that learners can start learning programming without installation. There are some programming language implementations that run on the JVM (Java Virtual Machine). As for other language implementations written in the C/C++ language, however, it is not realistic to port them to Java or other JVM-based languages. Therefore, we have developed a system that uses Adobe Alchemy in which we can create Flash files with the C/C++ language.