সিনট্যাক্স ত্রুটি নেই এমন কোনও ভাষা ডিজাইন করা কি সম্ভব? [বন্ধ]


14

অন্য কথায়, একটি ভাষা যেখানে প্রতিটি সম্ভাব্য স্ট্রিং বৈধ বাক্য গঠন?

সম্পাদনা : এটি একটি তাত্ত্বিক প্রশ্ন।
এ জাতীয় ভাষা ব্যবহারে আমার আগ্রহ নেই ; আমি শুধু জিজ্ঞাসা করছি এটি সম্ভব কিনা।

আরও সম্পাদনা

আমি এরকম একটি ডিজাইন করা ভাষা এগিয়ে গেলাম। ত্রুটিমুক্ত দেখুন


2
আমরা যদি এটি করতে পারতাম তবে আমরা এআই তৈরি করতাম।
মাইকেল কে

5
@ মিশেল: না; আমি তাই মনে করি না.
স্ল্যাक्स

7
!!! পার্ল !!!

8
প্রশ্নটি বন্ধ থাকায় আমি তীব্র আপত্তি জানাই! এটি বিষয়ভিত্তিকও নয়, গঠনমূলকও নয় !!!
ফেলিক্স ডমব্যাক

1
কেন কোনও সমাবেশের ভাষা গ্রহণ করবেন না: বহুলাংশে 256 নির্দেশাবলী, 128 নিবন্ধক এবং একটি সাধারণ বাক্য গঠন instruction operand*, যেখানে কোনও অপারেন্ড নিবন্ধক হতে পারে বা 0-127 এর মধ্যে একটি সংখ্যা (এবং এরপরে সমস্ত কিছুই নিবন্ধ হিসাবে গণ্য হয়) এবং যদি অপারেন্ড হয় একাধিক ধরণের নির্দেশের জন্য অনুপস্থিত, '0' ধরে নেওয়া হচ্ছে।
ফেলিক্স ডমব্যাক

উত্তর:


8

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

TF(w,q) -> (w,Qa) 

Considerations:
    L = { w | w is any possible string }
    w e L
    q e Q
    F is a set with all good final states {Qa,Qr}
    Qa e F

এটি ডিমেস্ট্রেটেড হয়েছে যে কোনও টিএম এর একই কম্পিউটিং শক্তি রয়েছে যে কোনও একক বাস্তব জীবনের কম্পিউটার, তাই এটি একেবারেই সম্ভব


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

1
দুঃখিত তবে এই উত্তরের জন্য টুরিং মেশিনের পদ্ধতির ব্যাখ্যা দেওয়ার সহজ উপায় নেই। : একটু নির্মল এই লিঙ্কে চেক করুন en.wikipedia.org/wiki/Turing_machine
guiman

16

হ্যাঁ, অবশ্যই এটি সম্ভব, এটি এমনকি তুচ্ছ সহজ।

<programm> ::= char | char <program> |

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


সুতরাং ভাষা যদি এটিকে উপেক্ষা করে, তবে এটি বৈধ সিনস্ট্যাক্স? এবং "ট্যাবটাবস্পেস" একটি বৈধ স্ট্রিং নয়?
মাইকেল কে

1
ভাষার শব্দার্থবিজ্ঞানগুলি এটির সাথে আমার সমস্যা ছিল তবে দর্শন / ভাষাতাত্ত্বিক বিষয়টিকে যথাযথ বিবেচনা না করেই সত্যই এটি আলোচনা করতে পারে না।
স্টুপারউজার

2
মাইকেল: হুবহু সবকিছু সিনথেটিকভাবে বৈধ, তবে এটি সম্ভবত একটি এনওপি হতে পারে (এর কোনও বিশেষ অর্থ নেই)। প্রচুর স্টাফ উপেক্ষা করে কোনও ভাষাতে কোনও ভুল নেই। এই নমুনা প্রোগ্রামে সি যে বিষয়গুলি অবহেলা করে কেবল তা দেখুন: int main () {3 ;;; / * মন্তব্য * /}
ব্যবহারকারী 281377

সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের মধ্যে তাদের ধারণাগত কোনও পার্থক্য না থাকার কারণে অনেকে "না" বলে। "এটি সংকলন করে না? তারপরে অবশ্যই একটি সিনট্যাক্স ত্রুটি হতে হবে!"
ফ্রেডওভারফ্লো

অনেকেই "না" বলে কারণ এর কোন আসল অর্থ নেই। আপনি কাঠামো যুক্ত করার সাথে সাথে (অর্থাত্ একটি স্ব recর্ষive পার্সিং নিয়মের চেয়েও বেশি) আপনার সিনট্যাক্সের ধারণা পাবেন। কাঠামোর লঙ্ঘন একটি বাক্য গঠন প্রেরণ ত্রুটি। সিনারট্যাক্স প্রেরণ ত্রুটি একটি সিনট্যাক্স ত্রুটি, পার্সার এটি যেমন পতাকাঙ্কিত করে না।
বেরিন লরিটস

5

আমার ধারণা এটি বৈধ বাক্য গঠন দ্বারা আপনি কী বোঝাতে চাইছেন তার উপর নির্ভর করে।

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

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

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

সুতরাং তাত্ত্বিকভাবে সম্ভব (AmmoQ এটিকে আমার চেয়ে অনেক বেশি ঝরঝরে করে রাখে) তবে সম্পূর্ণ অবাঞ্ছিত।


আমি পড়েছি যে TECO এর মতো ছিল, প্রতিটি চরিত্রকে একটি অর্থ প্রদান করা হয়েছিল।
ডেভিড থর্নলি

3
মেশিন কোড সেভাবে বেশ কাজ করে। বাইটগুলির প্রতিটি সম্ভাব্য সংমিশ্রণটি এমন একটি প্রোগ্রাম হিসাবে দেখা যায় যা কিছু করে , এমনকি এটি সমস্ত কিছু একটি বিঘ্ন ঘটায়।
ব্যবহারকারী 281377

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

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

5

একটি পাঠ্য-ভিত্তিক প্রোগ্রামিং ভাষার কোডে সিনট্যাক্স ত্রুটি নাও থাকতে পারে।

আমি BYOB এর মতো ভিজ্যুয়াল ভাষার কথা ভাবছি । আপনি দুর্ঘটনাক্রমে "if x ten foo" টাইপ করতে পারবেন না কারণ "সিনট্যাক্স" গ্রাফিকাল ব্লক দ্বারা সংজ্ঞায়িত করা হয়েছে।


3

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

সাধারণত আপনি পুরোপুরি বিপরীতটি চান: আরও বেশি সময় বাঁচাতে যতদূর সম্ভব সিনট্যাক্স প্রসারিত করতে, তবে অবশ্যই আপনি পুরোপুরি সিনট্যাক্স বাদ দিতে পারেন এবং প্রতিটি ত্রুটি একটি শব্দার্থক হিসাবে ঘোষণা করতে পারেন: আপনি অ-টোকেনাইজিং অনুবাদক দিয়ে শেষ করবেন।


0

আহবেফিয়াসডলক আসলেহসোফা; চ জেভি [ এসিডাফ্যাসডিএফ ] নতুন / প্রশ্নোত্তর! @ # $} { ;-পি

সুতরাং যে কি মানে?

যতক্ষণ না ভাষার কাঠামো এবং ব্যাকরণ থাকবে ততক্ষণ সর্বদা একটি সিনট্যাক্স ত্রুটির ধারণা থাকবে। আপনি এটি প্রয়োগ করবেন কিনা তা প্রশ্ন is লোকেরা ভুল করবে এবং সিন্টেক্স ত্রুটিগুলি বেশিরভাগ ভাষা ডিজাইনার প্রোগ্রামারদের বোকা ভুল এড়াতে সহায়তা করার জন্য পৌঁছায়।

একটি সিনট্যাক্স ত্রুটি প্রোগ্রামাররা কোডিং রাইটিং কোড দ্বারা প্রবর্তিত একটি ত্রুটি যা ভাষার কোনও অর্থ নেই।

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

এমন একটি ভাষা নকশা করা সম্ভব যা সনাক্তকারী হিসাবে কোনও বৈধ ইউনিকোড অক্ষর (বা চরিত্রের অনুক্রম) ব্যবহার করতে পারে। সমতুল্য অক্ষর / চরিত্রের ক্রমগুলি স্বাভাবিক করার মতো চ্যালেঞ্জ রয়েছে যাতে তারা একই জিনিস হিসাবে স্বীকৃত হয় - তবে এটি সম্ভব। দ্রষ্টব্য: ইউনিকোডের নরমালকরণের চারটি প্রকারের মান রয়েছে


1
কাঠামোর প্রয়োজনে ব্যাকরণের প্রয়োজন হয় না। পিট বিবেচনা করুন যেখানে কাঠামো একটি গ্রিডে অক্ষরের (বা রঙ) অবস্থানে রয়েছে, এটি মরফিমের অন্যান্য চরিত্রের সাথে সম্পর্কিত নয়।
মাইক স্যামুয়েল

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