নিয়মিত প্রকাশ হয় না


36

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

উদাহরণস্বরূপ, "নিয়মিত প্রকাশ"

/^1?$|^(11+?)\1+$/

উল্লিখিত পার্ল ব্যক্তিত্বের দ্বারা নির্মিত অ্যাবিগাইল (এবং পার্লের পরীক্ষার স্যুট অংশটি ২০০২ সাল থেকে) এমন একটি মেশিনের বর্ণনা করেছে যা কেবলমাত্র সম্মিলিত আনারি সংখ্যাকে গ্রহণ করে, তবে পিটার লিনজের তৃতীয় সংস্করণে অনুশীলন 4.5 (খ) আনুষ্ঠানিক ভাষাগুলির তৃতীয় সংস্করণে এবং অটোমেটার পাঠকের ব্যবহার রয়েছে পাম্পিং থিম প্রমাণ করতে হবে যে

এল={একটিএন:এন আমিগুলি এনটি একটি পিRআমিমি এনতোমার দর্শন লগ করামিR}

কোনও নিয়মিত ভাষা নয়।

প্রসঙ্গে যেখানে পার্থক্যটি গুরুত্বপূর্ণ, আমাদের কাকে কঠোরতর শক্তিশালী অভিব্যক্তি বলা উচিত?

উত্তর:


46

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

রেজেক্সেসের শক্তি ব্যাকট্র্যাকিং থেকে আসে এবং ব্যাকট্র্যাকিং সহ নিয়মিত ভাষার জন্য অটোমেটাতে কাজ করা হয়েছে। দেখুন, বিশেষত, বেকি এবং ক্রোলি, ২০০৮, পার্ল-সামঞ্জস্যপূর্ণ নিয়মিত অভিব্যক্তিগুলিতে দক্ষতার সাথে মেলে ফিনিট অটোমেটা প্রসারিত করা


5
আমি সম্মত হই, "পার্ল রেজেেক্স" ("পসিক্স রেইজেক্স" ইত্যাদি) বনাম "নিয়মিত ভাষা" ভুল ব্যাখ্যা দেওয়ার কোনও সম্ভাবনা রোধ করার জন্য যথেষ্ট পরিষ্কার হওয়া উচিত।
জুলকা সুমেলা 15

পার্ল রেগেক্সে কেবল ব্যাকট্র্যাকিংয়ের চেয়ে অনেক বেশি অতিরিক্ত বৈশিষ্ট্য রয়েছে।
রিনিয়ারপোস্ট

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

18

এই অভিব্যক্তিগুলি আহো (তাত্ত্বিক কম্পিউটার বিজ্ঞানের হ্যান্ডবুক, খণ্ড। এ, অধ্যায় 5) এবং ক্যাম্পিয়ানু, সালোমায়া, ইউ ("ব্যবহারিক নিয়মিত অভিব্যক্তিগুলির একটি আনুষ্ঠানিক গবেষণা", কম্পিউটার বিজ্ঞানের ফাউন্ডেশনগুলির আন্তর্জাতিক জার্নাল, 14: 1007 দ্বারা পরীক্ষা করেছেন) 181018, 2003) পাশাপাশি কিছু ফলো-আপ কাগজপত্র।

আহো আরও শক্তিশালী এক্সপ্রেশনকে "রিডব্রাইব" (ব্যাকরেফারেন্স সহ নিয়মিত প্রকাশ), ক্যাম্পেনু এট আল বলে calls "বর্ধিত নিয়মিত অভিব্যক্তি" পাশাপাশি "ব্যবহারিক নিয়মিত অভিব্যক্তি" ব্যবহার করুন। যেমনটি মনে হয়, সাম্প্রতিক সাহিত্যে "বর্ধিত নিয়মিত প্রকাশ" শব্দটি সবচেয়ে বেশি ব্যবহৃত হয়।

ফরাসি স্কুল থেকে "যুক্তিবাদী অভিব্যক্তি" শব্দটির উপর ভিত্তি করে তৈরি করা এবং সেই ভাবগুলি বাস্তব জগতে ব্যবহৃত হয় তা বিবেচনা করে আমি নিজেকে "বাস্তব প্রকাশ" পছন্দ করি।

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

প্রথমত, Regex এবং rewbr সত্যিই জিহ্বা এর রোল না, এবং তাদের আবার এবং আবার ব্যবহার করে একটি পুরো কাগজ কোর্সে পেয়েছিলাম যখন সম্ভব বহুবচনে কোন ব্যবহার সত্যিই ক্লান্তিকর লিখতে এবং পড়তে, বিশেষ করে। পার্ল-এর মতো নিয়মিত এক্সপ্রেশনগুলিও বেশ অযৌক্তিক ছিল। অবশ্যই আমি কোনও নেটিভ স্পিকার নই, তাই ওয়াইএমএমভি।

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

তৃতীয়ত, আমি এমন একটি শব্দ ব্যবহার করতে পছন্দ করলাম যা ইতিমধ্যে নতুন গড়া শর্তে সাহিত্যে ব্যবহৃত হয়, যা আমাকে বর্ধিত নিয়মিত অভিব্যক্তি এবং ব্যবহারিক নিয়মিত অভিব্যক্তির মধ্যে পছন্দ রেখে যায় । দ্বিতীয় পছন্দটি অন্তর্নিহিত (কমপক্ষে অন্তর্নিহিত) যে যথাযথ নিয়মিত প্রকাশগুলি একরকম অযৌক্তিক, যা বরং অদ্ভুত অনুভূত হয় (বিশেষত গুগলের আরই 2 ব্যাকরিফ ব্যবহার করে না এবং এটি বেশ ব্যবহারিক বলে মনে হয়)।

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


7
দুর্ভাগ্যক্রমে, প্রসারিত নিয়মিত অভিব্যক্তি শব্দটি ইতিমধ্যে পসিক্স নিয়েছে, যা প্রাথমিক নিয়মিত অভিব্যক্তি (বিআরই) এবং বর্ধিত নিয়মিত এক্সপ্রেশন (ইআরই) এর মধ্যে পার্থক্য করে , উভয়ই আপনার সংজ্ঞা অনুসারে নিয়মিত প্রকাশের প্রসারিত হয়।
Jörg ডব্লু মিট্টাগ

@ Jörg: বাস্তবিক অনুযায়ী এই তন্ন তন্ন বাড়ানো কিংবা মৌলিক POSIX রেগুলার এক্সপ্রেশনের নিয়মিত রেগুলার এক্সপ্রেশনের চেয়ে বেশি শক্তিশালী। এবং খাঁটি (নন-জিএনইউ) বিআরআই আসলে নিয়মিত প্রকাশের চেয়ে কম শক্তিশালী বলে মনে হয় (একটি বিকল্প অপারেটর অনুপস্থিত)।
sepp2k

এই "পুনর্নির্মাণ" সম্পর্কে আরও সাম্প্রতিক ফলাফলের জন্য কার্ল এবং নরেন্দ্রান (২০০৯) দ্বারা "বর্ধিত নিয়মিত অভিব্যক্তিগুলি" দেখুন: portal.acm.org/citation.cfm?id=1533235
জ্যাকব

এই ভাষা শ্রেণীর উপর আরও সাম্প্রতিক ফলাফল: "নিয়মিত ভাষাগুলির সাথে রেজেক্স ভাষার ছেদগুলিতে" ক্যাম্পিয়ানু এবং সান্তিয়ান দ্বারা (টিসিএস 410, ২০০৯) "রেডেনবাচ এবং শ্মিডের" বর্ধিত নিয়মিত এক্সপ্রেশনগুলির বৃহত শ্রেণির জন্য একটি বহুবর্ষীয় সময় ম্যাচ পরীক্ষা "(সিআইএএ 2010) ), এবং "বর্ধিত নিয়মিত এক্সপ্রেশন: সুচিন্তা এবং সিদ্ধান্তগ্রহণ" (আমার দ্বারা, স্ট্যাকস ২০১১-এ উপস্থিত হওয়ার কারণে)
ডোমিনিক ডি ফ্রেইডেনবার্গার

6

এটি জানা যায় যে পার্লের তথাকথিত রেজিএক্সএক্স টিউরিং সম্পূর্ণ হওয়ার পক্ষে যথেষ্ট শক্তিশালী; এমনকি পার্ল রিজেক্সেপ থেকে সাধারণ প্রোগ্রাম থেকে একটি সংকলকও রয়েছে।

অতএব আমি সন্দেহ করি যে এই জাতীয় "regexps" এর জন্য একটি নাম অনুসন্ধান করা বুদ্ধিমান।

উদাহরণস্বরূপ http://search.cpan.org/~asavige/Acme-EyeDrop-1-122/lib/Acme/EyeDrops.pm এ দেখুন


আপনার কিছু পয়েন্টার আছে?
আন্দ্রেস সালামন

5
@ অ্যান্ড্রেস: আমি মনে করি আর্থার পার্লের ?{CODE}নির্দেশনার বিষয়ে কথা বলছে , যা নিয়মিত অভিব্যক্তিতে প্যাটার্ন এক্সপ্রেশনগুলি প্রোগ্রাম কোডটি ইন্টারলিভ করতে দেয়। আমি বুঝতে পেরেছি যে পিসিআরইগুলি ভাষাটির "ঘোষিত" অংশ হিসাবে ব্যবহারিকভাবে সংজ্ঞায়িত হয়, পুরো ভাষাটিকে প্যাটার্ন ভাষা বলা হয়। ডাব্লুপি, অহো, ১৯৯০-এর মতে, "স্ট্রিংয়ের নিদর্শনগুলির সন্ধানের জন্য অ্যালগরিদম" দেখায় যে ব্যাকট্র্যাকিং সহ নিয়মিত ভাষার সদস্যপদ সমস্যা NP সম্পূর্ণ। ঘোষিত পিসিআরই-তে আর কোনও শক্ত বৈশিষ্ট্য নেই।
চার্লস স্টুয়ার্ট

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

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

2

আমি মনে করি "অটোমাতার প্রসঙ্গে নিয়মিত প্রকাশের" জন্য সর্বোত্তম শব্দটি "যুক্তিযুক্ত অভিব্যক্তি", যেমনটি ব্যবহৃত হয়েছে, বলুন, সাকরোভিচের অটোম্যাটা থিওরির উপাদানগুলি বা ওয়েটড অটোমাতার হ্যান্ডবুক।


1
আইএমএইচও খুব বেশি ব্যবহৃত হয় না।
ব্লেজারব্লেড

এটি / ব্যবহৃত / ওজনযুক্ত অটোমেটা তত্ত্বে ব্যাপকভাবে ব্যবহৃত হয়, en.wikedia.org/wiki/Rational_language দেখুন । আমি বিভিন্ন দলে ভাষার ক্ষেত্রে এটি বেশ ভাল সময় দেখেছি।
মিশাল ক্যাডিলহ্যাক

1

অন্যান্য উত্তরগুলি দেওয়া, আমি সুপারিশ করব যে "নিয়মিত ভাষা" নিরাপদ এবং সংক্ষিপ্তভাবে পার্থক্যটি উল্লেখ করার পরে, রেজেক্সদের (ব্যাকট্র্যাকিং সহ) "ব্যবহারিক নিয়মিত অভিব্যক্তি" সম্পর্কে কথা বলার জন্য।

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


0

আমরা তাদের প্যাটার্ন এক্সপ্রেশন বলতে পারি । এটি প্যাটার্ন ভাষার সাথে বিভ্রান্তির পরিচয় দিতে পারে তবে কমপক্ষে এগুলি কম সাধারণ।


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