15

First-time poster on this channel, so please forgive me if I screw anything up...

I'm currently writing a "Japanese Calculator" program as part of a personal project I'm working on which takes rōmaji input and converts the phrase, determines the mathematical expression and spits out the answer in decimal format... Numbers will be written in upper case for example:

ICHI purasu GO mainasu YON purasu ROKU

1 + 5 - 4 + 6, in this case, which will spit out 8 as a final answer...

In my program, if I use a comma after a specific operation and value, the intention is that it will store the value in an interim memory and then the next operation will be acted upon the next value... For example:

ICHI purasu GO, mainasu SAN which could be interpreted as (1 + 5) - 3.

My focus in this question is in the legibility and grammatical correctness in whatever input I give it... I'd like consistency as well as ease of grammar...

Now I've been happy to use プラス and マイナス in their rōmaji forms... but I've been stuck on how to get some sort of suitable legibility with things like multiplication and division... I want to use the equivalents of "multiplied by" and "divided by" but have found that:

With multiplication, for example, "x multiplied by y", I get: x ni y o jōjita

And with division, for example, "x divided by y", I get: x o y de watta

Would these be considered suitable equivalents?

For example, if I wanted to do (3 + 1 - 2) * 6 / 2, and using these two other phrases, and the comma concept I mentioned above, and still make it legibly correct Japanese, would the following be considered a sufficient and legible translation?

SAN purasu ICHI mainasu NI, ni ROKU o joujita o NI de watta

If not, I would appreciate any way of improving this kind of input, so I can implement these into my code and still retain some legibility.

Thanks, or rather... arigatou.

  • @chocolate ごめんなさい括弧の対応とか逆ポーランド記法的読み方への対応が要ると思うので reopen しました – naruto Mar 01 '18 at 03:50
  • カッコは「、」で表す方式にする、って言うから別に要らないと思ったの。。 – Chocolate Mar 01 '18 at 03:56
  • @Chocolate Thank you for considering the comma for parentheses in my concept... I was concerned that it may not read well... If there is a better suggestion whereby I would include terms in parentheses, please let me know. – Eliseo D'Annunzio Mar 01 '18 at 04:08

3 Answers3

29

First of all, let me assume:

  1. You're only interested in the simple four operations (+, -, *, /) and brackets ( )
  2. Multiplication and division have higher priority, e.g., 1 + 2 * 3 is 7, not 9
  3. Of course you want to make the reading unambiguous, taking brackets into consideration

So we want to read something like 1 + 3 * (4 - 1) (=10) but nothing more complicated than this. Actually, there are two programmatic approaches I can think of:

Simple left-to-right approach

The most straightforward way is to simply read each number and symbol from left to right, just as you read "two, times, bracket, one, plus, three, close-bracket". This is what is done every day in math classes at middle school.

  • +: たす tasu or プラス purasu
  • -: ひく hiku or マイナス mainasu
  • *: かける kakeru
  • /: わる waru
  • (: かっこ kakko
  • ): とじかっこ toji-kakko or かっことじ kakko-toji

So 1 + 3 * (4 - 1) would be:

いち プラス さん かける かっこ よん マイナス いち かっことじ
ICHI purasu SAN kakeru kakko YON mainasu ICHI kakko-toji

Although uninteresting, this should be very easy to understand, and actually the natural one, IMO.

"(Un)natural" approach

What if you want a more "natural" and grammatical Japanese sentence? If you know reverse Polish notation (RPN), it is known that the Japanese language can read math expressions just like RPN. And the merit of this approach is that you don't have to pronounce brackets at all.

For example, 1 + 3 is "the sum of one and three" in "natural" English. In "natural" Japanese, this can be read as:

いち さん
ICHI to SAN no wa

...just like its reverse-Polish representation, 1 3 +, except that you need to insert と to ("and") between the numbers and の no ("-'s") before the operator. You can use these four words:

  • 和 わ wa "sum" +
  • 差 さ sa "difference" -
  • 積 せき seki "product" *
  • 商 しょう sho "quotient" /

For a little more complicated example, 2 * (1 + 3), which is 2 1 3 + * in RPN, would be:

に と いち と さん の わ の せき
に と、 (いち と さん の わ) の せき
NI to, ICHI to SAN no wa no seki

(Brackets and commas are technically redundant and optional, but they definitely help humans.)

1 + 3 * (4 - 1), or 1 3 4 1 - * + in RPN, would be:

いち と さん と よん と いち の さ の せき の わ
いち と (さん と (よん と いち の さ) の せき) の わ

It seems that you're using a kind of stack memory in your calculator, so I think this approach should express the internal representation of your calculator, too. ( pushes onto the stack, pops from the stack.) Technically, now you can construct the reading of math expressions of arbitrary depth. However, without brackets, note that the last example is very confusing even to native speakers. It's not possible to convert very complicated math expressions into natural sentences anyway. Not possible in English, either. You may want to stick to the left-to-right reading, although uninteresting.

naruto
  • 285,549
  • 12
  • 305
  • 582
  • Oops, maybe you're writing a calculator where there are no brackets nor a stack, and `*`/`/` and `+`/`-` have the same priority? Then you can just use the simple left-to-right reading. – naruto Mar 01 '18 at 05:45
  • 1
    I think left-to-right reading may be the way to go... Thank you... – Eliseo D'Annunzio Mar 01 '18 at 06:45
  • @Eliseod'Annunzio Yes, on second thought the latter half of my answer is pointless to you... sorry for that. – naruto Mar 01 '18 at 06:53
  • No apologies needed, Naruto-san. As much as RPN is an interesting approach, my preferred result would not be in the form of a stack calculator... I plan on using this program as a foundation for a larger programming compiler later on with a larger focus on grammar. – Eliseo D'Annunzio Mar 01 '18 at 07:14
  • 4
    @naruto It may be pointless to the OP, but I very much enjoyed learning about it :) – user3856370 Mar 01 '18 at 16:30
  • 1
    Wait a second, @user3856370... I never said it was pointless... While I know RPN uses a similar structure to the SOV grammar structure in Japanese, I required a simpler approach that I can later employ in a much larger system... I may yet consider using the RPN method in my next iteration of the project... – Eliseo D'Annunzio Mar 01 '18 at 22:34
  • 2
    As a programmer, I love how you explained the connection between Japanese verbs and reverse Polish notation! – Nayuki Mar 01 '18 at 23:43
  • @Eliseod'Annunzio I wasn't accusing you of being ungrateful. I was just responding to naruto's comment. No offense was intended. – user3856370 Mar 02 '18 at 07:51
  • @Nayuki Not that there are any verbs here (apart from the final "equals", which has been suppressed in these examples). These are all numerals, particles and nouns. – Arthur Mar 02 '18 at 11:29
6

Japan uses 「足す」(tasu:plus)「引く」(hiku:minus)「掛ける」(kakeru:multiplied by)「割る」(waru:divided by). For example, 2+2 in words is "ni tasu ni", 2-2 is "ni hiku ni", 2x2 is "ni kakeru ni", 2/2 is "ni waru ni".

If it is assumed that the person using the calculator program is a native Japanese speaker, I think they will be more comfortable using those four terms rather than "purasu""mainasu".

Halfway Dillitante
  • 1,285
  • 7
  • 10
  • Thanks for the preferred usage... I wanted something as native as possible... "purasu" and "mainasu" seemed so generic and well... too Western for my liking... – Eliseo D'Annunzio Mar 01 '18 at 03:56
  • @Eliseo of course, your code could handle both forms :) – Pedro A Mar 01 '18 at 21:14
  • @Hamsterrific, all in due time! I'm using this initial program to work out the methodology for extrapolating this to a full language compiler... So once I have the initial version worked out, I may consider going further with katakana forms where required and maybe enforce the SOV grammar/RPN format for number manipulation... – Eliseo D'Annunzio Mar 01 '18 at 23:48
4

(3 + 1 - 2) * 6 / 2

How about...

SAN tasu ICHI hiku NI, kakeru ROKU waru NI

(or SAN purasu ICHI mainasu NI, kakeru ROKU waru NI)


We usually read the parentheses (in maths) as "kakko ... kakko tojiru", as in:

(3 + 1 - 2) * 6 / 2

kakko SAN tasu ICHI hiku NI kakko tojiru kekeru ROKU waru NI

though it might look a bit wordy...

Chocolate
  • 62,056
  • 5
  • 95
  • 199
  • Happy to use tasu, hiku, kakeru and waru... That's fantastic... Thank you. – Eliseo D'Annunzio Mar 01 '18 at 03:55
  • よく見たら100円ショップの電卓的な計算手法ぽいので、この回答とdupeになってたやつで十分でした…深く考えすぎました…すみません – naruto Mar 01 '18 at 05:53
  • Is "100円ショップ" the Japanese equivalent of a "Dollar Store" (aka discount store)? Just curious, @Naruto-san... – Eliseo D'Annunzio Mar 30 '22 at 05:05