2013-07-19 64 views
0

是否可以使用英語以外的語言編寫Java? 我不問有關可能以其他語言顯示的日誌消息。 如果可能的話,它需要一個不同的編譯器(或具有不同語言支持的JDK)。非英語語言編碼Java,例如西班牙語或日語

+3

你究竟是什麼意思?一個翻譯版本,其中每個對象/方法/ ...被翻譯成例如西班牙語? –

+1

答案是**否**。 – Maroun

+0

您的意思是能否爲您的方法命名,或者是語言和JDK的翻譯(「標準函數」,如'System.out.println')? –

回答

3

Go through this para if you know some theory about compilers otherwise read next para。 編寫編譯器時,已經預先定義了關鍵字和其他符號,詞法分析器匹配它們並將它們存儲在符號表中,然後在最終開發機器代碼之前遵循後續階段。

您的問題的答案是NOYES

NO因爲James Gosling and his team開發了帶有英文關鍵字的Java JDK,因此如果您使用的是他的JDK,則必須遵循這一點。

YES因爲您可以使用不同的語言開發自己的具有不同關鍵字的Java編譯器。但絕對不會將其稱爲Java編譯器,而是另一種使用OOPS概念的編譯器。

+2

另一個解決方案可以是編寫一個「翻譯器」。 「翻譯」採用java-Spanish並在java中「翻譯」它。例如,使用ANTLR,您可以採用Java語法,用西班牙語翻譯他的令牌,然後使用西班牙Java。從Java-Spanish語法中,您可以生成一個解析器,該解析器將西班牙Java作爲輸入並生成輸出標準Java。 – Fedy2

+0

是的,'Bootstrapping'是另一種選擇。 Thanks @ Fedy2 –

+0

你應該考慮使用* italics *來代替'code statements',它代表了代碼和關鍵字:)。 –

-1

。你可以隨意命名標識符,只要它們符合語言規範是合法的,但關鍵字,API方法等總是相同的。它們應該以其原始形式使用。因此,您不能用西班牙語替代文字throw代替Java中的throw

可能是Grammars

-1

這是不可能的。 Java代碼只能用英文寫入。

+0

從技術上講,除非您編寫自己的解析器,否則只能翻譯令牌。 –

2

我有一個建議。您可以定義一個字映射來將所有可用的可接受的java關鍵字映射到您的語言。

public => publique 
static => statique 

這樣子。然後做文字處理。在背景中將您的語言轉換爲英語並使用英語生成Java文件。編譯這些java類。

我對這種方法沒有多少信心。這可能會帶來一個小小的想法。如果我正在談論別的東西而不是你正在尋找的東西,請原諒我。如果你有任何想法,請讓我知道。我對這個項目感興趣。

+0

我們在導入其他類時會遇到一些問題,因爲其他類名將以英文顯示。你需要建立單詞字典。 –

相關問題