タグ

ブックマーク / kmizu.hatenablog.com (3)

  • 構文解析歴20年近くになりました - kmizuの日記

    まえがき タイトルが一体何言ってるんだお前は、という感じのものなのですが、初めて構文解析器ぽいものを書き始めてから、たぶん20年くらい経ったかなくらいの意味です。私を知っている方はご存知かも知れませんが、修士~博士にかけての私の研究テーマは、Packrat Parser/PEGで、博士論文もそれ関係でした。 で、博士号取った後、査読付き論文は一も出していないのですが、中田育男先生の、ISO-Rubyパーザの試験実装をお手伝いしたり、なんだかPEGや構文解析に関する論文の査読をしていたら、去年からプログラミング研究会の論文誌編集委員になったりしています。最近、まともに(査読付き)論文書いてない私がこんな立場引き受けていいのかなーと思うものの、構文解析という分野はとてもニッチなので、査読できる人が少ないせいか、構文解析に関する論文は、私に査読の話が来ることがしばしばあります。 私が型システム

    構文解析歴20年近くになりました - kmizuの日記
  • 自作パーザコンビネータライブラリを集めたリポジトリ mlcombinators を公開しました - kmizuの日記

    私がプログラミング言語を学ぶときには、パーザコンビネータライブラリを作る、ということはScala福岡2019の講演とかでも他のところでもよく言っていることなのですが、せっかくなので、これまで私が作ってきたミニパーザコンビネータライブラリ集をひとつのリポジトリにまとめて公開することにしてみました。もちろん、これだけでは到底実用に耐えないことは言うまでもないです。 github.com なお、mlはプログラミング言語のMLとはあまり関係なくて、multi-languagesくらいの意味です。それはともかく、このリポジトリには、私がそれらのプログラミング言語を学びたての頃(一部例外あり)にどのようにしてパーザコンビネータライブラリを組み立てたのか試行錯誤の跡が残っており、ひょっとしたらどなたかの参考になるかもしれません。 実は、これ以外にもC#とかCとかもっと色々なものについてパーザコンビネータ

    自作パーザコンビネータライブラリを集めたリポジトリ mlcombinators を公開しました - kmizuの日記
  • Scalaアンチパターン:変更可能コレクションをvarとして宣言する - kmizuの日記

    Scalaは最初から関数型プログラミングのスタイルで書くことを意識して設計されたという意味で関数型プログラミング言語と言えますが、一方で、「Better Java」な手続き型スタイルで書くことも基的には否定されるべきではないと思います。たとえば、ビッグデータ関係のソフトウェアとして有名なApache SparkはScalaで書かれていますが、(おそらく)パフォーマンス上の理由のため、手続き型のスタイルで書かれている部分がかなり多いです。 さて、それはいいのですが、そういう「Better Java」なScalaコードによく見られるパターンに、変更可能コレクションを使っているのに、そのコレクションを格納する変数をvarとして宣言しているものが(割と有名なソフトウェアでさえ)あります。ですが、そういうコードは 書いてはいけません(かなり例外的な場合を除いて)。 「書いてはいけません」というのは

    Scalaアンチパターン:変更可能コレクションをvarとして宣言する - kmizuの日記
  • 1