The Middle Chinese (MC) initial consonants *l *m *n are reflected in a pretty straightforward way in our set of languages. The only things to note are:
(1) The reflex of *l in Japanese and Korean may be written as <r> (in fact, these languages don't distinguish between [r] and [l])
(2) In Japanese, the nasals are denasalized (*m>b, *n>d) in older borrowings (the so-called "Go-on" readings)
Examples:
*l
六 'six'
Mandarin: liu4
Cantonese: luk6
Japanese: roku
Korean: ryuk
Vietnamese: lục
*m
明 'bright'
Mandarin: ming2
Cantonese: ming4
Japanese: myou / mei
Korean: myeong
Vietnamese: minh
*n
男 'male'
Mandarin: nan2
Cantonese: naam4
Japanese: nan / dan
Korean: nam
Vietnamese: nam
MC *m developed an allophone *mv in some environments which becomes /m/ in Mandarin and /v/ in Vietnamese, but is otherwise identical:
*mv
文 'writing'
Mandarin: wen2
Cantonese: man4
Japanese: mon / bun
Korean: mun
Vietnamese: văn
The MC initial *ŋ has more diverse reflexes. In Mandarin and Korean it is completely dropped, becoming null /∅/ (which may leave the word with an initial glide). In Cantonese it is sometimes preserved as /ŋ/ and sometimes dropped. Japanese reflects it as /g/.
*ŋ
五 'five', 語 'language'
Mandarin: wu3, yu3
Cantonese: ng5, jyu5
Japanese: go, go
Korean: o, eo
Vietnamese: ngũ, ngữ
The peculiar MC initial *r, whose phonetic realization is not totally clear, is reflected quite differently in each of these languages:
Mandarin: /r/
Cantonese: /j/
Japanese: /n/ (early borrowings - Go-on), /z/ (late borrowings - Kan-on)
Korean: /∅/
Vietnamese: /ɲ/
Example:
*r
人 'person'
Mandarin: ren2
Cantonese: jan4
Japanese: nin / zin
Korean: in
Vietnamese: nhân
Now to create an algorithm:
Firstly, to distinguish *mv we need one language from the set {M V} and one from the set {C J K}, since in the former it becomes like a glide and in the later like a nasal. Conveniently, this allows us to distinguish *r, since M and V have unique reflexes of this sound. If we chose V, we can also distinguish *ŋ, but if we chose M we need to chose J from our second set (since C and K may also reflect *ŋ as null).
Thus we see that the possible combinations are:
- V+C
- V+J
- V+K
- M+J
- If M/V has initial /m/, /n/, /l/, /r/ or /ɲ/, the MC initial is *m, *n, *l, *r (respectively)
- If M/V has initial /w/ or /v/ and C/J/K has initial /m/ or /b/, the MC initial is *mv
- If V has initial /ŋ/, the MC initial is *ŋ
- If M has null initial /∅/ and J has initial /g/, the MC initial is *ŋ