আপনি প্রসঙ্গমুক্ত ব্যাকরণগুলিতে পরামিতি যুক্ত করলে আপনি কী পাবেন?


13

আমি ইনডেন্টেশন-সংবেদনশীল ভাষার জন্য ব্যাকরণগুলির কথা ভাবছিলাম এবং মনে হচ্ছে সিএফ ব্যাকরণগুলি পরামিতিগুলির সাথে একত্রিত হলে কৌশলটি করবে। উদাহরণ হিসাবে, এএনটিএলআর-এর মতো বিন্যাসে সরল পাইথন ব্যাকরণের জন্য এই খণ্ডটি বিবেচনা করুন:

// on top-level the statements have empty indent
program  
    : statement('')+
    ;

// let's consider only one compound statement and one simple statement for now
statement(indent) 
    : ifStatement(indent)
    | passStatement(indent)
    ;

passStatement(indent)
    : indent 'pass' NEWLINE
    ;

// statements under if must have current indent plus 4 spaces
ifStatement(indent)
    : indent 'if' expression ':' NEWLINE (statement(indent '    ')+)
    ;

আমার প্রশ্ন: এই জাতীয় ব্যাকরণগুলির (পরামিতিগুলির সাথে সিএফজি) কোনও নাম আছে?

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

প্যারামিটারগুলি যুক্ত করা কি সমর্থিত ভাষা শ্রেণিকে প্রসঙ্গ-মুক্তের উপরে উত্থাপন করে?


1
প্যারামিটারগুলি নিতে পারে এমন মানগুলির সেটটি যদি সীমাবদ্ধ হয় তবে এটি তুচ্ছভাবে প্রসঙ্গটি নিখরচায় স্থির হয় (আপনি তারপরে সমস্ত মানগুলির উপরে পুনরাবৃত্তি করতে এবং এটি সমস্ত লিখতে পারেন)।
রাচেট ফ্রিক

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


@ হেনড্রিকজান, গুণাবলী ব্যাকরণগুলি শব্দার্থক ক্রিয়া সহ ব্যাকরণকে বর্ণনা করার একটি উপায়, তারা পার্সিং নিয়ন্ত্রণ করে না।
এপ্রোগ্রামার

1
লক্ষ্যটি যদি ইন্ডেন্টেশন হ্যান্ডেল করা হয় তবে এটি পার্সারের চেয়ে টোকেনাইজারের পক্ষে বেশি উপযুক্ত। টোকেনাইজারটি ইন্ডেন্টেশন স্তর পরিবর্তিত হলে ভার্চুয়াল INDENT এবং UNINDENT টোকেন রাখুন। তারপরে ইনডেন্টেশন সম্পর্কিত তথ্য সহ ভাষার ব্যাকরণটি বাড়ানোর দরকার নেই।
জন কুগেলম্যান

উত্তর:


14

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

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

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

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

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


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

@ রিনিয়ারপোস্ট: আপনি অবশ্যই আপনার নিজের পরিভাষার অধিকারী; সুবিধাগুলি অ্যানথ্রোপমোরফিক ডিমগুলিতে সীমাবদ্ধ নয়। তবে, সিডিএল ম্যানুয়াল নিজেই দাবি করেছে যে "সিডিএল 3 অ্যাফিক্স ব্যাকরণগুলির উপর ভিত্তি করে একটি বাস্তবায়ন ভাষা," যা আমি মনে করি বিবেচনা করা উচিত। ( Ftp.cs.kun.nl/pub/cdl3/cdl3-manual-1.2.7.pdf এ ম্যানুয়াল উপলব্ধ )। আমি আমার উত্তরে এটিই দাবি করেছি: সিডিএল অ্যাফিক্স ব্যাকরণে কোস্টারের কাজের ভিত্তিতে ছিল was গ্রুন যেমন উল্লেখ করেছেন, অ্যাফিক্স এবং গুণাবলী ব্যাকরণের মধ্যে পার্থক্য সামান্য; তার পার্থক্য হ'ল অ্যাফিক্সগুলি সিনট্যাক্টিক বৈধতা নির্ধারণ করতে ব্যবহৃত হয় কিনা।
ধনী

(উদ্ধৃতিটি ম্যানুয়ালটির প্রথম পৃষ্ঠা থেকে is)
ধনী

আমি জানি ... এবং আপনি ঠিক বলেছেন। আমার মন্তব্যটি আপনার বিরোধিতা করার জন্য নয়।
পুনরায় পোস্টার

6

সিএফজির জন্য পাম্পিং লেমা নিন :

ব্যাকরণ নিন

S -> A("")
A(p) -> p 
      | p '\n' A(p"*") '\n' p 

এটি একটি তারকা ত্রিভুজ বর্ণনা করে:

*
**
***
**
*

স্টার ত্রিভুজটি 5 টি অংশে বিভক্ত করার মতো কোনও উপায় নেই যেমন also also এছাড়াও একটি তারকা ত্রিভুজ ( অ ফাঁকা সহ)।{ ইউ ভি এন ডাব্লু এক্স এন ওয়াই | n > 0 } v xuvwxy{uvnwxny|n>0}vx

এর অর্থ হল যে তারাটির ত্রিভুজ কোনও প্রসঙ্গমুক্ত ভাষা নয়।

বা আরও সহজ উদাহরণ:

S-> B("")
B(p)-> p 'a' p 'a' p
     | B(p 'b')

এটি ভাষাটি describes বর্ণনা করে যা নয়।{bnabnabn|n0}


3

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



কোস্টার এবং তার দল দুটি প্রকারের অ্যাফিক্স ব্যাকরণ নিয়ে অধ্যয়ন করেছিল, যতক্ষণ না আমি অবগত আছি: ১) ভ্যান উইজঙ্গার্ডেন ব্যাকরণগুলির সীমিত আকার, যার অর্থ সহজ স্বীকৃতি দেওয়া; ২) সিডিএল ভাষা, ব্যবহারিক সংকলক বর্ণনাকারী ভাষাগুলি কোনও স্পষ্টভাবে মূল্য সংশোধন ছাড়াই কিন্তু লক্ষ্য ভাষায় নিয়ম সংজ্ঞায়নের বিকল্পের সাথে (যেমন এসেম্বারার), এগুলি টুরিং সম্পূর্ণ করে তোলে।
পুনরায় পোস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.