প্রোগ্রামিংয়ের ভাষাগুলি কি কঠোর বা আলগা হওয়া উচিত? [বন্ধ]


14

পাইথন এবং জাভাস্ক্রিপ্টে, আধা-কলোনগুলি alচ্ছিক।

পিএইচপি-তে, অ্যারে-কীগুলির চারপাশে উদ্ধৃতিগুলি alচ্ছিক ( $_GET[key]বনাম $_GET['key']) হয়, যদিও আপনি এগুলি বাদ দিলে এটি প্রথমে সেই নামটির দ্বারা ধ্রুবক সন্ধান করবে। এটি ব্লকগুলির জন্য 2 টি পৃথক শৈলীর অনুমতি দেয় (কোলন, বা ব্রেস সীমিত)।

আমি এখন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করছি এবং আমি এটি কতটা কঠোর করা উচিত তা সিদ্ধান্ত নেওয়ার চেষ্টা করছি। এমন অনেকগুলি ক্ষেত্রে রয়েছে যেখানে অতিরিক্ত চরিত্রগুলি সত্যই প্রয়োজনীয় নয় এবং অগ্রাধিকারের কারণে দ্ব্যর্থহীনভাবে ব্যাখ্যা করা যেতে পারে, তবে আমি ভাবছি যে আমি এখনও তাদের প্রয়োগ করব কিনা বা ধারাবাহিকতা উত্সাহিত করব না।

আপনি কি মনে করেন?


ঠিক আছে, আমার ভাষা অভিনব টেম্পলেট করার মতো ভাষা হিসাবে কোনও প্রোগ্রামিং ভাষা নয়। হামল এবং জ্যাঙ্গো টেম্পলেটগুলির মধ্যে ক্রস জাতীয় । আমার সি # ওয়েব ফ্রেমওয়ার্কের সাথে ব্যবহার করার উদ্দেশ্যে এবং এটি খুব এক্সটেনসিবল বলে মনে হচ্ছে।


22
এটি একটি পবিত্র যুদ্ধের জন্য একটি বিষয়।

1
পাইথনিস্টাস সেমিকোলনের ব্যবহারকে নিরুৎসাহিত করে। সত্যই, আমি নিশ্চিত নই যে এগুলি আদৌ প্রয়োজন কিনা - কেবলমাত্র প্রতি লাইনে একাধিক বক্তব্যকে মঞ্জুরি দেওয়ার জন্য, যা কষ্ট না করে সম্পূর্ণ এড়ানো যায়। সুতরাং ... আমি কঠোর ভাষার পক্ষে। তবে, কখনও কখনও আপনি কোড বিশ্লেষণ সরঞ্জাম, যেমন স্টাইলকপ সহ কোনও ভাষার বাইরে জিনিস প্রয়োগ করতে পারেন।
কাজ

1
পিএইচপি অ্যারে কীগুলির জন্য উদ্ধৃতিগুলি notচ্ছিক নয়। তারা পিএইচপি 2 এ ছিল, কিন্তু পরবর্তী সংস্করণগুলি তখন স্বতঃ-সংজ্ঞায়িত ধ্রুবক। তারা হয় অননুমোদিত মৌলিক স্ট্রিং ক্ষেপক মধ্যে "..$_GET[raw].."অবশ্য।
মারিও

1
@ র‌্যাল্ফ: বিধিগুলি কিছুটা জটিল। এটি লেখার জন্য সঠিক "xx$_GET[raw]xx"- আপনি যদি কোঁকড়ানো ধনুর্বন্ধনী ব্যবহার করতে শুরু করেন তবে কীটি অবশ্যই "xx{$_GET['raw']}xx"উদ্ধৃতিতে আবদ্ধ থাকতে হবে । যদি কোঁকড়া ধনুর্বন্ধনী ব্যবহার করা হয় তবে সাধারণ পিএইচপি পার্সার এটি পরীক্ষা করে এবং কঠোর বাক্য গঠন প্রয়োগ করে। এটি কেবল তার জন্য "$_GET[x]"কীটিকে কাঁচা স্ট্রিং হিসাবে ধরা হয় এবং এটি একটি কঠোর নিয়মও, পিএইচপি ত্রুটিকে বিশ্লেষণ করে "$_GET['x']"
মারিও

2
@ মারিও: আমাদের এই কথোপকথনটি হ'ল এটির অর্থ হ'ল অ্যারে কীগুলি পরিচালনা করার পদ্ধতিতে কিছুটা অস্পষ্টতা এবং বিভ্রান্তি রয়েছে। এটি স্ট্রিংয়ের অভ্যন্তরে মনে হচ্ছে, এটি দ্ব্যর্থহীন তবে অসামঞ্জস্যপূর্ণ (আপনি ইতিমধ্যে স্ট্রিংয়ের সময় উদ্ধৃতিগুলি ব্যবহার করতে পারবেন না, যদি না আপনি কোঁকড়া ধনুর্বন্ধনী ব্যবহার না করেন, তবে আপনাকে অবশ্যই করতে হবে, তবে বাইরে আপনার হওয়া উচিত)। এবং স্ট্রিংগুলির বাইরে, "সাধারণ" পিএইচপি ... ভাল, এটি এর মতো অদ্ভুত বাজে কাজ করে।
এমপেন

উত্তর:


19

বিভিন্ন ধরণের ভাষার বিভিন্ন ব্যবহার রয়েছে, সুতরাং এই প্রশ্নের উত্তরটি আপনার কী ব্যবহার করছে তা নির্ভর করে।

উদাহরণস্বরূপ, পার্ল একটি খুব শিথিল ভাষা এবং আমি দ্রুত ফিক্সআপ বা নম্বর ক্রাঞ্চিং স্ক্রিপ্টগুলি লেখার জন্য এটি খুব দরকারী বলে মনে করি। শক্ত মজবুত প্রকল্পগুলির জন্য আমি সি # ব্যবহার করি।

লক্ষ্য ব্যবহারের জন্য আপনার সঠিক ব্যালেন্সটি পাওয়া দরকার। এটি যত বেশি কঠোর হয় কোডটি লেখার জন্য আপনাকে যত বেশি সময় ব্যয় করতে হবে ততই আপনি আরও বেশি দৃust়তা, পুনরায় ব্যবহারযোগ্যতা এবং বজায় রাখা সহজতর হন।


26

আমি প্রোগ্রামিং ভাষায় যা সন্ধান করি (স্ক্রিপ্টিং ভাষার বিপরীতে) এটি ধারাবাহিকতা এবং শক্তিশালী টাইপিং।

বর্তমান প্রোগ্রামিং ভাষাগুলিতে অস্পষ্ট না হয়ে নির্দিষ্ট জায়গায় উদাহরণস্বরূপ সেমিকোলনটি বাদ দেওয়া সম্ভব (কোনও {}ব্লকের সর্বশেষ প্রকাশটি একটি)। যদি কোনও প্রোগ্রামিং ল্যাঙ্গুয়েজ আপনাকে এই ক্ষেত্রে অক্ষরগুলি বাদ দিতে দেয় তবে একজন প্রোগ্রামার এখন অতিরিক্ত সমস্যা রয়েছে; সাধারণ ভাষার সিনট্যাক্সের শীর্ষে তিনি এখন জানতে হবে কোন ক্ষেত্রে সিনট্যাক্সের কিছু অংশও বাদ দিতে দেওয়া হচ্ছে।

প্রোগ্রামার কোডটি লেখার জন্য এই অতিরিক্ত জ্ঞান কোনও সমস্যা নয়, তবে এটি পরবর্তী সময়ে (মূল লেখক সহ কিছু সময়ের পরে) বিদ্যমান কোডটি ব্যাখ্যা করতে গেলে যে কারও কাছে এটি বোঝা হয়ে যায়।

আপনার পিএইচপি উদাহরণটি কোনও প্রোগ্রামে সূক্ষ্ম বাগের সম্ভাবনাটি খোলে যখন keyএকই প্রসঙ্গে ধ্রুবক যুক্ত করা হবে। সংকলকটি জানার কোনও উপায় নেই যা বোঝানো হয়নি, তাই সমস্যাটি কেবল সংকলন সময়ের পরিবর্তে রানটাইমে স্পষ্ট হয়ে ওঠে।


1
সম্মত হন, আপনার বিকাশকারীদের জন্য সম্ভাবনা সীমাবদ্ধ করা উচিত: আরও সম্ভাব্য => আরও চিন্তা করা প্রয়োজন (আমি কি এই পথে বা সেভাবে এগিয়ে যেতে পারি) => প্রকৃত কাজ করার জন্য কম সময়
কেমোদা

কোনও ভাষার সিনট্যাক্সের সাথে অন্তর্নিহিত ধরণের কাস্টিংয়ের অভাব কী তা আমি দেখতে ব্যর্থ হয়েছি।
ড্যান_ওয়াটারওয়ার্থ

5
এছাড়াও, আপনি যখন পড়েন তখন $_GET[key]কিছুই জানেন না। আপনি সম্পূর্ণ প্রকল্পটি গ্রেপ্তার করে কেবল কেবল keyস্থির কিনা তা জানতে to এই জিনিসটি 0.5 সেকেন্ডের লেখার সাশ্রয় করে এবং পড়তে 20 সেকেন্ড সময় নেয়।
মোশে রেভাঃ

যদি আপনার ভাষা আপনাকে কোনও পার্থক্য ছাড়াই অপশন দেয়, কোডিং-স্টাইল - কোডড হোক বা না হোক
সেগুলির মধ্যে

11

প্রতিটি জায়গাতেই যেখানে কিছুটা অস্পষ্টতা রয়েছে, প্রোগ্রামারটির প্রকৃত অর্থ কী তা অনুমান করার জন্য কম্পাইলারের কিছু উপায় থাকতে হবে। যতবারই এটি ঘটে, প্রোগ্রামারটির সত্যিকার অর্থে আলাদা কিছু বোঝার সুযোগ রয়েছে, তবে অস্পষ্টতা-সমাধানের নিয়মটি বাতিল হয়নি।

যৌক্তিকভাবে সঠিক কোড লেখা ইতিমধ্যে শক্ত hard সিনট্যাক্টিকাল অস্পষ্টতা যুক্ত করা পৃষ্ঠতলে "বন্ধুত্বপূর্ণ" বলে মনে হতে পারে তবে কোডবেজে নতুন, অপ্রত্যাশিত, হার্ড-টু-ডিবাগ বাগগুলি প্রবর্তনের জন্য এটি একটি উন্মুক্ত আমন্ত্রণ। নীচে লাইন, যথাসম্ভব কঠোর হতে হবে।

আপনার উদাহরণ থেকে আপনি উল্লেখ করেছেন যে সেমিকোলনগুলি পাইথন এবং জাভাস্ক্রিপ্টে alচ্ছিক। জাভাস্ক্রিপ্টের জন্য, কমপক্ষে, এটি সম্পূর্ণ সত্য নয়। সেমিকোলনগুলি অন্য কোনও সি পারিবারিক ভাষায় যেমন ঠিক তেমন জেএসে প্রয়োজনীয়। তবে জাভা স্ক্রিপ্ট পার্সার নির্দিষ্ট পরিস্থিতিতে অনুপস্থিত অর্ধপরিমাণ sertোকানোর জন্য ভাষা নির্দিষ্টকরণের প্রয়োজন। এটিকে ব্যাপকভাবে খুব খারাপ জিনিস হিসাবে বিবেচনা করা হয় কারণ এটি আপনার উদ্দেশ্যগুলি ভুল করে এবং আপনার কোডটিকে স্ক্রু আপ করে।


6

আপনার ভাষা আপনার কতটা শিথিল করা উচিত তার উত্তরটি টেক্সাসের উচ্চারণে বলেছিলেন, "আপনি কত ভাগ্যবান, পাঙ্ক?"।


আমি পাই না।
এমপেন

4
একটি কৌতুকের আমার খারাপ চেষ্টাটি হ'ল গতিশীল টাইপিং আপনাকে দংশন করতে পারে কারণ সিস্টেমগুলি আরও বড় হতে শুরু করে, বিশেষত যখন মেশিনে অনভিজ্ঞ ডেভেলপারদের যুক্ত করে। আমার অভিজ্ঞতায় যে কোনও মূল্যের সিস্টেমে আরও বেশি বড় হতে থাকে এবং বিকাশকারীদের বর্ধনশীল সংখ্যক থাকে have "প্রতীকের সমস্ত ব্যবহারগুলি সন্ধান করুন" বা "সমস্ত নাম পরিবর্তন করুন" বা "নিরাপদ মুছুন" বা "সমাধানে ত্রুটিগুলি অনুসন্ধান করুন" থাকা, একেবারে অমূল্য। সীমাবদ্ধ অর্থে গতিশীল টাইপিং যা ভিবি দেরিতে আবদ্ধ এবং ব্যাপক টাইপ-জোর করে তোলে তা বর্তমান গিগে অনেকগুলি বাগ তৈরি করেছে ।
হেনরিক

তবে, যদি আপনি আপনার প্রকল্প সম্পর্কে ভাগ্যবান বোধ করেন, উদাহরণস্বরূপ ভাল এবং অভিজ্ঞ ডেভস ভাগ্যবান, বা সঠিক কোড লেখার ক্ষেত্রে ভাগ্যবান; আপনি গতিশীল টাইপিং ব্যবহার করতে পারেন।
হেনরিক

2
আহ ... তবে এই প্রশ্নটি কখনই গতিশীল টাইপিংয়ের বিষয়ে ছিল না :)
এমপেন

1
আহ্, খুব সত্য র‌্যাপিএলএইচ আমি গতিশীল ভাষাগুলি যতটা বেশি আলগা হয় তত বেশি আলগা ভাবার প্রবণতা রাখি tend আপনি যদিও ঠিক আছেন।
হেনরিক

4

ভাষাগুলিতে এতগুলি ভিন্নতা না থাকলে কোডিং ধারাবাহিকতার জন্য প্রত্যেককে এত কঠোর পরিশ্রম করতে হবে না। ব্যবহারকারীরা যখন অযথা জটিলতা বাড়াতে অনুরোধ জানায় আমরা তা পছন্দ করি না, তবে আমাদের বিকাশের ভাষাগুলি কেন জিজ্ঞাসা করা উচিত?


+1: আমি সম্পূর্ণ একমত KISS এবং YAGNI এর মতো নীতিগুলি কেন ভাষা নকশায় প্রয়োগ করা উচিত তা আমি দেখতে পাচ্ছি না।
জর্জিও 21

2

আমার ব্যক্তিগত পছন্দটি আমার টাইপগুলি ধরার জন্য পর্যাপ্ত কঠোরতা থাকার দক্ষতার জন্য, তবে যতটা সম্ভব বাড়তি বয়লারপ্লেট রয়েছে। আমি এই সমস্যাটি সম্পর্কে http://www.perlmonks.org/?node_id=755790 এ কথা বলি ।

এটি বলেছিল, আপনি নিজের ভাষা নিজের জন্য ডিজাইন করছেন। আপনি এটি যা চান তা করা উচিত।


+1: ... আমার টাইপগুলি ধরার জন্য পর্যাপ্ত কঠোরতা থাকার ক্ষমতা, তবে যতটা সম্ভব বাড়তি বয়লারপ্লেট সম্ভব। - হ্যাঁ. আপনি কি সি # এর জন্য আন্ডারস হেলসবার্গের পরিকল্পনার সাথে পরিচিত? তিনি "অনুষ্ঠানের ওপরে সারাংশ" জোর দেওয়ার জন্য একটি সচেতন সিদ্ধান্ত নিচ্ছেন। চ্যানেল 9.msdn.com/ ব্লগস
জিম জি

@ জিম-জি: চিন্তাভাবনার জন্য ধন্যবাদ। আমি সি # সম্পর্কে খুব বেশি কিছু নিয়ে পরিচিত নই। আমি মাইক্রোসফ্ট ওয়ার্ল্ডে অনেক, বহু বছর ধরে কাজ করি নি।
btilly

1

আমার ভাষাগুলি আমি যা বলতে চাই তা করতে পছন্দ করি। সাধারণত যে ঝুঁকির দিকে বেশ শক্ত হয়ে থাকে। আমিও চাই যে কোনও উপাদান বা ব্লকের "কঠোর" ট্যাগ করতে সক্ষম হব যাতে সেই সীমাবদ্ধ অঞ্চলটি ডিবাগ / বিশ্লেষণ করতে সক্ষম হয়।


1

আমি সাধারণত "প্রোগ্রামার হিসাবে আমার পক্ষে কী আরও সহজ করে তুলবে" এর পাশে পড়তে ঝোঁক। অবশ্যই এর অর্থ একাধিক বিষয় হতে পারে। জাভাস্ক্রিপ্টে প্রায় কোনও প্রকারের চেকিং নেই, যা আপনি কোনও অদ্ভুত বাগ আঘাত না করা পর্যন্ত দুর্দান্ত কাজ করে। অন্যদিকে হাস্কেলতে প্রচুর ধরণের চেক করা রয়েছে যা কাজের কাজকে সামনে রাখে তবে ক্লোবাররা কিছু শ্রেণির বাগ দেয়।

সত্য কথা বলতে কি, আমি তারা ভাষা কি করে তা দেখার জন্য একটি গুচ্ছ গুগল পরীক্ষা করে দেখতে চাই এবং এমন কোনও কুলুঙ্গি খুঁজে পাওয়ার চেষ্টা করতাম যে তাদের কোনওটিই আঘাত না করে!

আমি মনে করি না এটি করার একটি সুস্পষ্ট সঠিক উপায় আছে, বা কমপক্ষে যদি কিছু না থাকে তবে লোকেরা এখনও conক্যমত্য পেয়েছে। সুতরাং বিভিন্ন ধরণের সিস্টেমের সাহায্যে ভাষা তৈরি করে আমরা শিখছি।

শুভকামনা।


1

আমি পরামর্শ দেব যে একটি ভাল প্রোগ্রামিং ভাষার কঠোর নিয়ম থাকা উচিত, যা বাস্তবায়নের ধারাবাহিকভাবে প্রয়োগ করা আশা করা যায়, তবে নিয়মগুলি এই জাতীয় ফ্যাশনে লেখা উচিত যাতে সহায়ক হতে পারে। আমি আরও পরামর্শ দিচ্ছি যে দুটি ক্ষেত্রে উল্লেখযোগ্য-পৃথক প্রোগ্রামের মধ্যে "হামিং দূরত্ব" কেবল একটির ক্ষেত্রে এড়াতে একটি ভাষা ডিজাইনের বিবেচনা করা উচিত। স্পষ্টতই কেউ সংখ্যাসূচক বা স্ট্রিং লিটারাল দিয়ে এ জাতীয় জিনিস অর্জন করতে পারে না (যদি কোনও প্রোগ্রামার 123 বা 13 এর পরিবর্তে 123 টাইপ করেন তবে সংকলকটি প্রোগ্রামটির অর্থ কী তা খুব ভালভাবে জানতে পারে না)। অন্যদিকে, ভাষা যদি :=অ্যাসাইনমেন্ট এবং ==সমতা তুলনার জন্য ব্যবহার করা হয়, এবং একটিও ব্যবহার না করে= কোনও আইনি উদ্দেশ্যে, তাহলে দুর্ঘটনাজনিত কার্যভার যা তুলনা বলে মনে করা হত এবং দুর্ঘটনাক্রমে করণীয়-কিছুই তুলনা যা অ্যাসাইনমেন্ট বলে মনে করা হত, উভয়ই সম্ভাবনা হ্রাস করে।

আমি পরামর্শ দেব যে এমন জায়গাগুলি রয়েছে যেখানে কম্পাইলারদের পক্ষে জিনিসগুলি নির্ধারণের জন্য দরকারী, এ জাতীয় অনুভূতি প্রায়শই সর্বাধিক সর্বাধিক মূল্যবান এবং আরও জটিল ক্ষেত্রে কম মূল্যবান। উদাহরণস্বরূপ, প্রতিস্থাপনের অনুমতি দেওয়া:

  অভিধান <জটিল টাইপ 1, জটিল টাইপ 2> আইটেম =
    নতুন অভিধান <জটিল টাইপ 1, জটিল টাইপ 2 ()>;

সঙ্গে

  var আইটেম = নতুন অভিধান <জটিল টাইপ 1, জটিল টাইপ 2 ()>;

কোনও জটিল ধরণের অনুমানের প্রয়োজন হয় না, তবে কোডটি আরও বেশি পঠনযোগ্য করে তোলে (অন্যান্য জিনিসের মধ্যে, কেবল যেখানে প্রয়োজন সেখানে আরও ভার্বোস বাক্য গঠন ব্যবহার করে, উদাহরণস্বরূপ, কারণ স্টোরেজ অবস্থানের ধরণটি স্পষ্টভাবে অভিব্যক্তির ধরণের সাথে মেলে না এটি তৈরি করা, এমন জায়গাগুলিতে অতিরিক্ত মনোযোগ কল করতে সহায়তা করবে) যেগুলি এটির প্রয়োজন হতে পারে।

আরও পরিশীলিত ধরণের অনুমানের চেষ্টা করার একটি প্রধান অসুবিধা হ'ল অস্পষ্ট পরিস্থিতি দেখা দিতে পারে; আমি প্রস্তাব দিচ্ছি যে একটি ভাল ভাষা কোনও প্রোগ্রামারকে সংকলকটিতে তথ্য অন্তর্ভুক্ত করার জন্য এমন দুর্বোধ্যতাগুলি সমাধান করতে দেয় (উদাহরণস্বরূপ, কিছু টাইপকাস্টগুলি অন্যদের তুলনায় বেশি পছন্দ করে), তা নির্ধারণ করুন যে তাদের কোনও গুরুত্ব নেই (উদাহরণস্বরূপ যদিও দুটি সম্ভব হলেও ওভারলোডগুলি বিভিন্ন কোড কার্যকর করতে পারে, প্রোগ্রামার ইঙ্গিত দিয়েছে যে তাদের ক্ষেত্রে একইরকম আচরণ করা উচিত যেখানে হয় ব্যবহৃত হতে পারে), বা তাদের (এবং কেবলমাত্র) ফ্ল্যাগ করুন যা উপরের যে কোনও একটিতে পরিচালনা করা যায় না।


1

আমার কাছে পাঠযোগ্যতা সবচেয়ে গুরুত্বপূর্ণ।

ভাষার অভিজ্ঞতার সাথে কারও কাছে, কোড ফ্রেমের অর্থ প্রসঙ্গটি গভীরভাবে বিশ্লেষণ না করে পরিষ্কার হওয়া উচিত।

ভাষার যতবার সম্ভব ভুলগুলি পতাকাঙ্কিত করতে সক্ষম হওয়া উচিত। প্রতিটি চরিত্রের এলোমেলো ক্রম যদি সিন্ট্যাক্টিক্যালি সঠিক প্রোগ্রাম করে তবে এটি সহায়ক নয়। আর ভেরিয়েবল স্বয়ংক্রিয়ভাবে প্রথমবার তারা ব্যবহার করা হয় তৈরি করা হয়, তাহলে ভুল বানানটিতে clientযেমন cleintআপনি একটি কম্পাইল এরর দেবে না।

বাক্য গঠন ছাড়াও, ভাষাটির একটি স্পষ্টভাবে সংজ্ঞায়িত শব্দার্থবিজ্ঞান থাকতে হবে, এবং এটি সম্ভবত একটি শালীন বাক্য গঠন সিদ্ধান্ত নেওয়ার চেয়ে আরও শক্ত ...

ভাল উদাহরণ:

  • জাভাতে, "1"একটি স্ট্রিং, 1অন্তর্নির্মিত, 1.0ডাবল এবং 1Lদীর্ঘ হয় is একবার দেখুন এবং আপনি এটি জানেন কি।

  • জাভাতে, =অ্যাসাইনমেন্ট হয়। এটি আদিম ধরণের মান এবং রেফারেন্স ধরণের জন্য রেফারেন্স নির্ধারণ করে। এটি কখনও জটিল ডেটা অনুলিপি করে বা তুলনা করে না।

  • জাভাতে, কোনও পদ্ধতিকে কল করার জন্য বন্ধনীগুলির প্রয়োজন হয় এবং এইভাবে স্পষ্টভাবে ভেরিয়েবলগুলির থেকে আলাদা করা যায় - সুতরাং, যদি কোনও বন্ধনী না থাকে তবে আপনাকে কোনও পদ্ধতির সংজ্ঞা অনুসন্ধান করার দরকার নেই, এটি কেবল ডেটা পড়া reading

খারাপ উদাহরণ:

  • জাভাতে, জাতীয় প্রতীক যেমন clientপ্রায় কিছু হতে পারে: একটি প্যাকেজ পাথ উপাদান, শ্রেণি বা ইন্টারফেসের নাম, একটি অভ্যন্তরীণ শ্রেণীর নাম, ক্ষেত্রের নাম, একটি পদ্ধতির নাম, স্থানীয় চলক এবং আরও অনেক কিছু। নামকরণ কনভেনশনগুলি চালু করা বা না মানা এটি ব্যবহারকারীর উপর নির্ভর করে।

  • জাভাতে, বিন্দুটি .অতিরিক্ত ব্যবহৃত হয়। এটি প্যাকেজের নামের মধ্যে বিভাজক, প্যাকেজ এবং শ্রেণীর মধ্যে বিভাজক, বাহ্যিক এবং অভ্যন্তর শ্রেণীর মধ্যে বিভাজক, উদাহরণস্বরূপ প্রকাশ এবং পদ্ধতির মধ্যে সংযোগকারী উদাহরণ হিসাবে প্রার্থিত হতে পারে এবং আরও অনেক কিছু হতে পারে।

  • অনেক ভাষায়, ifব্লকগুলির কোঁকড়া ধনুর্বন্ধনী optionচ্ছিক , যদি কেউ (সত্যই বিদ্যমান নয়) ব্লকে আরও একটি বিবৃতি যোগ করে তবে বাজে ভুলগুলির দিকে পরিচালিত করে।

  • ইনফিক্স অপারেটর: কখনও কখনও আমাকে একটি সংখ্যাসূচক অভিব্যক্তি বন্ধ করতে হবে এবং ধাপে ধাপে এর অর্থ কী তা নিয়ে কঠোর চিন্তা করতে হবে। আমরা সকলেই যেমন ইনফিক্স নোটেশনে ম্যাথ এক্সপ্রেশন লিখতে ব্যবহৃত হয় a * b / c * d + e। বেশিরভাগ সময় আমরা সংযোজন এবং বিয়োগফলের উপর গুণ এবং বিভাগের নজিরটি মনে করি (তবে আপনি কি বুঝতে পেরেছিলেন যে আমরা বিভাজন করছি না c*d, তবে কেবলমাত্র দ্বারা বিভাজক cএবং তার পরে গুণক d?)। তবে তাদের নিজস্ব পূর্ববর্তী নিয়ম এবং কিছু ভাষায় ওভারলোডিংয়ের সাথে আরও অনেকগুলি অতিরিক্ত ইনফিক্স অপারেটর রয়েছে যা ট্র্যাক রাখা শক্ত। সম্ভবত প্রথম বন্ধনী ব্যবহার কার্যকর করা একটি ভাল পদ্ধতির ছিল ...


আপনি বেশিরভাগই অস্পষ্টতার কথা বলেছেন, তবে অস্পষ্টতা তৈরি না করে একই জিনিস করার একাধিক উপায় থাকতে পারে। হতে পারে আমাদের দুটি গুণ অপারেটর থাকতে পারে *এবং ×। উভয় 5*3এবং 5 × 3` উভয় একই জিনিস, এবং একটি অভিজ্ঞ প্রোগ্রামার চারপাশের প্রসঙ্গটি ঘুরে না দেখে তারা যা বোঝায় তা হ'ল জানে। তবে সমস্যাটি হ'ল এখন একই জিনিসটি করার দুটি উপায় আছে এবং কেউ কেউ পুরো অনুষ্ঠান জুড়ে তাদের মধ্যে পরিবর্তন আনতে পারে। আমি বিশ্বাস করি যখন আমি প্রশ্নটি জিজ্ঞাসা করছিলাম তখন এটি সম্পর্কে আমি বেশি উদ্বিগ্ন ছিলাম।
এমপেন

-2

আপনি প্রাকৃতিক ভাষার সাথে সাদৃশ্য বিবেচনা করতে পারেন। ইমেইলে, আপনি কি ব্যাকরণ নাজি? অথবা আপনি কিছু ব্যাকরণগত ত্রুটি যেমন ঠিক আছে বিভক্ত ইনফিনিটিভস, অনুপস্থিত সংযোজন, বা ভুল জায়গায় পরিবর্তিত সংশোধন করে ঠিক আছে। উত্তরটি ব্যক্তিগত পছন্দের দিকে ফোটে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.