著者
坪井 良介 各務 裕太 山口 大輔 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.11, no.2, pp.22, 2018-06-26

型推論は,構文パターンから型を推論する方法で,型アノテーションなしで静的型付けを実現する.ただし,構文パターンからの型推論はアルゴリズムが複雑になりがちですべての言語に採用しにくい問題がある.本発表は,よりお手軽に型推論を実現するため,名前からの型推論を提案する.まず,実際のソース・コードを解析し,型と名前の法則性を調べる.それに基づき,名前からの型を推論するシステムと言語設計を定義した.我々は,これらのアイディアを関数型スクリプト言語konoha 5λに実装し,その使いやすさを検証し報告する.
著者
中田 晋平 倉光 君郎
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2010-OS-113, no.16, pp.1-8, 2010-01-20

近年、プロセスグルーピングによるアイソレーションやリソースアカウンティングは、システムの信頼性、安定性向上のため重要な技術になってきている.これに伴い、プロセスグループ単位でのオペレーションが増えると、プロセスグループ単位のセキュリティが必要になる.Linux オペレーティングシステムでは、セキュリティフレームワークとして Linux Security Modules (LSM) フレームワークがあるが、LSM フレームワークではシステム全体でひとつのセキュリティモデルの適用しかできず、プロセスグループ毎にセキュリティモデルを変更したい場合に問題となる.そこで我々は、プロセスグループ毎に独立したアクセス制御モデルを適用させるため、Security Cube LSM を提案し、また、LSM だけでは解決できない問題に関しては LSM フレームワークの拡張を行った.本稿では我々の提案する Security Cube LSM と、LSM フレームワーク拡張のプロトタイプについて Linux 上で実装を行い、動作性能を測定した.測定の結果、オーバヘッドは 8% 未満で収まることを確認した.
著者
多田 拓 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(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によって実用的な時間で構文解析が可能である.
著者
高野 志歩 田村 みゆ 富岡 真由 秋信 有花 倉光 君郎
雑誌
情報教育シンポジウム論文集
巻号頁・発行日
vol.2021, pp.147-151, 2021-08-21

大学入試センターが公表した大学入学共通テスト(情報)のサンプル問題において擬似コードが用いられたことから,擬似コードによるプログラミング教育は,今後高校生の間に広がる可能性がある.擬似コードは,自然言語による理解しやすさもあり,プログラミング教育に導入しやすいという利点がある一方で,実際に動くコードを書くことなくプログラミング学習を済ましてしまうケースが増える懸念もある.本稿では,自然言語によるプログラムの理解のしやすさを活かし,かつ段階的にプログラミングを覚えることのできる新しいプログラミング言語処理系 Samoyed を提案する.Samoyed の試作を通して,プログラミングに自然言語を取り込む際の多くの技術課題が明らかになった.本発表では,Samoyed の構想と試作開発の状況を報告したい.
著者
秋信 有花 縫嶋 慧深 田村 みゆ 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.14, no.2, pp.25, 2021-05-12

深層学習技術の登場により,近年の自然言語処理は目覚ましい発展を遂げている.同様に,プログラミング言語処理やさらにソフトウェア工学分野において,深層学習技術の活用は大いに期待されるものとなっている.我々は,深層学習による自然言語処理技法をより直接的に適用しやすくするため,プログラミング言語と双方向変換可能な形式日本語CJを提案する.CJは,構文レベルで形式的に定義され,決定的な構文木を導出でき,プログラミング言語を含む任意の形式言語と双方向変換となっている.一方,CJは日本語として自然に解釈することができ,既存の自然言語処理も適用可能である.本発表では,CJの設計と実装を報告する.
著者
倉光君郎
雑誌
第54回プログラミング・シンポジウム予稿集
巻号頁・発行日
vol.2013, pp.27-34, 2013-01-11

Mini Konoha�は、究極の、もう少し具体的にいえば人類が開発する最後のスクリプト言語処理系、つまりもう新しいスクリプト言語は設計しなくてもよいといえる仕様の実現を目指している。本稿では、Konoha/KonohaScriptの開発経験からふりかえり、言語性能、応用領域、文法やプログラミング教育、ソフトウェア工学との関係など、様々な面から究極なスクリプト言語の設計を考えてみたい。
著者
山口 大輔 山口 真弥 千田 忠賢 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.10, no.2, pp.2, 2017-02-27

再帰下降構文解析は人気の実装方法であるが,バックトラッキングにより,最悪ケースにおいて指数時間を要することが知られている.現実のパーサでは,最悪ケースはほとんど発生しないが線形時間性を保証することは難しい.本研究では,再帰下降構文解析の形式モデルとしてPEGを用い,PEGの文法定義から線形時間性を判定する方法に取り組んだ.
著者
渡邉 遥輔 山口 大輔 倉光 君郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.12, no.3, pp.3, 2019-09-18

スマートコントラクトはブロックチェーン技術に基づいたプラットフォーム上で実行される分散型アプリケーションである.スマートコントラクトでは,資産のやり取りや権利の譲渡といった契約事項をプログラムとして実装でき,ブロックチェーン上で安全に実行できる.スマートコントラクトの開発言語としてSolidityと呼ばれるJavaScript風プログラミング言語がよく用いられる.しかし,Solidityは契約事項の可読性が低く,契約内容の理解が困難という課題がある.本発表では,より自然な日本語でスマートコントラクトを記述可能なプログラミング言語Nicoを提案する.Nicoの設計と実装を述べ,スマートコントラクトの記述をNicoで行う効果について考察を行う.
著者
志田 駿介 井出 真広 倉光 君郎
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.6, no.4, pp.1-9, 2013-12-25

本研究の目的は静的型付けを特徴とするスクリプト言語Konohaの処理系をLego社が開発したプログラム可能なロボットシステムであるMindstorms NXT上に移植し,Konohaのスクリプトを動作させることである.Mindstorms NXTはARM7 CPUと64kB RAMを搭載したロボットであり,Konoha処理系とリアルタイムOS TOPPERSの使用するメモリの合計を64kBに抑える必要があった.我々はMindstorms NXT上で動作するKonoha処理系をTinyKonohaと名付け,パーサや各ランタイムのコンパクト化を行った.最終的にTinyKonohaの使用したメモリ量はコード領域,スタック領域,ヒープ領域合わせて32kB程度となり,VM命令セットやオブジェクト構造の再設計を行った言語ランタイムを開発した.その結果,組み込みシステム技術協会が主催するETロボコンの公式コースを走行可能な規模のスクリプトを実行することが可能であった.本論文ではTinyKonohaの設計,省メモリ化の工夫を詳細に報告し,メモリ使用量の評価とともに省メモリ環境のスクリプト処理系開発の知見をまとめる.We present a small-size scripting language interpreter named TinyKonoha, which is originally developed as statically typed scripting language Konoha, that can be executed on Mindstorms NXT. Mindstons NXT is a robot developed by Lego Inc. and has ARM7 CPU and 64kB RAM. We set a goal to execute the script that can controls Mindstorns NXT and can read a value from sensors. Our language processor is based on static typing script language Konoha and we called it TinyKonoha. The memory usage of TinyKonoha gets to less than 32kB including code segment, stack segment and heap segment and we developed a new language runtime. In the result, writing a script, which can run the course of ET Robot Contest hosted by JASA, becomes possible. In this paper, we present the design and the implementation of TinyKonoha, the method of simplifying the language processor and the actual memory usage of TinyKonoha.