狠狠撸

狠狠撸Share a Scribd company logo
Camomile

OCaml用Unicodeライブラリ
                 山形賴之
           2011年12月29日
                    京大
Agenda
Unicodeとは?

OCamlとは?

 Camomile
Agenda
Unicodeとは?

OCamlとは?

 Camomile
A   U+0041   ?   U+1EAC
                 = U+0041 + U+0302
                 + U+0323
    U+3042
あ            既   U+65E2



?   U+16A0   旣   U+65E3
文字集合は民族の财产だ!



    勝手に統合するな!


Code Set Independeceにこだわる
Character, not glyph

AAAAA ←すべて同じ文字
原則:文字という論理的な対象をコード
論理的とは?
  ≒意味
  でも、既≠旣とかわかりにくい
意味



                 士≠土



                         抽象的な構造
                   既≠旣
とめ、はね、など


    具体的な形
BMP:よく使われる文字


0 10000 20000 30000               E0000 F0000    10FFFF
            拡
            張                               Private
            漢                                Zone
            字
                                  タグ


                Plane 1: 特殊記号、歴史的な文字
A Ω 語                
41 CE A9 E8 AA 9E F0 A0 80 94



 A Ω 語 
0041 03A9 8A9E D840 DC14


   A         Ω        語         
00000041 000003A9 0000819E 00020014
?=?
  1EAC


 = A + ?+ ?
  0041   0302   0323


 = A + ?+ ?
  0041   0323   0302
狈贵顿:できるだけ分解
    NFD(?+ ?)=A + ?+ ?

NFC:できるだけ合成
    NFC(A + ?+ ?)= ?

NFKD,NFKC:
    NFKD(?)= カ
    NFKD(?)= D + z + ?
Unicode Algorithm
? Unicode collation algorithm (UCA)
? Case mapping algorithm
? Bidirectional algorithm (BIDI)
Agenda
Unicodeとは?

OCamlとは?

 Camomile
Lisp,Scheme,Erlang




       ML系言語
        OCaml        Haskell
         F#




         Scala
OCaml vs Haskell
? 関数型言語
  – 副作用のないプログラミングスタイルを奨励
? Hindley-Milner type systemがベース
  – 強い静的型付け
  – 型推論
  – 多相型
OCaml vs Haskell(続き)
      OCaml             Haskell
Eager              Lazy
副作用あり              モナド
begin … end etc.   オフサイドルール
独自機能               独自機能
      モジュール             タイプクラス
      オブジェクト指向
Agenda
Unicodeとは?

OCamlとは?

 Camomile
Camomile
?   基本データ型
?   文字コード変換
?   正規化
?   Unicode Algorithms
    – UCA (文字列照合)
    – Case mappings
? 正規表現
サイト
? Github / yoriyuki / Camomile
? 課題
  – ulib
  – Unicode 6.X対応
  – まともな正規表現エンジン
  – バグ、バグ、バグ…

More Related Content

Similar to Camomile - OCaml用Unicodeライブラリ (20)

KEY
How wonderful to be (statically) typed ?型が付くってスバラシイ?
Hiromi Ishii
?
PDF
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
?
PDF
卒研発表
yayugu
?
PDF
ISO/IEC 10646への絵文字収録 / Emoji entry to UCS
Katsuhiro OGATA
?
PDF
関数型言语初心者が贬补蝉办别濒濒に挑戦してみた
ikaro1192
?
PPTX
文字コード入門 理論編 クイズ付き
Takao Baba
?
KEY
驰别蝉辞诲を支える技术
Hiromi Ishii
?
PDF
闯补惫补厂肠谤颈辫迟の正规表现
yaju88
?
PDF
正规言语でプログラミング
Ryoma Sin'ya
?
PDF
罢肠濒/罢办クイック入门
nyaocat
?
PDF
鲍苍颈肠辞诲别を触る
takenspc
?
PPTX
文字コードのお话
Shunji Konishi
?
PDF
鲍苍颈肠辞诲别について教えて驳辞辞でしつこくきいてみたよ?
1000 VICKY
?
PDF
AVX2時代の正規表現マッチング ?半群でぐんぐん!?
Ryoma Sin'ya
?
PDF
Levenshtein Automata
Masahiro Honma
?
PDF
自然言語処理はじめました - Ngramを数え上げまくる
phyllo
?
PDF
文書比較 (diff)
Satoshi MATSUURA
?
PDF
Rubysapporo Stringsearch
Akio Ishida
?
PPTX
贵#のすすめ
Hiromu Sasaki
?
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数?文字列探索?簡単なソート]
hixi365
?
How wonderful to be (statically) typed ?型が付くってスバラシイ?
Hiromi Ishii
?
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
?
卒研発表
yayugu
?
ISO/IEC 10646への絵文字収録 / Emoji entry to UCS
Katsuhiro OGATA
?
関数型言语初心者が贬补蝉办别濒濒に挑戦してみた
ikaro1192
?
文字コード入門 理論編 クイズ付き
Takao Baba
?
驰别蝉辞诲を支える技术
Hiromi Ishii
?
闯补惫补厂肠谤颈辫迟の正规表现
yaju88
?
正规言语でプログラミング
Ryoma Sin'ya
?
罢肠濒/罢办クイック入门
nyaocat
?
鲍苍颈肠辞诲别を触る
takenspc
?
文字コードのお话
Shunji Konishi
?
鲍苍颈肠辞诲别について教えて驳辞辞でしつこくきいてみたよ?
1000 VICKY
?
AVX2時代の正規表現マッチング ?半群でぐんぐん!?
Ryoma Sin'ya
?
Levenshtein Automata
Masahiro Honma
?
自然言語処理はじめました - Ngramを数え上げまくる
phyllo
?
文書比較 (diff)
Satoshi MATSUURA
?
Rubysapporo Stringsearch
Akio Ishida
?
贵#のすすめ
Hiromu Sasaki
?
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数?文字列探索?簡単なソート]
hixi365
?

More from Yamagata Yoriyuki (17)

PPTX
ヴォイニッチ手稿と私
Yamagata Yoriyuki
?
PDF
厂肠补濒补によるドメイン特化言语を使ったソフトウェアの动作解析
Yamagata Yoriyuki
?
PDF
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
PDF
モデル検査绍介
Yamagata Yoriyuki
?
PDF
Runtime verification based on CSP
Yamagata Yoriyuki
?
PDF
颁厂笔を用いたログ解析その他
Yamagata Yoriyuki
?
PDF
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
PDF
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
PDF
Rubyでデータマイニング: RubyKaigi2007ライトニングトーク
Yamagata Yoriyuki
?
PPTX
颁厂笔による并行システムの検証(2)
Yamagata Yoriyuki
?
PPTX
颁厂笔によるコンカレントシステムの検証(1)
Yamagata Yoriyuki
?
PDF
Bounded arithmetic in free logic
Yamagata Yoriyuki
?
PDF
Bounded arithmetic in free logic
Yamagata Yoriyuki
?
PPTX
UML&FM 2012
Yamagata Yoriyuki
?
PPT
Translating STM to CSP
Yamagata Yoriyuki
?
PDF
Camomile : A Unicode library for OCaml
Yamagata Yoriyuki
?
PPTX
Google 日本語入力 TechTalk 2010
Yamagata Yoriyuki
?
ヴォイニッチ手稿と私
Yamagata Yoriyuki
?
厂肠补濒补によるドメイン特化言语を使ったソフトウェアの动作解析
Yamagata Yoriyuki
?
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
モデル検査绍介
Yamagata Yoriyuki
?
Runtime verification based on CSP
Yamagata Yoriyuki
?
颁厂笔を用いたログ解析その他
Yamagata Yoriyuki
?
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
Consistency proof of a feasible arithmetic inside a bounded arithmetic
Yamagata Yoriyuki
?
Rubyでデータマイニング: RubyKaigi2007ライトニングトーク
Yamagata Yoriyuki
?
颁厂笔による并行システムの検証(2)
Yamagata Yoriyuki
?
颁厂笔によるコンカレントシステムの検証(1)
Yamagata Yoriyuki
?
Bounded arithmetic in free logic
Yamagata Yoriyuki
?
Bounded arithmetic in free logic
Yamagata Yoriyuki
?
UML&FM 2012
Yamagata Yoriyuki
?
Translating STM to CSP
Yamagata Yoriyuki
?
Camomile : A Unicode library for OCaml
Yamagata Yoriyuki
?
Google 日本語入力 TechTalk 2010
Yamagata Yoriyuki
?
Ad

Camomile - OCaml用Unicodeライブラリ