অন্যরা ভাষার উদাহরণ সহ সঠিকভাবে "না" উত্তর দিয়েছেন। আমি ভেবেছিলাম যে কোনও ভাষাতে ওওপি-কে জড়িত না করে কীভাবে ব্যতিক্রম যুক্ত করা যায় তার একটি উদাহরণ যুক্ত করে আমি প্রসারিত করতে পারি।
আমি DSKL (ঘোষণামূলক অনুক্রমিক কার্নেল ভাষা) এর ক্ষেত্রে করব OZ , ভাল ভালো একাডেমিয়া কাপড় জন্য উপযুক্ত একটি ভাষা। ডিএসকেএল (বা ডিকেএল) এখানে (এলোমেলো অনুসন্ধানের ফলাফল), বিবৃতি এবং মানগুলির অংশটি দেখা যায় । সঠিক সংজ্ঞাটি গুরুত্বপূর্ণ নয়, এটির পরিবর্তে খুব সহজে পরিবর্তনযোগ্য ভেরিয়েবলগুলি (সেগুলি ঘোষিত হয় এবং পরে আবদ্ধ হয়) এবং কোনও ওওপি অন্তর্নির্মিত না হওয়া ছাড়া এটি একটি সাধারণ ভাষা।
এমনকি এই কার্নেল ভাষায় ভাষাগত বিমূর্ততা হিসাবে ওওপি যোগ করা যায় না। কার্নেল ভাষার (নিউনাম) অনন্য নাম যুক্ত করে এবং স্থানীয় স্কোপিং ব্যবহার করে এনক্যাপসুলেশন অর্জন করা যায়। অথবা কার্নেল ভাষায় (নিউসেল) একটি পরিবর্তনীয় অবস্থা যুক্ত করে এবং স্থানীয় স্কোপিং এনপ্যাপুলেশন সহ সঠিক ওওপি ব্যবহার করে অর্জন করা যায়। কিন্তু এটা করতে পারবে না একা নির্দিষ্ট কার্নেল ভাষা সঙ্গে অর্জন করা।
তারপরে আমরা যদি কার্নেল ভাষায় ব্যতিক্রম যুক্ত করি তবে আমাদের কোনও OOP- সমর্থন না থাকলেও তার ব্যতিক্রম থাকতে পারে language আমাকে কীভাবে দেখান:
স্ট্যাক এবং স্টোরেজ সহ একটি বিমূর্ত মেশিনের সংজ্ঞা দিয়ে আমরা আমাদের ভাষার প্রতিটি বিবৃতিতে কী করা উচিত তা বিবরণ দিতে পারি ( বিবৃতিটির শব্দার্থিক )। উদাহরণস্বরূপ skip
স্ট্যাকের মধ্যে কিছুই করা উচিত নয়, A = 3
স্ট্যাকটিতে এটিকে (/ একীকরণ করা) 3 আবদ্ধ করা উচিত।
আমরা কীভাবে আমাদের ব্যতিক্রমগুলি সংজ্ঞায়িত করা উচিত তার বাক্য গঠন যুক্ত করে শুরু করি । আমরা <statement>
ডি কেএল- তে আরও দুটি ধারা যুক্ত করে এটি করি।
<statement> ::== ... (old stuff)
| try <statement> catch <id> then <statement> end
| raise <id> end
এখানে পরিচিত চেষ্টা / ধরা, এবং ব্যতিক্রম বাড়াতে / নিক্ষেপের একটি উপায়।
বিমূর্ত মেশিনে কীভাবে তাদের কাজ করা উচিত তা দ্বারা আমরা তাদের শব্দার্থবিজ্ঞানের সংজ্ঞা দিই :
শব্দার্থক বক্তব্যটি চেষ্টা করুন : (try <statement1> catch <id> then <statement2> end)
করুন:
- শব্দার্থক বিবৃতি স্ট্যাকের উপর চাপুন
(catch <id> then <statement2> end)
- শব্দার্থক বিবৃতি স্ট্যাকের উপর চাপুন
(<statement1>)
নোট করুন যে বিবৃতি 1 স্ট্যাকের শীর্ষে থাকবে এবং প্রথমে কার্যকর করার চেষ্টা করা হবে।
উত্থাপন
মূল শব্দটি হল: (raise <id> end)
করুন:
- যদি আরও কিছু স্ট্যাকের উপরে না থাকে তবে থামুন এবং একটি অব্যক্ত ব্যতিক্রমের প্রতিবেদন করুন।
- অন্যথায়, স্ট্যাক থেকে প্রথম অর্থবোধ বিবৃতি পপ করুন। এটি যদি ক্যাচ স্টেটমেন্ট না হয় তবে 1 ধাপে যান।
- ফর্মটিতে স্ট্যাকের উপরে
(catch <id> then <statement> end)
পুশ করে আমরা একটি ক্যাচ পেয়েছি (<statement>)
।
ক্যাচ
আমরা যদি সাধারণ সম্পাদনের সময় একটি ক্যাচ-স্টেটমেন্ট দেখি তবে এর অর্থ হ'ল ভিতরে যা ছিল তা এই স্তরের ব্যতিক্রম না বাড়িয়েই মৃত্যুদণ্ড কার্যকর করা হয়েছে। সুতরাং আমরা কেবল catch
স্ট্যাকের পপ এবং কিছুই করি না।
কিয়েড, আমাদের ব্যতিক্রম রয়েছে এবং OOP এর কোনও সম্ভাবনা নেই with
আমি অ্যাবস্ট্রাক্ট মেশিন থেকে পরিবেশের অংশটিকে সরল করে তুলতে সরিয়েছি।