著者
Robert P. Nix
タイトル
Editing by Example
ページ
600-621
日時
October 1985
コメント
A kind of filter, that converts a pattern to another pattern. The conversion can be taught with examples.
概要
筆者の開発したエディタ「U」上で、テキストの変換前と 変換後の例を与えることによりそれらの間の変換を推論して 残りのテキストにそれを適用する。 変換はregexpのsearch&replaceのサブセット(繰り返しの 指定などができない。単なる変数置換だけ)のようなもので 「gap programming」と呼ばれるプログラムを使う。 使うときは、まず変換前のテキストを例として示し、 その後変換後のテキストを示すことによって推論が行なわれて プログラムが生成される。一つの例だけでは正しく推論され ないことがあるので、そういう場合は複数の例を示すことにより 正しいプログラムを得る。(これはかなり面倒であろう) このように明示的にいろいろ示さなければならないので 使いやすいとは思えないが、gap programminの使用、その推論、 証明に力をいれている。 推論されたgap progrmは後で修正することも可能である。 ちなみに、この論文で示されている例はすべてdmacroで簡単に 実現できるので使い勝手は明らかにdmacroの方が優れている。 変換の入力と出力の関係だけからその変換プログラムを推論する という点は面白いかもしれないが、これはいわゆる自動プログラ ミングの範疇かもしれない。(93/3/1 増井)
カテゴリ
UI, PBE
oct: { "October"; }
ieeetc: { "IEEE Transactions on Computers"; }
scp: { "Science of Computer Programming"; }
tocs: { "ACM Transactions on Computer Systems"; }
USENIX: { "USENIX'$_[0] Conference Proceedings"; }
VLWS: { "Proceedings of $_[0] {IEEE} Workshop on Visual Languages"; }
jan: { "January"; }
jul: { "July"; }
jacm: { "Journal of the ACM"; }
tog: { "ACM Transactions on Graphics"; }
toms: { "ACM Transactions on Mathematical Software"; }
OOPSLA87: { "Proceedings of the 1987 ACM Conference on Object-Oriented
        Programming Systems, Languages and Applications"; }
Category: UI PBE
Journal: &toplas
dec: { "December"; }
sesympo: { "Proceedings of the ACM SIGSOFT/SIGPLAN Software "; }
        Symposium on Practical Software Engineering Environment"; }
OOPSLA88: { "Proceedings of the 1988 ACM Conference on Object-Oriented
        Programming Systems, Languages and Applications"; }
Comment: A kind of filter, that converts a pattern to another
        pattern. The conversion can be taught with examples.
Number: 4
feb: { "February"; }
apr: { "April"; }
jun: { "June"; }
ieeese: { "IEEE Transactions on Software Engineering"; }
ieeetcad: { "IEEE Transactions on Computer-Aided Design of Integrated Circuits"; }
jcss: { "Journal of Computer and System Sciences"; }
UIST: { "Proceedings of ACM User Interface Software and
        Technology (UIST)"; }
OOPSLA89: { "Proceedings of the 1989 ACM Conference on Object-Oriented
        Programming Systems, Languages and Applications"; }
VLWS91: { "Proceedings of 1991 {IEEE} Workshop on Visual Languages"; }
Bibtype: Article
ibmsj: { "IBM Systems Journal"; }
tcs: { "Theoretical Computer Science"; }
UIST89: { "Proceedings of the ACM SIGGRAPH Symposium on
        User Interface Software and Technology (UIST89)"; }
Pages: 600-621
Month: oct
Author: Robert P. Nix
may: { "May"; }
ipl: { "Information Processing Letters"; }
sicomp: { "SIAM Journal on Computing"; }
SIGIR89: { "Proceedings of the Twelfth Annual International ACM
        SIGIR Conference on Research and Development in
        Information Retrieval"; }
UIST90: { "Proceedings of the ACM SIGGRAPH Symposium on
        User Interface Software and Technology (UIST90)"; }
UIST91: { "Proceedings of the Fourth Annual Symposium on
        User Interface Software and Technology (UIST91)"; }
Title: Editing by Example
USENIX91: { "USENIX'91 Conference Proceedings"; }
Comment1: 筆者の開発したエディタ「U」上で、テキストの変換前と
        変換後の例を与えることによりそれらの間の変換を推論して
        残りのテキストにそれを適用する。
        変換はregexpのsearch&replaceのサブセット(繰り返しの
        指定などができない。単なる変数置換だけ)のようなもので
        「gap programming」と呼ばれるプログラムを使う。
        使うときは、まず変換前のテキストを例として示し、
        その後変換後のテキストを示すことによって推論が行なわれて
        プログラムが生成される。一つの例だけでは正しく推論され
        ないことがあるので、そういう場合は複数の例を示すことにより
        正しいプログラムを得る。(これはかなり面倒であろう)
        このように明示的にいろいろ示さなければならないので
        使いやすいとは思えないが、gap programminの使用、その推論、
        証明に力をいれている。
        推論されたgap progrmは後で修正することも可能である。
        ちなみに、この論文で示されている例はすべてdmacroで簡単に
        実現できるので使い勝手は明らかにdmacroの方が優れている。
        変換の入力と出力の関係だけからその変換プログラムを推論する
        という点は面白いかもしれないが、これはいわゆる自動プログラ
        ミングの範疇かもしれない。(93/3/1 増井)
Year: 1985
mar: { "March"; }
aug: { "August"; }
sep: { "September"; }
acta: { "Acta Informatica"; }
cacm: { "Communications of the ACM"; }
ibmjrd: { "IBM Journal of Research and Development"; }
toois: { "ACM Transactions on Office Information Systems"; }
ipsj: { '情報処理'; }
Volume: 7
acmcs: { "ACM Computing Surveys"; }
toplas: { "ACM Transactions on Programming Languages and Systems"; }
softpe: { 'Software -- Practice \& Experience'; }
Super: @predef
nov: { "November"; }
tods: { "ACM Transactions on Database Systems"; }