著者
大森 洋一 荒木 啓二郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.3, no.5, pp.18-28, 2010-12-10

形式的な論理に基づいたモデルベース開発は,上流工程からソフトウェア品質の向上に有用なさまざまな数理的検証を可能とする.しかし,システム開発における仕様記述のほとんどは自然言語により行われており,形式モデルへの変換が必要である.我々は,自然言語による要求あるいは仕様の記述から形式的なモデルの要素となるキーワードを抽出し,それらの関連を特定するという,よく知られた手順をより精密に定義し,この手順を効率的にサポートするツールを開発した.自然言語記述と形式モデルを対応づけることによって,解釈の一意性と記述の柔軟性を両立させることができる.開発したツールを活用した検証では,自然言語による仕様記述に対して,用語や表記のゆれといった言語的な品質から,記述不足や多義的な用語といった解釈に関する問題まで幅広く改善できることを示すとともに,より高度な自動変換に向けての課題を明らかにした.
著者
多田 拓 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.12, no.2, pp.1-9, 2019-05-21

曖昧さのある形式文法から生成されたパーサは異なる解釈をした複数の結果が導出されうる.このような複数の可能性を試すパーサは非線形の計算時間を必要とし,プログラミング言語などの人工言語の構文解析において望ましくない.Parsing Expression Grammar(PEG)の強みは優先度付き選択と貪欲な繰り返しによって曖昧さがないように形式化されている点である.しかしながら,近年の文法推論や自然言語を含んだ解析への応用では曖昧さが重要となっている.本研究では,PEGに文法的な拡張を加えることで,曖昧さを追加した新しい形式化基盤Generalized PEG(GPEG)を提案する.GPEGは決定的なPEGの文法に対して,優先度なし選択を加えた拡張となっている.一般化構文解析手法であるGLRやGLLで構築される曖昧な木とは異なり,曖昧さを文法から制御可能であるため部分的に曖昧な木を構築する.さらに,本研究で提案しているgeneralized packrat parsingによって実用的な時間で構文解析が可能である.
著者
馬場 祐人 筧 捷彦
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.2, pp.97, 2012-03-30

日本語プログラミング言語は,変数や関数を日本語で名付け,日本語の語順でプログラムを書くプログラミング言語である.日本語でプログラムを書くことの利点は,英単語へ置き換えることなく母国語でソフトウェアを開発できることにある.プログラムを母国語で書くことで,ソフトウェア開発においても実装やデバッグ,保守に寄与することが期待される.我々は,日本語プログラミング言語"プロデル"を開発すると同時に,それを使って日本語プログラミングによるソフトウェア開発を実践している.本研究では,日本語プログラミング言語を用いてソフトウェア開発を行い,日本語表記で書かれたプログラムの可読性について評価実験を行った.その結果,日本語で書かれたプログラムは,Javaで書かれたプログラムと比較して,プログラムの理解やデバッグに要する時間が短くなる傾向があることを確認できた.本発表では,日本語プログラミング言語で書かれたプログラムの可読性について議論する.A Japanese Programming Language (JPL) is a programming language using Japanese words for identifiers, such as variables and functions, and its programs are written in a Japanese word order. The advantage of writing programs in Japanese words is to represent the program in our native language without having to replace to English words. We expect that a Japanese programming contributes to implementation, debugging and maintenance, in a large-scale software development. We developed a JPL "Produire" and has developed practical software using the JPL. In this study, we developed software using Produire and experimented to evaluate the readability of programs written in a JPL. This experiment shows that programs written in a JPL, compared to programs written in Java, tend to shorten the time required to understand and debug. In this presentation, we discuss the readability of programs written in a JPL.
著者
松本 行弘
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.2, no.2, pp.27-36, 2009-03-23

多くのスクリプト言語において多言語テキスト処理は Unicode を固定的な内部文字コードとして採用しているが,その場合,Unicode 以外の文字集合で表現されたテキストを処理するためには文字集合間の変換が必要になり,文字集合間の互換性や文字集合における歴史的な事情などによりさまざまな問題を引き起こす可能性がある.そこで筆者が開発しているスクリプト言語 Ruby に対して,固定的な内部文字集合を持たない文字集合独立方式を採用し,文字集合間の変換をできるだけ行わないテキスト処理機能を実装した.本論文で述べる Ruby の多言語テキスト処理機能は,Unicode を固定的な内部文字集合とする他スクリプト言語 (Perl および Python) と比べて,テキスト処理におけるプログラムの簡潔さおよび性能において劣らない実用的なものであることを示す.本論文で述べる多言語テキスト処理機能は Ruby バージョン 1.9 として公開されている.
著者
吉川 隆英 近山 隆
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.41, no.9, pp.78-86, 2000-11-15
被引用文献数
2

世代GC方式は,データ割付領域を生成後間もないデータを配置する新世代領域と長寿命データを配置する旧世代領域とに分割することにより,長寿命データが何度もGCを経験するのを防ぐとともに,データ局所性の向上を図るメモリ管理方式である.世代GC方式においては,新世代領域から旧世代領域への移動(殿堂入り)時期の適切な選択が性能を大きく左右する.通常,殿堂入り時期はデータのGC経験回数によって決定される.そして,GCは新世代領域を使いきった時点で発生する.したがって,新世代領域サイズを動的に変更すれば,殿堂入り時期は動的に変更できる.本稿では,GC時に回収されるゴミの比率のモデルに基づきデータの平均余命を推定,その結果に沿って新世代領域サイズを動的に変更することによって,殿堂入り時期を適切に調節する世代GC方式を提案する.また,この方式を並行並列論理型言語処理系KLICに実装し評価を行った結果も述べる.A generational garbage collection segregates heap objects into multiple areas by their age, and garbage-collects areas containing older objects less often than those of younger ones. In a version of this scheme using two areas, new heap objects are allocated to the younger generation area, and advanced to the older generation area after a while. With an appropriate advancement policy, it can avoid repeated inspections of long-lived objects and improve reference locality. When to advance objects to the older generation is usually decided by the number of GCs that the object experienced. A GC occurs when the younger generation area is filled up. So the advancement policy can be dynamically modified by adjusting the new generation area size. In this paper, we propose an adjustment scheme based on {エit garbage ratios}, by which one can estimate life expectancy of short-lived objects. And we also report the evaluation results of this sheme when applied to an implementation of a concurrent and parallel logic programming language, KLIC.
著者
杵淵 哲也 岩崎 英哉
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.48, no.4, pp.76, 2007-03-15

XML処理において,タグごとにイベント処理を記述するSAXやStAXといったストリームベースAPIを用いた記述は,木構造を直接扱うDOMなどのツリーベースAPIを用いた場合に比べてメモリ効率が良いという利点を持つ一方,パーサの処理がXML文書のどの部分まで進んだのかを追跡する必要があるため,記述が煩雑になりがちであり,プログラマへの負担が大きいという欠点がある.本発表では,ユーザにあらかじめアクセスする要素のパターンを記述してもらい,そのパターンに適合する要素を取り出すアクセサを自動生成する機構を提案する.自動生成されたアクセサはJavaのクラスとして提供され,主要なストリームベースAPIであるStAXを用いて処理を行う.煩雑な記述はアクセサによって隠蔽されるので,ユーザは生成されたクラスを用いて簡潔な記述によりXML処理を行うことができるようになる.For processing XML documents, stream-based API such as SAX and StAX handles tag-oriented event-driven programs and has the advantage of memory efficiency, compared with tree-based API such as DOM that handles tree structure directly. However, programs using stream-based API are complex because they are necessary to track how far processing has proceed within the XML document, and thus impose large load on the programmer. To resolve this problem, we propose a mechanism that automatically generates accessors to the elements that are specified by the user. Each accessor is implemented as a method that uses StAX API. The proposed mechanism enables the user to write more concise XML processing programs, because complex descriptions are encapsulated within the accessors.
著者
池田 崇志 結縁 祥治
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.14, no.5, pp.34-48, 2021-11-25

本論文では,並列に実行されるブロック構造を持つプログラムの実行を解析することを目的とした可逆実行環境を示す.並列プログラムを抽象機械のバイトコード列に変換して実行する.順方向の実行時は逆向き実行に必要な情報をスタックに保存し,その実行を逆向きにたどる実行環境を実装する.この実行環境では,順方向の抽象命令を逆方向の抽象命令を逆順とし,ジャンプ命令と変数更新命令を対応する逆方向の命令に変換することで逆向き実行を実現する.筆者らはバイトコードによる実行環境複数の抽象機械でバイトコードを順方向および逆方向の2つのモードで並行実行する実行環境をPythonのmultiprocessingモジュールによって実現した.本論文では,実際的なプログラムの構文要素として,ブロック構造,手続き呼出し,関数呼出しを含むように拡張した.Hoeyらの手法に従って変数のスコープを扱うために,各ブロックに名前を付け,参照情報をパスとして表し,局所変数を実現する.本研究で新たに提案する方法として抽象命令生成時に作成する並列ブロックの開始および終了番地を記録したテーブルを用いて並列ブロックを起動することにより順方向,逆方向ともに並列の入れ子構造を実現する.これらの実現手法によって,ブロック構造を持つプログラミング言語に対して単純な抽象機械の実行メカニズムによって逆方向実行が可能となることを示し,並列プログラムのデバッグのための基盤として提案する.
著者
逢坂 美冬 菊地 大介 上野 雄大 大堀 淳 佐々木 加奈子
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.8, no.4, pp.17, 2015-12-04

今日広く用いられているWebアプリケーションフレームワークは,プログラムの自動生成やファイル名の命名規約など,プログラミング言語の範囲を超えた記述を要求するものが多い.この方法は,典型的なアプリケーションの開発において生産性が高いと考えられている一方,実行されるコードの全体像を把握することが難しく,フレームワークの想定から外れた,細やかな制御を必要とするアプリケーションを書くことは難しい.この問題を解決する1つの方法は,Webアプリケーションを構成するすべての要素がプログラミング言語の概念で網羅されるようにアプリケーションを構築することである.関数型言語は,高階関数やモジュール言語などの機能による高い記述力を持ち,このようなWebアプリケーション開発に適していると期待できる.従来の関数型言語では,Webアプリケーション開発に必須となる,データベースへのシームレスなアクセスやマルチコアCPUへの対応が不十分なため,言語単体でのWebアプリケーション開発は難しい.本発表では,SML#を用いた試作を通じて,関数型言語による高水準なWebアプリケーション開発の可能性を分析し,単独プロセスのWebサーバーとして動作するユーザプログラムとしてWebアプリケーションを開発する枠組みを提案する.提案手法では,HTTPサーバー機能を含む,サーバーサイドプログラミングに含まれるすべての要素はSML#のプログラムとして構築される.その構成から,SML#が持つCやデータベースとの連携により,データベースを含めた高水準なプログラミングや,マルチスレッドへのスケールアップ性は,自然に得られる.さらに本発表では,クライアントサイドプログラミングや,HTMLのリンクをユーザがたどることによる状態遷移など,本手法とクライアントとの連携の可能性について論じる.
著者
佐藤憲一郎 松井 祥悟
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.45, no.12, pp.93, 2004-11-15

UNIX等のマルチプロセスOSに実装されているプロセス生成用システムコールのforkを用いて,並列ガーベジコレクション(GC)を実現した.forkによって生成されたGCプロセスがコピーされたヒープ空間上で印付けを行うために,ライトバリアが不要となる.ごみ情報を通知するためにプロセス間通信が必要となるが,一般的な停止-回収型マークスイープGCは容易にこの方法へ変更することができる.パイプおよび共有メモリを用いた本GCをLispインタプリタに実装し,停止-回収型マークスイープGCと比較評価を行った.We implemented the parallel garbage collection using fork system call for process generation supported in the multi-processes OS, such as UNIX. The GC does not need a write barrier because the gc process generated by fork system call performs marking the duplicated heap. Although Inter-Process Communication is needed in order to notify garbage cells, the general stop and collect mark-sweep GC can be easily changed to this method. We implemented the GC using the pipe and shared memory and compared with the original mark-sweep GC.
著者
高野 祐輝 三浦 良介
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.11, no.4, pp.14, 2018-12-14

いま,AliceとBobは同じ家に住んでおり,CharlieはAlice達の隣町に住んでいるとする.ここで,Aliceの利用可能な通信手段は直接会話と電話の2通りであるとすると,このとき,Aliceは,Bob,Charlieへ通信するときにはどの通信手段を用いるだろうか? 一般的には,AliceからBobへの通信は直接会話を,AliceからCharlieへの通信は電話を用いると考えられる.この事実が示すことは,チャネルにはある普遍的な順序関係があり,その順序関係は,通信主体の存在する場所など,通信主体どうしの関係性に依存して変化すると考えられる.本発表では,通信手段と周辺環境が備える特徴,制約を明らかにした後,それら特徴を備えた階層型並行計算モデルである,マトリョーシカ・モデルの提案と形式化を行う.マトリョーシカ・モデルは,チャネルに対して,有効範囲と通信可能範囲を定義することで,チャネルの順序付けを行うことを可能にする.本モデルを用いることで,上の例でいうところの,直接会話と電話の持つ意味,すなわち通信手段の持つ意味について形式的にとらえることが可能となる.さらに,本発表では,現在のコンピュータ・アーキテクチャ,オペレーティングシステム等における,チャネルとプロセスを,マトリョーシカ・モデルで表現する例を示す.Assume that Alice and Bob live in the same house and Charlie lives in a neighboring town of Alice, and Alice can take advantage of two communication channels, which are direct conversation and telephone. In this case, which channel does Alice use when communicating to Bob and Charlie? In general, She should use a direct conversation channel and a telephone channel to communicate Bob and Charlie, respectively. This fact implies that there is a universal order relation for channels, and the order relation depends on the relationship of the communication subjects, such as where the subjects exist. In this presentation, we reveal that the features and constraints of communication channels and the environment of the channels, and then propose and formalize the Matryoshka model, which is a hierarchical computational model with the features. The Matryoshka model can order channels by defining an identifier domain and a communication range of the channels. Furthermore, in this presentation, we will express channels and processes on the modern computer architecture and operating system by the Matryoshka model.
著者
秋信 有花 縫嶋 慧深 田村 みゆ 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.14, no.2, pp.25, 2021-05-12

深層学習技術の登場により,近年の自然言語処理は目覚ましい発展を遂げている.同様に,プログラミング言語処理やさらにソフトウェア工学分野において,深層学習技術の活用は大いに期待されるものとなっている.我々は,深層学習による自然言語処理技法をより直接的に適用しやすくするため,プログラミング言語と双方向変換可能な形式日本語CJを提案する.CJは,構文レベルで形式的に定義され,決定的な構文木を導出でき,プログラミング言語を含む任意の形式言語と双方向変換となっている.一方,CJは日本語として自然に解釈することができ,既存の自然言語処理も適用可能である.本発表では,CJの設計と実装を報告する.
著者
後藤 正 境 将彦 長縄 祐輝 森 隆次郎 永松 礼夫
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.3, no.3, pp.18, 2010-06-16

スクリプト言語の 1 つである JavaScript を用いて,ページ遷移や再読み込みなしに,HTML ページの内容を変更する方法が注目されている.そのページの機能を提供するコンテンツや関数群は動的に追加や削除することができるため,この方式によりある程度汎用性のある実行環境が構成できる.我々は,このような実行環境を構成する部品として,普及しているブラウザとスクリプトを使ってどの程度の機能や容量が実現できるかについて検討した.本発表では,ブラウザ間の差異による問題点,実用的に扱えるデータ構造の大きさ,スレッドのエミュレートによる問題点,部分書換えの繰返しによるスクリプトの完全変更の可能性について述べる.Using a script language'JavaScript', they are now attracting attention, the methods to change contents of HTML pages without page transition or reloading. We can dynamically append or remove the contents and defined functions in a HTML page, which is used for providing services. So, with this method, we can construct somehow general execution platform. We estimated, as building blocks of such execution platform, what functionality and capacity can be obtained, with some popular browsers and the script language. In this presentation, we will discuss on issues arise from difference about browser behavior, maximum size of data structure for realistic assumption, issues on pseudo thread emulation, and capability of complete replacement of script codes by repeated partial rewriting.
著者
平岡 慶子 小寺 信治 寺島 元章
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.44, no.2, pp.36, 2003-02-15

使用中データオブジェクトをヒープの一端にそれらの配置順序を保存して再配置する圧縮方式(mark-and-compact )に基づいた三世代ガーベッジコレクションの実装とその評価について述べる.圧縮方式のガーベッジコレクション(GC )ではヒープ上での世代の序列が永久に変化しないため,各世代は単にヒープのアドレスで区分できる.そこで,GC はGC 対象領域と呼ぶヒープ中の1 区画を決めることで,3 つのオブジェクト世代に対して包括的かつ効率的に行うことができる.隣接したGC間で消費された領域には新しい世代のオブジェクトがあり,それをGC 対象領域とするのが新世代GC である.1 回のGC 経験回数で殿堂入りした新古世代オブジェクトはその総量が閾値を超えるとGC により古世代オブジェクトとなる.このときのGC 対象領域は新世代と新古世代のオブジェクトが存在する連続した区画となる.新世代GC と異なるのは区画が大きくなるだけである.なお,古世代はヒープが枯渇しない限りGC の対象とはならない.また,新古世代オブジェクト量を調整するための新世代領域の動的変更機能についても述べる.We describe implementations and evaluation of three-generational garbage collection based on a sliding compaction (mark-and-compact)scheme that moves data objects being in use toward an end of a heap preserving their allocated order.The GC based on the sliding compaction scheme preserves the allocated order of generations as a group of data objects,so that the generations are simply classi fied according to their addresses of the heap.Our generational GC processes three generations efficiently and collectively by choosing a continuous space being subjected to GC from the heap.The GC for a young generation (minor collection) chooses the space that has been consumed since the last GC invocation and contains newest data objects.The objects that were subjected to the process of a single GC invocation changes to an old generation.The old generation is processed by the GC if its amount exceeds a prescribed value,and then changes to the oldest generation.This GC (major collection)chooses the continuous space that contains both the young and the old generations that is larger than the space for the minor collection.The oldest generation is free from the GC provided that the heap is not full of objects.Our generational GC also adopts dynamic adjustment of the space for the minor collection in order to reduce the amount of the old generation that affects the GC performance largely.
著者
中川 みなみ 南出 靖彦
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.9, no.3, pp.28, 2016-06-06

正規表現マッチングは文字列を操作するウェブプログラムなど,様々な場面で用いられており,その実装の多くはバックトラックに基づいている.そのため,正規表現マッチングにかかる時間が文字列の長さに関して線形でないことがあり,最悪の場合指数関数時間となる.本発表では正規表現マッチングの時間計算量を判定する手法を提案する.対象の正規表現から先読み付き木トランスデューサを構成する.その先読み付き木トランスデューサから準同型写像や有限遷移系を構成し,それらを用いた遷移過程の中に反復補題が成り立つ遷移過程が存在しているか調べることで計算量を判定することができる.この判定には,AhoとUllmanによる木トランスデューサの増加率の判定法を先読み付き木トランスデューサに拡張したものを利用する.先行研究では,EngelfrietとManethのマクロ木トランスデューサの増加率の判定法を用い,正規表現マッチングの計算時間が入力文字列に対して線形であるかどうかを判定する手法が提案された.本発表で提案する手法は,時間計算量が線形であるかどうかの判定だけでなくO(n2),O(n3),...になることも判定できる.この提案手法をOCamlによって実装し,既存のPHPプログラムで使用されている正規表現を対象に実験を行った.実験の結果,393個中入力文字列の長さに対して338個が線形,44個が2乗,6個が3乗の計算量であると判定された.
著者
三上 裕明 坂本 大介 五十嵐 健夫
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.8, no.4, pp.1-14, 2015-12-04

APIの理解と使い方の学習は,プログラマにとって重要であるが,時間のかかる作業である.APIを理解するための方法の1つとして,チュートリアルがある.チュートリアルは,複数のサンプルコードおよびその説明と,それらのリストからなるドキュメントであり,ライブラリの基本的な機能の使い方を提示する.現在,チュートリアルはライブラリの開発者が記述しているが,チュートリアルを書くことは手間がかかる作業である.そのため,チュートリアルが更新されず,最新のAPIの使い方がチュートリアルで説明されていない場合がある.この問題に対処するため,本論文では,単体テストからチュートリアルを自動的に生成する手法を提案する.本手法では最初に,単体テストから実行可能なサンプルを生成する.次に,サンプルの説明を生成するために,プログラム可視化の技法を用いる.また,サンプルコードのリストを作るために,単体テスト間の依存関係を用いる.具体的には,実行時情報を用いて単体テストの依存関係を抽出し,そしてその依存関係をもとにサンプルコードを順序付けする.本手法の有効性を確認するためにユーザスタディを実施した.この結果,本手法を用いて生成されたチュートリアルを用いることで,自動生成された既存のAPIドキュメントの場合よりもAPIを効率的に理解できるという結果が得られた.
著者
大島 芳樹 脇田 建 佐々 政孝
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.41, no.9, pp.62-77, 2000-11-15
参考文献数
16

高機能なSmalltalk処理系であるSqueakを携帯情報端末Zaurusに移植し,Zaurusの持つ独自のハードウェアにあわせて拡張を施したので,システムの実現方法,性能,可用性の評価について報告する.我々の行った実装作業は大きく2つに分類される.まず,基本的な機能の性能を向上させるために,Zaurus上でのイベント処理方式やビットマップ変換方式の性能について定量的評価を行い,それに基づいて最適化を行った.さらに,Zaurus独自の拡張を施すことによって,ペン入力,音声機能,デジタルカメラ,TCP/IPネットワーク,シリアル・IrDAポート,電力消費制御,およびフラッシュメモリファイルシステムのようなPDA独自のハードウェアをSqueakから操作可能とした.この移植および拡張はZaurus依存の部分を記述した4000行程度のC記述および600行ほどのSqueak記述によって達成された.我々は大小各種のベンチマークによる性能評価およびいくつかのアプリケーションによる可用性評価を行った.Zaurusシリーズの最上位機種であるMI-EX1上のSqueakは,400MHz G3 Macに対して最高1/8程度の性能を示した.このベンチマークの数字および実際の使用テストから,このシステムは十分実用に耐える性能を持つことが分かった.我々の実装によって,さまざまな周辺機器を操作できる実用的なプログラミング環境を手のひらサイズの機器上で運用できることが示された.This paper reports our effort to implement Squeak Smalltalk on a family of personal digital assistant ({エit PDAエ/}) devices called Zaurus. The Squeak on Zaurus ({エit Squeak/Zaurusエ/}) offers programmable interfaces to various Zaurus specific devices. The system is evaluated in terms of its usability and performance. Two important issues in implementation of Squeak/Zaurus are as follows. Firstly, we measured performance of several implementation strategies for event-handling and bitmap conversion, which are dominant performance issues, and adopted the best ones in Squeak/Zaurus. Secondly, we have extended Squeak to support PDA specific hardware such as pen input, audio, digital camera, TCP/IP network, serial and IrDA communication, power consumption control, and file I/O on flash memory. These PDA specific devices are made directly accessible to the programmer. Those Zaurus specific functions are written in 4,000 lines of C code and 600 lines of Squeak code. The performance of Squeak/Zaurus has been evaluated by various micro- and macro-benchmarks and its usability has been tested by applications. MI-EX1, the highest model of Zaurus family, marked 1/8 of the performance of Squeak running on 400エ,MHz G3 Mac at best. This result and the usability tests indicate that it performs sufficiently well for practical use. The Squeak/Zaurus implementation demonstrates feasibility of practical programming environment on palm size devices that can operate PDA specific hardware.
著者
今城 哲二 大野 治 植村 俊亮
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.41, no.2, pp.106-106, 2000-03-15

約20年前からコンピュータでの漢字利用が普及し,標準プログラム言語で日本語データ処理が可能となった.日本語処理は,国際化と一般化されて,国際規格化された.いくつかの言語では,識別名にも漢字などマルチオクテット文字が使用できる.予約語まで日本語にした本格的な日本語プログラム言語も,分かち書きのレベルで,実用化されている.本発表では,より日本語に近い非分かち書きの日本語プログラム言語「まほろば」を提案し,その構文の設計の考え方を中心に論じる.20 years ago, programming languages have acquired an ability to handle Japanese. Generalizing it to internationalization (i18n), many of i18n facilities of each programming language were accepted as ISO standards. Some programming languages allowed users to use user-defined words in such multi-octet characters as Kanji. Some new Japanese-based programming languages have also been developed and used. In all those languages, keywords and grammar are based on Japanese, but words have to be separated by spaces. We develop a non-separated (No wakachigaki) version of Japanese-based programming language "Mahoroba". "Mahoroba" is a word of ancient Japan, and means a nice country. This presentation describes its syntax design.
著者
阿部 和敬 中野 圭介
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.12, no.2, pp.14, 2019-05-21

マクロ木変換器(MTT)とは,入出力を木構造とする累積引数付き再帰関数のモデルである.複数のMTTの合成として表現される関数を,1つのMTTで表現することをMTTの融合という.一般にはMTTを融合できるとは限らないが,特定の条件下では融合手法が知られている.VoigtländerとKühnemannは,入力木のコピー回数に関する条件を満たす2つのMTTの融合手法を示した.ただし,1つのMTTで表現できるにもかかわらず,彼らの手法を繰り返すことでは融合できない3つ以上の合成も存在する.Manethは,任意の個数のMTTの合成が最終的な出力木のサイズに関する制約を満たすとき,合成に相当する1つのMTTが構成できることを証明した.しかし,彼の研究は融合可能性の証明が目的のため構成は煩雑である.そこで本発表では,高階木変換器(HTT)を用いてVoigtländerとKühnemannの手法を一般化し,Manethの証明に実用に向いた別証明を与える.HTTとは,MTTの一般化として提案された高階関数のモデルである.本融合は,まずMTTの合成を1つのHTTとして表現し,HTTに現れる高階関数のオーダを下げていくことで,MTTへの融合を実現する.理論上融合が不可能な場合でも,本融合は合成に相当する1つのHTTを得ることができる.
著者
阿部 和敬 中野 圭介
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.12, no.2, pp.14, 2019-05-21

マクロ木変換器(MTT)とは,入出力を木構造とする累積引数付き再帰関数のモデルである.複数のMTTの合成として表現される関数を,1つのMTTで表現することをMTTの融合という.一般にはMTTを融合できるとは限らないが,特定の条件下では融合手法が知られている.VoigtländerとKühnemannは,入力木のコピー回数に関する条件を満たす2つのMTTの融合手法を示した.ただし,1つのMTTで表現できるにもかかわらず,彼らの手法を繰り返すことでは融合できない3つ以上の合成も存在する.Manethは,任意の個数のMTTの合成が最終的な出力木のサイズに関する制約を満たすとき,合成に相当する1つのMTTが構成できることを証明した.しかし,彼の研究は融合可能性の証明が目的のため構成は煩雑である.そこで本発表では,高階木変換器(HTT)を用いてVoigtländerとKühnemannの手法を一般化し,Manethの証明に実用に向いた別証明を与える.HTTとは,MTTの一般化として提案された高階関数のモデルである.本融合は,まずMTTの合成を1つのHTTとして表現し,HTTに現れる高階関数のオーダを下げていくことで,MTTへの融合を実現する.理論上融合が不可能な場合でも,本融合は合成に相当する1つのHTTを得ることができる.Macro tree transducers (MTTs) are models for recursive functions (with accumulating parameters) on tree-structured data. Constructing a single MTT equivalent to a composition of given MTTs is called 'fusion' of the MTTs. Although it is not always possible to fuse given MTTs in general, fusion methods under certain conditions are known. Voigtländer and Kühnemann showed a fusion method of two MTTs restricted about the number of copying an input tree. However, a repetition of their method cannot necessarily fuse more than two MTTs even in the case where there exists a single MTT equivalent to the composition of them. Maneth proved that we can construct an MTT equivalent to a composition of given multiple MTTs restricted about the size of final output trees. However, since he is interested only in the fusibility, the construction is complicated. This presentation gives another proof adapted to practical uses for Maneth's proof as a generalization of Voigtländer and Kühnemann's method with high-level tree transducers (HTTs). Htt was proposed as a generalization of MTT, which is a model of higher-order functions. Our fusion method comprises two steps: first, a single HTT is obtained as a composition of given multiple MTTs; then, the orders of functions are lowered as much as possible. In this approach, we can obtain a 'fused' HTT even where there is no single MTT equivalent to the composition of MTTs.
著者
山口 大輔 山口 真弥 千田 忠賢 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.10, no.2, pp.2, 2017-02-27

再帰下降構文解析は人気の実装方法であるが,バックトラッキングにより,最悪ケースにおいて指数時間を要することが知られている.現実のパーサでは,最悪ケースはほとんど発生しないが線形時間性を保証することは難しい.本研究では,再帰下降構文解析の形式モデルとしてPEGを用い,PEGの文法定義から線形時間性を判定する方法に取り組んだ.