2015年1月25日日曜日

Rôma[jz]i

K:
Omoi tatte kunrei siki / Hepburn siki (to iu ka, dai 2 hyô no uti Hepburn siki ni ataru tuzuri o saiyô sita mono) henkan program o tukutta. Tuide ni Hattori Sirô ga teian sita sin nihon siki ni mo taiô sita. Swift de kaita hutatu me no program da. Sekkaku da kara rômazi de bunsyô o kaite miru. Ima kore wa kunrei siki de kaite ite, hoka no hutatu no hôsiki ni henkan sita mono o sita ni haritukeru koto ni suru.

Mae ni kanagaki o site mita toki ni mo itta kedo, rômazigaki de mo (to iu ka, mazu rômazigaki de) mondai ni naru no ga wakatigaki da. Kono bunsyô no wakatigaki wa ii kagen de, ikkan site iru to wa kagiranai si, kaki kata ni toku ni syutyô ga aru wake de mo nai.

Sate, kunrei siki to sin nihon siki wa sorezore kotonaru on'in kaisyaku ni motozuite kotonaru mozi no tukai kata o site iru. Hepburn siki no mozizukai wa on'in teki to wa ienai tokoro ga aru wake da ga, ima no nihongo no on'in teki keikô o han'ei dekiru kanôsei o motte iru koto wa mae ni kaita.

Kô iu hanasi ni nazimi no nai hito muke ni itte oku to, on'in kaisyaku (sono gengo no oto no taikei ga dô natte iru ka) ni wa yuiitu no tadasii kotae ga aru wake de wa nai. Riron teki wakugumi ni yotte, mata kenkyûsya ni yotte, teizi sareru kaisyaku wa kotonari uru. Sore kara, hitotu no kaisyaku ni yuiitu no seisyohô (mozizukai) ga taiô suru wake de mo nai si, kotonaru kaisyaku ga kanarazu kotonaru mozizukai ni musubituku wake de mo nai.

Izure ni seyo, on'in taikei no ue de no kubetu o kabusoku naku kaki wakeru no ga risô da ga, kakareta rekisi no nagai gengo de wa, musiro kore ga muzukasii. Nihongo no kanagaki de wa, oto no kubetu ga nai no ni kaki wakeru baai ga aru (まじか (¿en serio?) vs. まぢか (muy cerca) nado). Rômazigaki no baai wa, Hepburn siki ga on'in teki kubetu to wa tigau riyû de betu no mozi o tukattari suru ga, sore de mo onazi oto o tigau tuzuri de kaki wakeru yô na koto wa nai. Kanagaki yori wa on'in teki to iu koto ni naru.

H:
Omoi tatte kunrei shiki / Hepburn shiki (to iu ka, dai 2 hyô no uchi Hepburn shiki ni ataru tsuzuri o saiyô shita mono) henkan program o tsukutta. Tsuide ni Hattori Shirô ga teian shita shin nihon shiki ni mo taiô shita. Swift de kaita futatsu me no program da. Sekkaku da kara rômaji de bunshô o kaite miru. Ima kore wa kunrei shiki de kaite ite, hoka no futatsu no hôshiki ni henkan shita mono o shita ni haritsukeru koto ni suru.

Mae ni kanagaki o shite mita toki ni mo itta kedo, rômajigaki de mo (to iu ka, mazu rômajigaki de) mondai ni naru no ga wakachigaki da. Kono bunshô no wakachigaki wa ii kagen de, ikkan shite iru to wa kagiranai shi, kaki kata ni toku ni shuchô ga aru wake de mo nai.

Sate, kunrei shiki to shin nihon shiki wa sorezore kotonaru on'in kaishaku ni motozuite kotonaru moji no tsukai kata o shite iru. Hepburn shiki no mojizukai wa on'in teki to wa ienai tokoro ga aru wake da ga, ima no nihongo no on'in teki keikô o han'ei dekiru kanôsei o motte iru koto wa mae ni kaita.

Kô iu hanashi ni najimi no nai hito muke ni itte oku to, on'in kaishaku (sono gengo no oto no taikei ga dô natte iru ka) ni wa yuiitsu no tadashii kotae ga aru wake de wa nai. Riron teki wakugumi ni yotte, mata kenkyûsha ni yotte, teiji sareru kaishaku wa kotonari uru. Sore kara, hitotsu no kaishaku ni yuiitsu no seishohô (mojizukai) ga taiô suru wake de mo nai shi, kotonaru kaishaku ga kanarazu kotonaru mojizukai ni musubitsuku wake de mo nai.

Izure ni seyo, on'in taikei no ue de no kubetsu o kabusoku naku kaki wakeru no ga risô da ga, kakareta rekishi no nagai gengo de wa, mushiro kore ga muzukashii. Nihongo no kanagaki de wa, oto no kubetsu ga nai no ni kaki wakeru baai ga aru (まじか (¿en serio?) vs. まぢか (muy cerca) nado). Rômajigaki no baai wa, Hepburn shiki ga on'in teki kubetsu to wa chigau riyû de betsu no moji o tsukattari suru ga, sore de mo onaji oto o chigau tsuzuri de kaki wakeru yô na koto wa nai. Kanagaki yori wa on'in teki to iu koto ni naru.

S:
Omoi tatte kunrei siki / Hepburn siki (to iu ka, dai 2 hyô no uci Hepburn siki ni ataru cuzuri o saiyô sita mono) henkan program o cukutta. Cuide ni Hattori Sirô ga teian sita sin nihon siki ni mo taiô sita. Swift de kaita hutacu me no program da. Sekkaku da kara rômazi de bunsyô o kaite miru. Ima kore wa kunrei siki de kaite ite, hoka no hutacu no hôsiki ni henkan sita mono o sita ni haricukeru koto ni suru.

Mae ni kanagaki o site mita toki ni mo itta kedo, rômazigaki de mo (to iu ka, mazu rômazigaki de) mondai ni naru no ga wakacigaki da. Kono bunsyô no wakacigaki wa ii kagen de, ikkan site iru to wa kagiranai si, kaki kata ni toku ni syucyô ga aru wake de mo nai.

Sate, kunrei siki to sin nihon siki wa sorezore kotonaru on'in kaisyaku ni motozuite kotonaru mozi no cukai kata o site iru. Hepburn siki no mozizukai wa on'in teki to wa ienai tokoro ga aru wake da ga, ima no nihongo no on'in teki keikô o han'ei dekiru kanôsei o motte iru koto wa mae ni kaita.

Kô iu hanasi ni nazimi no nai hito muke ni itte oku to, on'in kaisyaku (sono gengo no oto no taikei ga dô natte iru ka) ni wa yuiicu no tadasii kotae ga aru wake de wa nai. Riron teki wakugumi ni yotte, mata kenkyûsya ni yotte, teizi sareru kaisyaku wa kotonari uru. Sore kara, hitocu no kaisyaku ni yuiicu no seisyohô (mozizukai) ga taiô suru wake de mo nai si, kotonaru kaisyaku ga kanarazu kotonaru mozizukai ni musubicuku wake de mo nai.

Izure ni seyo, on'in taikei no ue de no kubecu o kabusoku naku kaki wakeru no ga risô da ga, kakareta rekisi no nagai gengo de wa, musiro kore ga muzukasii. Nihongo no kanagaki de wa, oto no kubecu ga nai no ni kaki wakeru baai ga aru (まじか (¿en serio?) vs. まぢか (muy cerca) nado). Rômazigaki no baai wa, Hepburn siki ga on'in teki kubecu to wa cigau riyû de becu no mozi o cukattari suru ga, sore de mo onazi oto o cigau cuzuri de kaki wakeru yô na koto wa nai. Kanagaki yori wa on'in teki to iu koto ni naru.

2015年1月6日火曜日

Tabla 2

というわけで、かな入力の練習中。まだまだ途轍もなく時間がかかるが、慣れたらローマ字入力よりストロークが少なくなるはずなので、より速くなるはずだ。それに、かな1字1ストローク (濁音・半濁音は2ストローク) というのは、なんだか清々しい。

前の記事で僕は訓令式でローマ字入力していると書いたが、一貫していないことに気づいた。「シャ・シ・シュ・シェ・ショ・チャ・チ・チュ・チェ・チョ」は確かに sya, si, syu, sye, syo, tya, ti, tyu, tye, tyo と入力しているのだが、「ジャ・ジ・ジュ・ジェ・ジョ」は ja, ji, ju, je, jo と打っている。これはヘボン式。「ツ」は tu 「フ」は hu で入れているので、ジャ行だけ例外ということになる。まあ、この方が純訓令式よりストロークが少ないという言い訳は成り立つ。

これは入力方式の話。ストレスなく打ててまともな結果が出ればどんなやり方でも構わないとは言える。しかし、日本語のローマ字表記という問題になると話は別だ。僕も言語研究者のはしくれだから、ヘボン式より訓令式の方が日本語の音韻体系に即した良い方法だと思っている。しかも、後者が内閣訓令 (1954) で優先的に扱われている方式で、国際標準にもなっている (ISO 3602)。これに従わない理由はないはずなのだが、僕も多くの日本人と同様ヘボン式で書くことがほとんどだ。自分の名前に含まれる「シ」は shi で書いているし、勤め先の住所は Fuchu とか Asahi-cho とか書く。で、実はローマ字表記の問題が頭をかすめるたびに自分の中にある理論と実践の齟齬に居心地の悪さを感じていたわけだ。しかし、最近ヘボン式 (というか第2表の部分的適用) で良いのではないかと思うようになった。

一番大きな理由は慣用。数からいえば圧倒的にヘボン式が優勢だ。世の中には音韻的に非常に合理的な正書法を持った言語もあるが、全然そうじゃない言語もある。多少不整合があっても、簡単に覚えられてみんなに受け入れられる書き方の方がいい。ヘボン式は最良の解ではないが許容範囲だろうし、使用実績は十分だ。

もう少し音韻的な面から考えてみる。拗音を「子音 + y」と解釈するか単一の口蓋化子音と解釈するかで説明の仕方が多少変わるが、ここでは後者でやってみる。現代日本語には非口蓋化子音と口蓋化子音の対立がある (直音/拗音)。しかしこれは /i/ の前で中和し、音声的には口蓋化子音で実現される。/s/-/s'/ (口蓋化を ' で表す) を例にとると、こんな感じだ:

/a//i//u//e//o/
/s//sa/ [sa]/Si/ [ɕi]/su/ [sɯ]/se/ [se]/so/ [so]
/s'//s'a/ [ɕa]/s'u/ [ɕɯ]/s'e/ [ɕe]/s'o/ [ɕo]

さて、/i/ の前での子音の実現が口蓋化子音だというのは「シ」「チ」では見えやすい。これは他の子音にも、それほど分かりやすくないかもしれないが、あてはまる。たとえば「タチツテト」と「ナニヌネノ」を繰り返して言ってみよう。「タチ」のところと「ナニ」のところで舌の動きがだいたい同じなのではなかろうか。

中和しているので [ɕi] を si と表記することに問題はない。音声的実現に即して「シャ」と同じ書き方をするのもありだろう (たとえば syi とか shi とか)。ただし、だったら kyi や nyi と書かないと一貫性に欠ける。今のところ、この中和が機能しなくなって /si/-/s'i/ の対立が生まれる気配はなさそうだが、「チ」と「ティ」、「ジ (ヂ)」と「ディ」はもしかしたら音韻化してきているかもしれない。「チ/ティ」の対立について、口蓋化子音の方 [tɕi] を /ti/ と解釈し、非口蓋化子音の方 [ti] に何か別の解釈を施すという手もあるが、今採用している枠組みでは「チ」を /t'i/ として「ティ」を /ti/ と解釈するのが素直だろう。そして、ヘボン式の chi はこの解釈を反映した表記として利用しうる (ti を「ティ」に使うことができる)。

ローマ字の話をここまでずっとかな入力でしてきた。スピードが出ないので、書きながら書きかけの文 (センテンス) を頭が推敲し始める。書いてる途中の文を書き直していると、ちっとも前に進まない。面白い経験だが、疲れる。この記事が全体としてまとまりのない印象を与えるとすれば、多分そのせいだ。

2015年1月1日木曜日

Optional

Swift で注意を引くのが Optional type だ (「オプション型」とか「オプショナル型」とかの訳がある)。大雑把にいえば、当該の型と nil を合わせたものというイメージで、文字列を例にとれば、たとえば文字列を返すべき関数がうまく値を返せないときに nil を返すようにすることができる。しかし Swift は型にうるさい言語だから、ときに文字列ときに nil (これは文字列型ではない) を返すような関数は書けない。なので文字列と nil を含んだ型を使うことになる。ただし、これは単純な文字列型とは異なるので、扱い方も多少ことなる。対話環境で確認してみる。

  1> var a:String = "a" /* String */
a: String = "a"
  2> var b:String? = "b" /* Optional */
b: String? = "b"
  3> println(a)
a
  4> println(b)
Optional("b")
  5> println(b!)
b
  6> a = nil
repl.swift:6:5: error: type 'String' does not conform to protocol 'NilLiteralConvertible'
a = nil
    ^

  6> b = nil
  7>7 b
$R0: String? = nil

オプション型の変数を宣言するときは ? を付ける。変数をそのまま印字すると、文字列そのものではなくて Optional("b") が出力される。文字列を取り出すには ! を付ける必要がある。文字列型の変数 a には nil を代入することはできないが、オプション型の b には代入できる。面倒くさい? 確かに。僕はこの概念には Ocaml で触れて少しは慣れているので有り難みも分かるが、区別の必要があるしタイプ量も増えるので、特に初めての人は面倒に感じるだろう。Swift の開発者もそう思ったのか、! を使わなくても比較演算子が使えたり、nil のチェックを条件にできる if-let 構文が用意されたりしている。ただ、これは痛し痒しで、簡単になる部分もあるが覚えるべきことが増えるという面もある。僕は今回オプション型が直接 == で比較できることを知らずに使ってしまい (つまり文字列のつもりで比較しようとして)、それでもエラーにならないので戸惑った。一方 if-let は nil チェックと unwrap を同時にやってくれる秀逸な構文だと思う。比較演算子と違って、文脈を見ないとどういう型を扱っているのか分からないというようなこともない。他にも使い所の決まった便利な書き方があるようだが、それが学習を複雑化しないことを願うのみだ。

さて、今までずっと「オプション型」という言い方をしてきた。最初に言ったように Optional type の訳で、この optional は名詞だ。それを素直にカタカナ化すれば「オプショナル」ということになる。「オプション」は optional の日本語訳の可能性としてあるだろうか? 意味を考えれば「nil化可型」とか (nullable type といういい方もあるらしい)、「データがないかもしれない型」とか (Haskell では Maybe という型があるらしい)、使えそうにない名前が思い浮かぶ。僕が「オプション」と言っているのは、多分 Ocaml が option と言っている影響だろう。あとは、日本語の名詞として「オプショナル」に馴染みがないからか。まあ、誰かが決めてくれれば良い。

本題から外れるが、これを書いているあいだ何度も「オプチョン」と入力しては消していた。僕はいわゆる訓令式でローマ字入力しているので sy と打たなければならないところを ty と打ってしまうわけだ。もちろん英語の綴りに引きずられた結果だから、こういう目に合うとかな入力擁護派の主張ももっともだと思えてくる。今年の目標としてかな入力に習熟するというのを立ててみようかな。