একটি মৌলিক ভাষার জন্য প্রাথমিক বৈশিষ্ট্য? ডিএসএলের পরামর্শ?


9

আমি শেষ পর্যন্ত একটি দোভাষী এবং একটি সংকলক তৈরি করার পিছনে জটিলতা বুঝতে শুরু করেছি। আমি টিনিব্যাসিক, 1964 (ডার্টমাউথ) বেসিকের বিভিন্ন সংস্করণ এবং এই ভাষায় পৌঁছানোর আগে এই ভাষাগুলিতে আমার নিজস্ব বিস্তৃতি তৈরি করেছি। সর্বাধিক সাম্প্রতিক প্রজেক্টটি হ'ল আমি ওপেন সোর্স বেসিক কল ... কারণ আমি ভাষার এমন কোনও বৈশিষ্ট্যই ভাবতে পারি না যা মানুষের আগ্রহী হবে would ভাষার উত্স উন্মুক্ত করতে এবং কিছু জটিল জিনিস কীভাবে করা হয় তা বুঝতে সক্ষম হয়ে (স্ক্যানিং, পার্সিং, ব্যাখ্যা এবং সংকলন কীভাবে করা হয়)

ওপেন সোর্স বেসিকটি প্রথমে স্ট্যাক ভিত্তিক ভাষায় ব্যাখ্যা করা হয়। সেই স্ট্যাক ভিত্তিক ভাষাটি তখনই ব্যাখ্যা করা এবং তাৎক্ষণিকভাবে কার্যকর করা হয় বা সিএলআর এক্সিকিউটেবলে রূপান্তরিত হয়।

আমার প্রশ্নগুলি এই পর্যন্ত সিদ্ধ:

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

সময় দেয়ার জন্য ধন্যবাদ,

Dominick


3
আমি সর্বদা এমন একটি ল্যাঙ্গেজ চেয়েছিলাম যা অন্তর্নির্মিত, সিনট্যাক্স-সমর্থিত এওপি কার্যকারিতা ছিল।
হতাশ

@ ডমিনিক: লিনকিউ কার্যকারিতা কেমন?
শিকারী

@ উন্নত ... এওপি - ওরিয়েন্টেড প্রোগ্রামিংয়ের কার্যকারিতা? আপনি একটি উদাহরণ দিতে পারেন?
ডোমিনিক

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

1
অবশ্যই "গোটো" কোনও বেসিকের বাধ্যতামূলক বৈশিষ্ট্য?
পেরি

উত্তর:


1

কমোডোরের প্রথম দিকের বেসিকের সাথে আমার অভিজ্ঞতা [ভিক -২০, সি-64৪] আমাকে এই ধারণা দিয়েছে যে লাইন সংখ্যাগুলি বেসিকের মূল "বৈশিষ্ট্য"। দেখে মনে হচ্ছে এগুলি আর আধুনিক বাস্তবায়নে ব্যবহৃত হয় না, যা আমার কাছে ক্ষতির কারণ কারণ বেসিক সম্পর্কে আমার প্রাথমিক দৃষ্টিভঙ্গি একটি শেখার ভাষা যা থেকে অন্য কোনও কিছুর দিকে স্প্রিংবোর্ড।


1

অবশ্যই একটি মহৎ প্রচেষ্টা, তবে আমি মনে করি আপনি নিজের অগ্রাধিকারগুলি বিপরীত পেয়েছেন।

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

আপনি ডোমেনটি সনাক্ত করার পরে এবং কীভাবে আপনার ভাষা ডোমেনে কাজ করবে, আপনি নির্দিষ্ট নির্মাণ বা বৈশিষ্ট্যগুলি লিখতে পারেন।

শেষ পর্যন্ত, আপনি অভ্যন্তরীণ বা বাহ্যিক ডিএসএল চান কিনা তা বিবেচনা করা সহায়ক হতে পারে ।


0

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


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

0

এখানে বেশ কয়েকটি বৈশিষ্ট্য রয়েছে যা ইতিমধ্যে উপস্থিত থাকলে যুক্ত বা বাড়ানো যেতে পারে, তবে ...

... বেসিক-এর মতো প্রোগ্রামিং ল্যাঙ্গুয়েজ, স্ক্রিপ্ট ভাষার সাথে খুব মিল এবং এমন একটি বৈশিষ্ট্য যা পরে অনেকগুলি মিস হয়ে যায় বা পরে অন্তর্ভুক্ত ছিল, সেটি ছিল নেমস্পেস বা মডিউল।

সি, সি ++, পিএইচপি, ভিজ্যুয়াল বেসিক, মডিউল / নেমস্পেসগুলি ছাড়াই শুরু হয়েছিল এবং যেখানে পরে যুক্ত হয়েছে।

পরেরটি হ'ল সাবরুটাইন (পদ্ধতি বা ফাংশন যা কোনও মান ফেরায় না) এবং ফাংশন (সাবরুটাইনগুলি যা একটি বিশেষ মান ফেরায়)।


0

কিছু জটিল জিনিস কীভাবে করা হয় তা বুঝতে (কীভাবে স্ক্যানিং, পার্সিং, ব্যাখ্যা করা এবং সংকলন করা হয়)

সংকলকগুলি বোঝার জন্য উত্সগুলিতে স্ট্যাক ওভারফ্লো সাইটে একটি দুর্দান্ত প্রশ্ন রয়েছে। আপনি আমার সংকলক শ্রেণীর পৃষ্ঠাতেও একবার দেখতে পারেন

যখন আমি আমার ভাষায় মৌলিক নির্মাণগুলি যুক্ত করে 'সমাপ্ত' হয়ে যাই - তখন আমার কীভাবে শাখা প্রকাশ করা উচিত?

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

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

যদি এটি ঠিকভাবে চলে যায় তবে আমি স্কোপে কাজ করার পরামর্শ দিচ্ছি (উপ-রুটিনে স্থানীয় বনাম গ্লোবাল)। আপনি যদি সে সম্পর্কে কিছু পরামর্শ চান তবে আমাকে জানান।

শুভকামনা। এবং উপভোগ কর!

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