CamomileOCaml用Unicodeライブラリ                 山形賴之           2011年12月29日                    京大
AgendaUnicodeとは?OCamlとは? Camomile
AgendaUnicodeとは?OCamlとは? Camomile
A   U+0041   Ậ   U+1EAC                 = U+0041 + U+0302                 + U+0323    U+3042あ            既   U+65E2ᚠ   U+1...
文字集合は民族の財産だ!    勝手に統合するな!Code Set Independeceにこだわる
Character, not glyphAAAAA ←すべて同じ文字原則:文字という論理的な対象をコード論理的とは?  ≒意味  でも、既≠旣とかわかりにくい
意味                 士≠土                         抽象的な構造                   既≠旣とめ、はね、など    具体的な形
BMP:よく使われる文字0 10000 20000 30000               E0000 F0000    10FFFF            拡            張                             ...
A Ω 語                41 CE A9 E8 AA 9E F0 A0 80 94 A Ω 語 0041 03A9 8A9E D840 DC14   A         Ω        語         00000041 ...
Ậ=Ậ  1EAC = A + ̂+ ̣  0041   0302   0323 = A + ̣+ ̂  0041   0323   0302
NFD:できるだけ分解    NFD(Â+ ̣)=A + ̣+ ̂NFC:できるだけ合成    NFC(A + ̂+ ̣)= ẬNFKD,NFKC:    NFKD(カ)= カ    NFKD(Dž)= D + z + ̆
Unicode Algorithm• Unicode collation algorithm (UCA)• Case mapping algorithm• Bidirectional algorithm (BIDI)
AgendaUnicodeとは?OCamlとは? Camomile
Lisp,Scheme,Erlang       ML系言語        OCaml        Haskell         F#         Scala
OCaml vs Haskell• 関数型言語  – 副作用のないプログラミングスタイルを奨励• Hindley-Milner type systemがベース  – 強い静的型付け  – 型推論  – 多相型
OCaml vs Haskell(続き)      OCaml             HaskellEager              Lazy副作用あり              モナドbegin … end etc.   オフサイドルー...
AgendaUnicodeとは?OCamlとは? Camomile
Camomile•   基本データ型•   文字コード変換•   正規化•   Unicode Algorithms    – UCA (文字列照合)    – Case mappings• 正規表現
サイト• Github / yoriyuki / Camomile• 課題  – ulib  – Unicode 6.X対応  – まともな正規表現エンジン  – バグ、バグ、バグ…
Upcoming SlideShare
Loading in...5
×

Camomile - OCaml用Unicodeライブラリ

1,069

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,069
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Camomile - OCaml用Unicodeライブラリ

  1. 1. CamomileOCaml用Unicodeライブラリ 山形賴之 2011年12月29日 京大
  2. 2. AgendaUnicodeとは?OCamlとは? Camomile
  3. 3. AgendaUnicodeとは?OCamlとは? Camomile
  4. 4. A U+0041 Ậ U+1EAC = U+0041 + U+0302 + U+0323 U+3042あ 既 U+65E2ᚠ U+16A0 旣 U+65E3
  5. 5. 文字集合は民族の財産だ! 勝手に統合するな!Code Set Independeceにこだわる
  6. 6. Character, not glyphAAAAA ←すべて同じ文字原則:文字という論理的な対象をコード論理的とは? ≒意味 でも、既≠旣とかわかりにくい
  7. 7. 意味 士≠土 抽象的な構造 既≠旣とめ、はね、など 具体的な形
  8. 8. BMP:よく使われる文字0 10000 20000 30000 E0000 F0000 10FFFF 拡 張 Private 漢 Zone 字 タグ Plane 1: 特殊記号、歴史的な文字
  9. 9. A Ω 語 41 CE A9 E8 AA 9E F0 A0 80 94 A Ω 語 0041 03A9 8A9E D840 DC14 A Ω 語 00000041 000003A9 0000819E 00020014
  10. 10. Ậ=Ậ 1EAC = A + ̂+ ̣ 0041 0302 0323 = A + ̣+ ̂ 0041 0323 0302
  11. 11. NFD:できるだけ分解 NFD(Â+ ̣)=A + ̣+ ̂NFC:できるだけ合成 NFC(A + ̂+ ̣)= ẬNFKD,NFKC: NFKD(カ)= カ NFKD(Dž)= D + z + ̆
  12. 12. Unicode Algorithm• Unicode collation algorithm (UCA)• Case mapping algorithm• Bidirectional algorithm (BIDI)
  13. 13. AgendaUnicodeとは?OCamlとは? Camomile
  14. 14. Lisp,Scheme,Erlang ML系言語 OCaml Haskell F# Scala
  15. 15. OCaml vs Haskell• 関数型言語 – 副作用のないプログラミングスタイルを奨励• Hindley-Milner type systemがベース – 強い静的型付け – 型推論 – 多相型
  16. 16. OCaml vs Haskell(続き) OCaml HaskellEager Lazy副作用あり モナドbegin … end etc. オフサイドルール独自機能 独自機能 モジュール タイプクラス オブジェクト指向
  17. 17. AgendaUnicodeとは?OCamlとは? Camomile
  18. 18. Camomile• 基本データ型• 文字コード変換• 正規化• Unicode Algorithms – UCA (文字列照合) – Case mappings• 正規表現
  19. 19. サイト• Github / yoriyuki / Camomile• 課題 – ulib – Unicode 6.X対応 – まともな正規表現エンジン – バグ、バグ、バグ…
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×