PPL 2021: 第23回プログラミングおよびプログラミング言語ワークショップ
PROGRAM FOR THURSDAY, MARCH 11TH
Days:
previous day
all days

View: session overviewtalk overview

10:00-10:50 Session 11: 字句解析,構文解析
10:00
[C2] A text-based syntax completion method using LR parsing

ABSTRACT. This paper presents a text-based syntax completion method using an LR parser. We propose formal definitions of candidate text to be completed based on the sentential forms, and we design algorithms for computing candidates through reductions in the LR parsing. This is in contrast to the existing methods that have not clearly stated what candidates they intend to produce. This is also different from a transformation approach using an LR parser, which transforms the grammar of the programming language, a burdensome task at this moment. The advantage of our method is that LR parsers can be adopted without modification, and a syntax completion system can be built using them, without incurring efforts. We implemented the algorithms as an Emacs server to demonstrate the feasibility of their application.

この論文はACM SIGPLAN 2021 Workshop on Partial Evaluation and Program Manipulation (PEPM 2021)で発表済です。

10:25
[C2] Plex: Scaling Parallel Lexing with Backtrack-Free Prescanning

ABSTRACT. 発表会議名: Internatioal Parallel And Distributed Processing Symposium (IPDPS) 年度:2021 (発表予定)

Lexical analysis, which converts input text into a list of tokens, plays an important role in many applications, including compilation and data extraction from texts. To recognize token patterns, a lexer incorporates a sequential computation model — automaton as its basic building component. As such, it is considered difficult to parallelize due to the inherent data dependency. Much work has been done to accelerate lexical analysis through parallel techniques. Unfortunately, existing attempts mainly rely on language-specific remedies for input segmentation, which makes it not only tricky for language extension, but also challenging for automatic lexer generation.

This paper presents Plex — an automated tool for generating parallel lexers from user-defined grammars. To overcome the inherent sequentiality, Plex applies a fast prescanning phase to collect context information prior to scanning. To reduce the overheads brought by prescanning, Plex adopts a special automaton, which is derived from that of the scanner, to avoid backtracking behavior and exploits data-parallel techniques. The evaluation under several languages shows that the prescanning overhead is small, and consequently Plex is scalable and achieves 9.8-11.5X speedups using 18 threads.

11:10-12:00 Session 12: 形式言語
11:10
[C1] 正則言語で極限的に近似可能な言語について

ABSTRACT. 著者は[S]において正則可測性という概念を導入し,多くの複雑な文脈自由言語が正則可測である一方,「原始語全体の集合」と言う組合せ論的に重要な言語が強い意味で非可測であることを示した. ある言語$L$が正則可測であるとは,直感的には$L$が正則言語でいくらでも近似できる,すなわち$L$に「収束」する正則言語の無限列が存在することを言う.

本論文では[S]で考察されていなかった,可測な言語全体の一般的な性質について議論する. また,正則言語の部分族であるいくつかの言語族について,その言語族において可測な言語全体の集合を明らかにする.

[S] Ryoma Sin'ya: Asymptotic Approximation by Regular Languages, SOFSEM2021 (to appear).

11:35
[C2] Context-Free Grammars with Lookahead

ABSTRACT. We introduce context-free grammars with lookahead. The grammars are an extension of both context-free grammars and parsing expression grammars, hence we can handle the two grammars in a unified way. To accommodate lookahead, we use a language with lookahead, which is a set of string pairs. We considered the grammar as a system of equations and give the language with lookahead by the limit of iterations from the empty set. The language class is closed under union, intersection, complement, and a weak version of concatenation and Kleene star.

LATA 2020 & 2021 accepted

13:00-13:50 Session 13: チュートリアル
13:00
[C4] Software Science under Uncertainties: A Survey

ABSTRACT. 下記リンク先PDFファイルを御覧ください。

https://drive.google.com/file/d/1Ra3YUHOvsVqcBUMlQOntGKYEhIm2ocK_/view

 

14:10-15:00 Session 14: 開発支援
14:10
[C1] ユースケースに合ったパッケージマネージャ開発の支援を目指したパッケージマネージャの依存関係解決方式に関する考察

ABSTRACT. 近年、OSにおけるソフトウェアの管理、ソフトウェア開発におけるサードパーティライブラリの管理、またエディタや開発環境のプラグインの管理などにおいて、多くのパッケージマネージャが利用されている。それぞれのパッケージマネージャは共通する部分もあるが、細かい仕様等はパッケージマネージャごとに異なる。また、yarnにおける選択的な依存関係解決など、通常パッケージマネージャーはそれぞれのユースケースに特化した機能を持つ。本論文では依存関係解決方式に着目し、パッケージマネージャに共通する機能を分類し、それぞれのパッケージマネージャが持つ特有の機能を包含する依存関係解決のインターフェースについて考察する。将来的に、様々なユースケースに対応できるようにパッケージマネージャのインターフェースを提案することで、ユースケースに合わせた機能を持つパッケージマネージャの開発の支援になることが期待される。

14:35
[C1] Mizar数学ライブラリの依存関係の可視化

ABSTRACT. Mizar数学ライブラリ(Mizar Mathematical Library: MML)は1,358のファイルから構成され,総行数は300万行を超える.Mizar言語はコンストラクタのオーバーロード機能を有しており,最後にインポートされたコンストラクタが優先される文脈依存文法となっている.このため,ライブラリメンテナンスを効率化するために,ファイルの依存関係を可視化することが喫緊の課題となっていた.本研究では,MMLを構成するファイルの依存関係を階層グラフとクラスタリンググラフによって可視化した.階層グラフは階層構造を持つグラフの可視化に適したレイアウトで,クラスタリンググラフではノードのクラスタの把握を目的とする.また,依存関係グラフの視認性の向上を図るために,ファイル周辺の依存関係を強調表示する機能,グラフ内で特定のファイルを検索する機能,マウスドラッグによってノードを移動する機能を実装した.

15:10-16:00 Session 15: 機械学習,ブロックチェーン
15:10
[C1] NEATとクラスタリングを用いたゲームにおけるプレイスタイルの創発

ABSTRACT. ゲームをプレイするエージェントに関する研究においてプレイスタイルの創発を試みるものがある.こうした先行研究で採用されているアプローチの多くは,あらかじめ想定した特定のプレイスタイルが創発されるように報酬関数を定義するというものである.しかしながら,このような手法では未知のスタイルを創発できないという問題があった.そこで本研究では,NEAT(NeuroEvolutionofAugmentingTopologies)と呼ばれる遺伝的アルゴリズムと,エージェントのプレイデータに関するクラスタリングを用いて異なるプレイスタイルを創発させる手法を提案する.具体的には,プレイデータの類似度によってエージェントをいくつかの種に分け,同一種の個体同士で自然淘汰させて適応度の高いものを探索する.これにより,事前に報酬関数を定義することなく異なるプレイスタイルを創発させることを目指す.以上の提案手法をNEATのみを用いた場合と比較した結果,ゲームに対して最適化された複数のプレイスタイルをほぼ同じ割合で創発させることができた.

15:35
[C1] パブリックブロックチェーンを用いたプログラマブルな正答集合を扱える試験プロトコル

ABSTRACT. 資格試験や競技プログラミングなど,プログラミングを伴う試験はしばしば実施される.しかし,現行の試験プロトコルは実施機関を全面的に信用する必要があり,悪意ある実施機関は不正を行うことができる.その対策として,信用の置ける機関をもたない試験プロトコルを構築する努力が続けられている. 非中央集権的なプロトコルを構築する方法の一つは,ブロックチェーンを応用することである.これまでに,ブロックチェーンを用いた試験プロトコルがいくつか提案されてきたが,それらは有限の正答集合しか扱えないという問題点がある. そこで,我々はプログラムにより定義される正答集合を扱える非中央集権的な試験プロトコルを提案する.提案手法は形式化された形で記述し,数学的に手法の正当性を保証する.また,提案手法に基づいてEthereum上に非中央集権的なプログラミングコンテストプラットフォームを実装する.その過程で浮上した実装上の困難についても議論する.