কোনও বিবৃতি ছাড়াই কোনও প্রোগ্রামিং ভাষার ভাষাও কাজ করতে পারে?


9

জাভাস্ক্রিপ্টে প্রোগ্রামিং হিসাবে, আমি লক্ষ্য করেছি যে স্টেটমেন্ট এবং ব্লকগুলি দিয়ে সম্পন্ন করা যেতে পারে যা একাই এক্সপ্রেশন দিয়ে করা যায়। একটি প্রোগ্রামিং ভাষা কি কেবল এক্সপ্রেশন দিয়ে ভাল কাজ করতে পারে? এবং, যদি হ্যাঁ হয়, কেন বিবৃতিগুলি মোটেই ব্যবহার করা হচ্ছে?


2
হ্যাঁ, রুবি এবং লিস্পের সমস্ত উপভাষার মতো অনেকগুলি-ই-এক্স-এক্সপ্রেশন ভাষা রয়েছে।
আমারা

@ স্পার্ক্ল্যাশি আমি দেখতে পাচ্ছি, কেবল একটি অনুমান: তাদের সবার জাভা স্ক্রিপ্টের কমাতে অপারেটর অ্যানালগ রয়েছে (এটি দুটি বিবৃতি কার্যকর করে এবং শেষেরটির মান দেয়)? এটি কি ক্রমানুসারে দুটি বিবৃতি কার্যকর করার সমাধান? আমি সিএল এর অগ্রগতিকে একটি অ্যানালগ হিসাবে গণনা করছি, আমার ধারণা, এটি 2 টি এক্সপ্রেশনের জন্য কাজ করেও।
মাইয়াভিক্টর

1
সমস্ত কিছু হ'ল একটি এক্সপ্রেশনকে সাধারণ বিবৃতি ভাষার চেয়ে আলাদা দেখতে হবে না, বিবৃতিতে ... মান রয়েছে। আপনি যদি জাভাস্ক্রিপ্টের বক্তব্যগুলি প্রকাশ করেন তবে বিদ্যমান সমস্ত কোড সম্পূর্ণ বৈধ হবে।
আমারা

1
কফিস্ক্রিপ্ট হ'ল একটি হ'ল এক-এক্সপ্রেশন ভাষা, যা জাভাস্ক্রিপ্টের সাথে সংকলিত।
স্পোইক

1
সম্পর্কিত (সম্ভবত একটি সদৃশ): কোন ভাষায় কোন বক্তব্য বিবৃতি নয় এমন ভাষাতে কী দরকারী ভাব প্রকাশ অসম্ভব হবে? "কেন এত ব্যাকরণকারী এক্সটার এবং স্ট্যাম্টের মধ্যে পার্থক্য তৈরি করছে যখন উত্তরগুলিতে উল্লিখিত হয়েছে, এটির কোনও মানে হয় না।"
gnat

উত্তর:


14

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

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

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


-1 এটি সত্যিই সত্য নয়
আমারা

3
@ স্পারক্ল্যাশী কোন অংশটি সত্য নয় এবং কীভাবে?

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

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

4
@ স্পার্কলেশি (১) আপনি বিব্রতকর ভাব প্রকাশ করতে পারেন (যা বিবৃতিটির একমাত্র উপাদান হতে পারে) বিবৃতি সহ (যা প্রকাশ নয় এবং এর কোনও ফলাফলের মূল্য নেই)। (২) কী? যে কোনও এফপি অ্যাডভোকেট তা নিশ্চিত করবে (এবং তর্ক করবে যে এটি একটি ভাল জিনিস)। অথবা এটি কেবল "সমস্ত" অংশ যা আপনি আপত্তি করছেন? (3)}} ব্লকগুলি আমি সে সম্পর্কে যা বলছি ("অনুক্রমিক নির্দেশাবলীর ধারণা")। এবং আমি কোথায় বলি যে কোনও সমস্যার কারণ? voidএবং null/ এর মধ্যে পার্থক্যটি unitহ'ল পরেরটি মানগুলি এবং এগুলি প্রায় পাশ করা যায়, তবে voidবিশেষত সেই ধরণের কোনও মূল্য নেই।

5

আপনি কীভাবে "বিবৃতি" এবং "এক্সপ্রেশন" সংজ্ঞায়িত করেন তার উপর নির্ভর করে।

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

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

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


পঠনযোগ্যতা সম্পর্কে মন্তব্যের জন্য +1 ... শেষ পর্যন্ত, মানুষের এটি বুঝতে হবে ...
mattnz

1

এটিএল এবং এক্সএন্ডেট হ'ল স্টেটমেন্ট-কম ভাল কাজের প্রোগ্রামিং ভাষা। অনেক কার্যকরী ভাষাও বিবৃতি-কম। সুতরাং, হ্যাঁ একটি প্রোগ্রামিং ভাষা বিবৃতি ছাড়াই সূক্ষ্মভাবে কাজ করতে পারে। আমি মনে করি বিবৃতিগুলি বহু ভাষায় অপরিহার্য প্রোগ্রামিংয়ের একটি প্রতিলিপি। এগুলি এখনও ব্যবহৃত হয় কারণ তারা ব্যাপকভাবে পরিচিত এবং কিছু ক্ষেত্রে তারা কোড আরও পাঠযোগ্য।


1

হ্যাঁ.

কার্যকরী ভাষা (এবং একক অ্যাসাইনমেন্ট ভাষা) সবই একটি অভিব্যক্তি। উদাহরণগুলি হ্যাসকাল (এবং এসআইএসএল)। যেখানে বিবৃতি এবং লুপের জন্য দুটি মান প্রদান করে return

ভাষার অন্যান্য শ্রেণি রয়েছে: মনে রাখা সহজ যেগুলি হ'ল ঘোষিত ভাষাগুলি (আমি নিশ্চিত যে আরও অনেক লোক রয়েছে যা বিবৃতিতে নির্ভর করে না)। এই ভাষাগুলির এমনকি ভাব প্রকাশেরও প্রয়োজন নেই (একই অর্থে যা আপনি সাধারণত ভাবেন)। আপনি সত্য যা ঘোষণা করেন এবং আপনি একাধিক ফলাফলের ব্যাক পেতে পারেন। এখানে সহজ এক prolog


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