Procon Inputコンパイラの開発

【競技プログラミング】Pythonでも入力をエレガントに処理する

で、競技プログラミングの入力処理のためのアプリを作ってることを話した。

競プロにもっとも向く言語はPythonだという主張なので、 当初の予定では、 Python3のコードだけを吐けばいいかと思っていたが、 せっかくだからもう少し楽しんでみようと思って、 仮にC++のコードを吐こうとするとどうなるだろうかと考えたところ、 コード生成のためのきれいな共通層を作れそうなことがわかったので、 一気にやってしまった。

その後、NimとRubyのコード生成も出来るようにした。 Nimも競プロに向く言語だと思っている。 ここまで合計10日くらいで一気にやったため、本当に疲れた。

良かったらコードを読んでみてほしい。

今後サポートしたい言語は、 Java, C#, Rustで、 競技プログラミングにおいて広く使われるツールを目指している。 業界標準となり、コンテストの入力フォーマット自体がこのツールに従うようにしたい。 Qiitaなどで、入力処理に関するTip記事が溢れているのがこれらはなにも本質的ではなく、 業界の恥だと思う。

おれはもうゴリゴリに疲れてしまったので、 言語対応を実装したい人がいたらお願いしたい。 ふつうの手続き型言語ならば、他の言語の対応も出来ると思うので、 実装したい言語があれば上記したもの以外でもPRしてもらって構わない。

他には、テスト用のコードが各言語ごとに必要となっているのだが、 これを自動生成出来ないかとも思っている。

あとは使ってみてバグってる箇所を見つけてくれても素晴らしいことと思う。 いきなり本番コンテストはおすすめしないので、 まずは練習ででも使ってみてほしい。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。