2010-10-14 20 views
9

यह किसी भी चीज से अधिक जिज्ञासा है: क्या एक प्रोग्रामिंग भाषा मौजूद है जो एएससीआईआई के बजाए यूनिकोड का उपयोग करके चर, कार्यों और वर्गों को नामित करने की अनुमति देती है (बेशक, विशेष वर्णों के लिए ' + ')? क्या किसी भी लोकप्रिय भाषा के लिए इसका समर्थन है?यूनिकोड आधारित प्रोग्रामिंग भाषा

इसके अलावा, यदि कोई सामान्य भाषा यूनिकोड का समर्थन करती है, तो क्या मौजूदा एपीआई को उपयोगकर्ता की अपनी पसंद की भाषा में बदलने का कोई तरीका है? ऐसा लगता है कि प्रोग्रामर को अपनी भाषा में एपीआई सीखने की क्षमता देना उपयोगी होगा। मैं एक मानक एपीआई (उदाहरण के लिए बढ़ावा देने के लिए) डाउनलोड करने और फिर मानक अनुवाद मैपिंग डाउनलोड करने और फिर मेरी मूल भाषा में प्रोग्राम करने में सक्षम होने की कल्पना करता हूं।

+8

मैं इस बात से सहमत नहीं हूं कि आपकी अपनी भाषा में एपीआई सीखना उपयोगी है। लगभग कोई एपीआई इसका समर्थन नहीं करता है, इसलिए आप तुरंत अपने पैरों को अंग्रेजी भाषा के साथ गीला कर लेंगे। बीटीडब्ल्यू, एक्सेल सूत्रों में फ़ंक्शन नामों का अनुवाद किया गया है। अगर आप एक ही भाषा/संस्करण दोनों का उपयोग नहीं कर रहे हैं तो यह एक्सेल सूत्रों के बारे में किसी से बात करने के पीछे पीछे एक शाही दर्द बनाता है। –

+4

क्या आप एक उचित आधुनिक और पेशेवर प्रोग्रामिंग भाषा का नाम दे सकते हैं जो * नहीं * है? (PHP पेशेवर के रूप में नहीं गिना जाता है :)) – Timwi

+4

मुझे संदेह है कि इस तरह की भाषा के लिए इसका अर्थपूर्ण उपयोग होगा। बस कल्पना करें, आपके पास ऐसी भाषा है जहां एक अंग्रेजी उपयोगकर्ता लिखता है "अगर 5 से अधिक var तो कुछ कार्य करें()" और दूसरा जर्मन में लिखता है "wenn var größer als 5 dann mache irgendeinefunktion"। मैं कोड लिखना उपयोगी नहीं है जहां variablenames चीनी हैं। एक भाषा को सभी के लिए बराबर होना चाहिए और यदि आप प्रोग्राम करना चाहते हैं, तो कुछ अंग्रेजी मूल रूप से अनिवार्य है (मैं जर्मन हूं) यह प्रोग्रामिंग को हर किसी के लिए आसान बनाता है, न कि स्थानीय लोगों के लिए सीमित दर्शक – Tseng

उत्तर

6

जैसा कि आप अन्य उत्तरों से देख सकते हैं, अधिकांश आधुनिक भाषाएं इसे पर्ल, पायथन, गो, रुबी, जावा, सीए, लिस्प, फोर्टेस, एडीए, और कई अन्य प्रकारों सहित अनुमति देती हैं। सी और सी ++ नहीं करते हैं, लेकिन वे आधुनिक नहीं हैं।

C♯ के बारे में, MSDN से:

इस खंड में दिए गए पहचानकर्ता के लिए नियमों को यूनिकोड स्टैंडर्ड अनुबंध द्वारा सिफारिश की उन लोगों के लिए बिल्कुल अनुरूप 15


के रूप में एक API परिवर्तित करने के लिए एक चुनी हुई भाषा के लिए - यह व्यवहार्य नहीं है। आपको एक अनुवादक की आवश्यकता होगी जो प्रत्येक विधि, परिवर्तनीय और कक्षा के नाम की व्याख्याओं और अर्थों को समझता है और सही ढंग से अनुवाद करता है - यह कोड में चुनी गई भाषा के पात्रों का उपयोग करने के समान नहीं है।

+0

मुझे विश्वास है कि रूबी भी। – Ikaso

+0

जहां तक ​​कनवर्ट करने वाली एपीआई दूसरी भाषा में है। मेरा मतलब स्वचालित मशीन अनुवाद को इंगित करने का मतलब नहीं है। इसके बजाय, अगर मैं चीनी था, तो मैं कुछ मानक स्वीकार्य * एपीआई-त्वचा * के संयोजन के साथ बूस्ट का उपयोग करना चाहता हूं जो बूस्ट एपीआई को चीनी में परिवर्तित करता है। इस तरह सीखना बहुत आसान होगा। अनुमोदित, अंग्रेजी स्पीकर के साथ बात करना थोड़ा मुश्किल होगा, लेकिन मुझे लगता है कि एपीआई-त्वचा अन्य दिशाओं के अनुवाद के लिए भी अनुमति देगी। इसके अलावा, जब औसत चीनी प्रोग्रामर प्रोग्रामिंग के बारे में बात कर रहा है, तो वह शायद एक और चीनी व्यक्ति से बात कर रहा है। – JnBrymn

+0

जो भाषा आप सोचते/बोलते हैं उसमें कोड लिखना एक लाभ आईएमई नहीं है, क्योंकि यह तकनीकी शर्तों को एक तकनीकी अर्थ देने की अनुमति देता है जो शर्तों के नियमित अर्थ से नहीं होता है, दोनों आमतौर पर ढीले रिश्ते से थोड़ा अधिक होता है। –

3

एडा (दूसरों के बीच) यूनिकोड का उपयोग कर अंतर्राष्ट्रीयकृत पहचानकर्ताओं की अनुमति देता है।

हालांकि, मेरी व्यक्तिगत राय है कि सहयोग को प्रोत्साहित करने के लिए सॉफ़्टवेयर को एकल, सार्वभौमिक रूप से समझने योग्य और पर्याप्त सरल भाषा (अंग्रेज़ी, स्पष्ट रूप से) का उपयोग करके लिखा जाना चाहिए, कोड की समझदारी और पुन: प्रयोज्यता सुनिश्चित करना।

+0

एकल, सार्वभौमिक रूप से समझने योग्य और पर्याप्त सरल ... अंग्रेजी स्कोर 3 में से 0.5 में से। (एकल के लिए 0, पर्याप्त सरल के लिए 0.5) –

+1

@ कोटिंस्की: अंग्रेजी सार्वभौमिक रूप से समझने योग्य (सबसे व्यापक भाषाओं में से निश्चित रूप से, और निश्चित रूप से तकनीकी लोगों के बीच सबसे व्यापक रूप से बंद है - http://meta.stackexchange.com/questions/ 13676/is-english-required-on-stack-overflow में कुछ अच्छा डेटा है)। और जबकि अंग्रेजी * जटिल है, * सभी * प्राकृतिक भाषाएं मूल रूप से जटिल हैं - और अंग्रेजी सबसे खराब नहीं है (उदाहरण के लिए जर्मन व्याकरण, बहुत बड़ा है और इसमें अधिक बुरा कोने के मामले हैं)। – delnan

+0

@ kotlinski यह निश्चित रूप से व्यक्तिपरक है। मेरी राय में, जब मुझे पता है या अतीत में मैंने सीखा है, तो जटिलता और आसानता इस तरह है: अंग्रेजी <नीदरलैंड <जर्मन <रूसी <चेक। चेक मेरी मातृभाषा है और मैं विदेशियों का सम्मान करता हूं जो इसे क्रंच कर सकते हैं। दूसरी ओर, अंग्रेजी सबसे सरल लगता है। एक बार मैंने चीनी में लिखे गए एडा स्रोत कोड को देखा ... मेरे पास कोई सुराग नहीं था कि क्या चल रहा था! :-) –

1

जावा में यह सुविधा है।

1

सामान्य लिस्प के कुछ कार्यान्वयन इस अनुमति देंगे। AFAIK भाषा विनिर्देश इसे मना नहीं करता है या इसकी आवश्यकता नहीं है (इसे केवल मूल ASCII वर्ण सेट की आवश्यकता होती है)।

2

डेल्फी में संस्करण 200 9

2

जावास्क्रिप्ट में यह सुविधा है।

1

टीसीएल आपको कमांड और वेरिएबल नामों के लिए यूनिकोड वर्णों का उपयोग करने की अनुमति देता है, हालांकि उन्हें चर नामों से बचने की अनुशंसा की जाती है क्योंकि शॉर्टकट सिंटैक्स इस समय का सामना नहीं करता है (यानी, आपको इसके बजाय फॉर्म [set Ω] का उपयोग करना होगा )।

2

.Net यूनिकोड का समर्थन करता है और मैं प्रतिदिन सी # यूनिकोड चर के साथ काम कर रहा हूं।

2

सी #, जावा, पायथन 3, जहां तक ​​मुझे पता है, सभी यूनिकोड आधारित प्रोग्रामिंग हैं।

मुझे उपरोक्त पायथन से ऊपर कोई नहीं मिला, इसलिए मैंने इसे जोड़ा।पायथन में एक फंतासी सुविधा है: सबकुछ (फ़ंक्शन, क्लास, मॉड्यूल, वेरिएबल, क्लास इंस्टेंस) ऑब्जेक्ट है और प्रत्येक ऑब्जेक्ट इसका वर्णन करने के लिए एक दस्तावेज़ संलग्न कर सकता है। यह सुविधा कोड व्यवस्थित करने और स्क्रिप्ट को अंतःक्रियात्मक रूप से निष्पादित करने के लिए उपयोगी हो सकती है। उदाहरण के लिए:

# Python code in interactive mode 
>>> def MyFunc(): 
    '''This is self-included document. 
It can be write in multi lines.''' 
    print('foobar') 
>>> print(MyFunc.__doc__) 
This is self-included document. 
It can be write in multi lines. 
>>> MyFunc() 
foobar 
1

योजना, PLT रैकेट और लिस्प फ्लेवर्ड Erlang सभी यूनिकोड पहचानकर्ता (उपसर्ग वाक्य रचना करने के लिए सरल धन्यवाद दिया)

0

पर्ल के लिए अनुमति देते हैं और जाओ दोनों पूर्ण यूनिकोड पहचानकर्ता अनुमति देते हैं। पर्ल को use utf8; घोषणा की आवश्यकता है, लेकिन जाओ यह स्वचालित रूप से करता है।

विभिन्न चिंताओं के लिए UAX#31: Unicode Identifier and Pattern Syntax देखें।

सामान्य रूप से, एक पहचानकर्ता पैटर्न ^\p{ID_Start}\p{ID_Continue}*$ से मेल खाना चाहिए, हालांकि भाषाएं इसमें शामिल होने के लिए स्वतंत्र हैं। उदाहरण के लिए, जावा मुद्रा प्रतीकों (\p{Sc}) जोड़ता है, जिसमें $ शामिल हैं।

0

Swift पर विचार करें, 2014 में एप्पल द्वारा शुरू कोड स्निपेट है:

वर 国 = "美国"

सबसे अच्छा एक के लिए अपनी खोज के साथ गुड लक!

+0

देश = अमेरिका? : पी मेरा कांजी थोड़ा जंगली है। – JnBrymn

+0

इसे पढ़ने में थोड़ी देर लग गई क्योंकि 'var 國 =" 美國 "' 国 國 (或 → 玉) के लिए सरलीकृत है – Hector

संबंधित मुद्दे