আপনি বাস্তবায়ন ছাড়াই একটি প্রোগ্রামিং ভাষা নির্দিষ্ট করতে পারেন?


11

তাত্ত্বিকভাবে এমন কোনও প্রোগ্রামিং ভাষা নির্দিষ্ট করা সম্ভব যার জন্য কোনও প্রয়োগের অস্তিত্ব থাকতে পারে? একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ ফাংশন সংজ্ঞায়নের একটি উপায়। একটি প্রয়োগের অর্থ সেই ইনপুটটিতে প্রোগ্রামের সাথে সম্পর্কিত ফাংশনের আউটপুটটিতে প্রদত্ত ইনপুটটিতে সেই ভাষাতে একটি প্রদত্ত প্রোগ্রাম কার্যকর করতে একটি পদ্ধতি।

এই জাতীয় ভাষার ন্যূনতম প্রয়োজনীয়তাগুলি কী কী?


3
একটি ভাষার "বাস্তবায়ন" কী?
রাফেল

@ রাফেল: আপনিই "প্রোগ্রামিং ল্যাং" কে "ভাষায়" পরিবর্তন করেছেন। আপনার সম্পাদনার আগে, কোনও ভাষা প্রয়োগের অর্থ কী তা বোঝা গেল।
সোসোশি ইতো

@ শুয়ুশিআইটো: বেশ নয়; আমি কেবল প্রশ্নের সাথে মেলে শিরোনামটি মানিয়ে নিয়েছিলাম, যা সিটিওরি.এসইতে পরিবর্তিত হয়েছিল। আমি এটিকে আবার বদলেছি, তবে এর অর্থ কী তা এখনও পরিষ্কার নয়। একটি সংকলক? একজন অনুবাদক? যাইহোক, এখানে প্রায় এক বছরের পুরানো একটি প্রশ্ন এবং এমন কোনও ব্যবহারকারী দ্বারা যিনি আপত্তিজনকভাবে কোনও প্রশ্নই পুনর্বিবেচনা করেননি, সেখানে সবচেয়ে খারাপ পরামর্শ দেওয়া হয়েছিল by
রাফেল

@ রাফেল: "কোন ভাষা বাস্তবায়ন কী?" সমস্ত ক্লু মুছে ফেলার পরে আমার বোঝার বাইরে ছিল। তবে আমি একমত যে প্রশ্নটি প্রথম থেকেই অস্পষ্ট ছিল।
সোসোশি ইতো

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

উত্তর:


7

সাধারণত, প্রোগ্রামিং ভাষার প্রয়োগ বাস্তবায়নে কমপক্ষে কোনও ভাষায় দোভাষী (বা কোনও ভাষার সংকলক) দেওয়া হয় যা টুরিং-সম্পূর্ণ ছাড়া আর কিছু নয়।

এই "সংজ্ঞা" ব্যবহার করে আমরা এর মতো একটি প্রোগ্রামিং ভাষা নির্দিষ্ট করতে পারি:

  • শুধুমাত্র একটি সম্ভাব্য প্রোগ্রাম যা HALT;

  • এর স্পেসিফিকেশন HALT: এটি একটি ফাংশন যা থামানো সমস্যার সমাধান করে ।

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

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


1
সাধারণীকরণ: অনির্ধারিত সমস্যার সমাধান করে এমন কোনও ফাংশন নির্দিষ্ট করে এমন কোনও ভাষা কার্যকর করা যায় না।
এডিএ-কিএ মার্ট-ওরা-ই

@ edA-qamort-ora-y প্রযুক্তিগতভাবে এটি প্রয়োগ করা যেতে পারে। আপনি হ্যালটিং সমস্যাটি স্থির করতে পারবেন না , তবে একটি টিএম অন্য একটি মেশিন অনুকরণ করতে পারে এবং যদি সেই মেশিনটি থামে তবে গ্রহণ করতে পারে; যেমন একটি টি এম দ্বারা গৃহীত ভাষা ঠিক (এর এনকোডিং) মেশিন যে স্থগিত ভাষা। তবে ব্যবহারিক উদ্দেশ্যে আমরা সাধারণত প্রোগ্রামিং ভাষার আদিম অপারেশনগুলি সমাপ্তির গ্যারান্টিযুক্ত পছন্দ করি! (কমপক্ষে "বোধগম্য" ইনপুটটিতে)
বেন

1
হ্যাঁ, কোনও ভাষার ক্রিয়াকলাপে চেয়ে কম সময়ের জটিলতা থাকতে হবে :)হে()
এডিএ-কি মর্ট-ওরা-ই

@ এডিএ-কামোর্ট-ওরা-ওয়াই সর্বদা সত্য নয়। উদাহরণস্বরূপ, হাস্কেলের ডেনোটেশনাল শব্দার্থক 1/0 এবং এটি সুস্পষ্ট ব্যয় মডেলটিতে Ω ( ) । অনুশীলনে, সমস্ত হাস্কেল বাস্তবায়ন ব্যতিক্রম এবং ডাইভারজেন্সের মধ্যে পার্থক্য করে এবং জিএইচসির একটি নির্দিষ্ট অপারেশন শব্দার্থবিজ্ঞান রয়েছে যা ব্যতিক্রমগুলি কীভাবে কাজ করবে বলে ধারণা করা হয়। তবে, শূন্য দ্বারা বিভাজনে চিরকালের জন্য লুপ করা হয়েছে এমন একটি অনুসারী বাস্তবায়ন সম্ভব! let loop = loop in loopΩ()
ফিলিপ জেএফ

3

কেবল একটি কৌতূহলী পক্ষের নোট: সি ++ টেম্পলেট ইঞ্জিনটি টুরিং-সম্পূর্ণ

উপপাদ্য 1: তাত্পর্য সীমার অভাবে, সি ++ টেমপ্লেটগুলি টুরিং-সম্পূর্ণ।

তাত্পর্য 1: তাত্ক্ষণিক সীমা অভাবে, প্রদত্ত প্রোগ্রাম সংকলন করার সময় C ++ সংকলকটি থামবে কিনা তা অনস্বীকার্য।

... সুতরাং সি ++ নিজেই একটি প্রোগ্রামিং ভাষা হিসাবে বিবেচনা করা যেতে পারে যার জন্য কোনও "বাস্তবায়ন" থাকতে পারে না ... :-D


সুতরাং যদি কোনও সি তৈরি করা কোডটি কেবল উত্পন্ন ডায়াগনস্টিক্সের বিষয়ে চিন্তা না করে তবে কোনও সি "সংকলক" দোভাষী হিসাবে ব্যবহার করা যেতে পারে?
সুপারক্যাট

হ্যাঁ, কাগজে প্রদর্শিত হিসাবে, সংকলক ত্রুটি মেশিনের (এবং এটির চূড়ান্ত টেপ কনফিগারেশন) গণনার ইতিহাসের সাথে মেলে এমন ত্রুটির একটি তালিকা দিয়ে থামে। স্পষ্টতই ইনপুটটি ইন্টারেক্টিভ হতে পারে না (এটি সংকলক চালানোর আগে উত্স কোডে এনকোড করা উচিত)।
ভোর 30'14

2

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

Σ*2Σ*

এমএম0

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

(আমার ধারণা হ'ল আপনি সম্ভবত স্পেসিফিকেশন ভাষা বা আনুষ্ঠানিক ভাষাগুলির সাথে প্রোগ্রামিং ভাষাগুলি বিভ্রান্ত করছেন any যে কোনও ক্ষেত্রে, আমরা সেই ভাষাগুলি সংজ্ঞায়িত করতে পারি না))


আমি বেশ নিশ্চিত যে "প্রোগ্রামিং ল্যাঙ্গুয়েজ" বলতে একটি প্রোগ্রামিং ল্যাঙ্গুয়েজকে বোঝায় যেভাবে আমরা সাধারণত এটি সম্পর্কে কথা বলি, এবং "একটি ভাষা প্রয়োগ" এর অর্থ আসল কম্পিউটারগুলিতে সেই ভাষায় প্রোগ্রামগুলি সম্পাদন করার পরিবেশ environment প্রশ্নটি আনুষ্ঠানিকভাবে নয় , তবে অবশ্যই এটি অস্পষ্ট নয়? এটিকে বাস্তবায়নের জন্য বিরক্ত না করেই আমি সহজেই নতুন প্রোগ্রামিং ভাষার জন্য একটি স্পেস লিখতে পারি; প্রশ্নটি এমনভাবে জিজ্ঞাসা করছে যে ভাষাটি এমনভাবে করা সম্ভব যে ভাষাটি কার্যকর করা যায় না
বেন

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

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

1

প্রয়োগ না করে প্রচুর ভাষাগুলি নির্দিষ্ট করা হয়েছে, যেমন অ্যালগোল 60০ টি অ্যালগরিদম লেখার জন্য ভাষা হওয়ার কথা ছিল, প্রয়োগ করা হবে না। অনেকগুলি "কেবলমাত্র মজাদার জন্য" ভাষাগুলির একটি নির্দিষ্টকরণ কার্যকর হওয়ার আগেই ইন্টারকালের মনে আসার আগে নির্দিষ্ট করা হয়েছিল।

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