.NET- এ এমন কিছু আছে যা আমাকে একটি ব্যাকরণ সংজ্ঞায়িত করতে এবং একটি প্রোগ্রামিং ভাষা তৈরি করতে দেয়?


18

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

এটি আমার বর্তমান বোঝাপড়া: একটি ডোমেন নির্দিষ্ট ভাষা এমন একটি ভাষা যা সফ্টওয়্যার বিকাশে নির্দিষ্ট সমস্যার জন্য তৈরি করা হয়। ডিএসএল এর উদাহরণগুলি হল পিএইচপি, এসকিউএল, জাভাস্ক্রিপ্ট এবং বিপরীতে জাভা, সি #, সি ++, রুবি ইত্যাদি ভাষা রয়েছে are

আমি ভুল হলে আমাকে সংশোধন করতে দ্বিধা বোধ করবেন না।

আমি কী জানতে চাই:। নেট / ভিজ্যুয়াল স্টুডিওর জন্য কী এমন কোনও সরঞ্জাম রয়েছে যা এক্সটেক্সটের অনুরূপ, এটি আমাকে একটি ব্যাকরণ সংজ্ঞায়িত করতে এবং একটি ক্রিয়াকলাপের চিত্রের সাথে ভিত্তি করে একটি প্রোগ্রামিং ভাষা উত্পন্ন করার অনুমতি দেয়?


6
পিএইচপি এবং জাভাস্ক্রিপ্ট আসলে ডিএসএল এর নয়। ডিএসএল হ'ল এমন একটি ভাষা যা চিকিত্সা পরিষেবাদির মতো একটি বিশেষ সমস্যা ডোমেনকে সম্বোধন করে। এসকিউএল একটি ডিএসএল কারণ এটি সম্পর্কিত ডেটা সেটগুলির সাথে কাজ করার সমস্যা ডোমেনের সাথে নির্দিষ্ট। আরও তথ্যের জন্য en.wikedia.org/wiki/Domain- স্পেসিফিক_ ভাষাগুলি দেখুন ।
রবার্ট হার্ভে

নিমেরলে হয়তো?

উত্তর:


11

যাওয়ার সহজতম উপায় একটি সাবলীল ইন্টারফেস । এর জন্য কোনও সরঞ্জামের প্রয়োজন নেই এবং আপনাকে দুর্দান্ত ইন্টেলিসেন্স সহায়তা দেয় তবে আপনাকে এখনও নেট নেট-পদ্ধতিতে জিনিসগুলি লিখতে হবে, যেমন

 Mix.Paint(Color.Green).With.Paint(Color.Red);

অন্যথা, আপনি করতে পারেন সুন্দর DSLs লিখতে মধ্যে বু । সেই বিষয়ে একটি সম্পূর্ণ বই আছে ।


10

আপনি চেষ্টা করতে পারেন ANTLR (অথবা ভাষা স্বীকৃতির জন্য আরেকটি হাতিয়ার) একটি পার্সার জেনারেটরের dotnet জন্য উপলব্ধ অন্যান্যের মধ্যে হয়। সম্প্রদায়টিতে আপনি স্কয়ার, সি # এবং অন্যান্য অনেক ভাষার সংজ্ঞা পেতে পারেন।

গুগলের মতে এখানে আদর্শ সমর্থনও রয়েছে:


আপডেট: এএনটিএলআর 4 কেবল জাভা নির্গত করে, যখন এএনটিএলআর 3 এখনও সি # সমর্থন করে তবে এটি কোনও বড় আপডেট দেখতে পাবে না।
স্টেফানো সানফিলিপো ২:17

3

আপনার প্রথম প্রশ্ন - একটি ডোমেন নির্দিষ্ট ভাষা কী ... কারণ এটি কোনও মন্তব্যে ফিট করার জন্য খুব বড়।

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

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


আপনার দ্বিতীয় প্রশ্নটি হিসাবে - সি # তে থাকা সরঞ্জামগুলি ... আমি সি # জানি না এবং এইভাবে সরঞ্জামগুলি ভালভাবে জানি না। এটি বলেছিল, যখন আমি যখন কলেজে একটি সংকলক ক্লাস নিচ্ছিলাম তখন যে দুটি সরঞ্জাম ব্যবহৃত হয়েছিল (এবং আমি তখন থেকেই ব্যবহার করেছি) সেগুলি হ'ল লেকস এবং ইয়্যাক। স্ট্যাক ওভারফ্লোতে ওভার ... সি # এর জন্য লেক্স / ইয়্যাক?


2

ভিজ্যুয়াল স্টুডিওর জন্য একটি ভিজ্যুয়ালাইজেশন এবং মডেলিং এসডিকে রয়েছে যা পাঠ্য টেম্প্লেটিং (টি 4 টেম্পলেট) এবং ডোমেন-নির্দিষ্ট ভাষাগুলি সমর্থন করে।

http://msdn.microsoft.com/en-us/library/dd820703.aspx


1

এই সাইটটি আপনার জন্য আকর্ষণীয় হতে পারে: http://nemerle.org । এটি সমৃদ্ধ রূপক বৈশিষ্ট্য সহ নেট প্ল্যাটফর্মের জন্য ভাষা। অতি সম্প্রতি, প্রকল্পটি জেটব্রেইনসের ডানার অধীনে রয়েছে: http://blogs.jetbrains.com/dotnet/2012/06/jetbrains-and-nemerle/

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