タグ

ブックマーク / qiita.com/yyu (3)

  • Scala + shapelessでExcelパーザーを自動生成 - Qiita

    はじめに 最近は業務でScalaを使ってExcelを解析するプログラムを保守・運用している。Excelは、JSONやXML、YAMLといった他のデータフォーマットと異なり、非エンジニアであっても編集することができるというのが大きな特徴であるが、その代償として限定されたデータ構造しか記述できない。 Scalaにおいては、たとえばJSONはPlay JSONのようにScalaのケースクラスからマクロを用いてパーザーを自動生成するというのが普及している。一方でExcelにはそのようなものが(筆者らが知る限りにおいて)存在しなかったため、これまではPoi Scalaというパーザーを利用して、たとえば「あるシートの1:AをDouble値として取得する」といった低レベルなプログラムを書く必要があった。そこで@ippei-takahashiがPlay JSONのようにマクロ(shapeless)を利用し

    Scala + shapelessでExcelパーザーを自動生成 - Qiita
  • “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita

    はじめに https://doc.rust-jp.rs/book-ja-pdf/book.pdf プログラミング言語Rust: 2nd Edition1の日語版PDFを公開しました! 組版上のエラーなどを見つけたら気軽にIssueなどで報告してほしいです 改善してほしい点なども歓迎します! 頃合いをみてrust-lang-jaに移すかも 移した 実はWeb版もあります! https://doc.rust-jp.rs/book/second-edition/ HTML版のソースはhazamaさんのMarkdownからRustコミュニティがフォークしたもので、PDF版と同じものを参照しています GitHub Repository https://github.com/rust-lang-ja/book-ja-pdf エラー報告などをお待ちしています。 追記 アスキードワンゴさんから出版されま

    “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita
  • 正規表現からLLVMへのコンパイラを実装する - Qiita

    正規表現技術入門というの中に、正規表現のJITコンパイルという技術が紹介されている。VM型の正規表現エンジンは以前作った1ので、これをLLVMへコンパイルすればおもしろいのではないかと考えて、実行することにした。なお、実装にはScalaを用いた。 追記: また、JVMのバイトコードへJITコンパイルする実験も書きました。 正規表現のJITコンパイラを実装する 正規表現の抽象構文木 VMの実装の時に用いたものと同じく、次のデータ構造を用いる。 sealed trait Regex case object Empty extends Regex case class Let(c: Char) extends Regex case class Con(a: Regex, b: Regex) extends Regex case class Alt(a: Regex, b: Regex) ext

    正規表現からLLVMへのコンパイラを実装する - Qiita
    clavier
    clavier 2015/05/12
    正規表現からLLVMへのコンパイラを実装する - Qiita
  • 1