প্রোগ্রামিং প্যারাডাইম: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
Sammay Sarkar (আলোচনা | অবদান)
Sammay Sarkar (আলোচনা | অবদান)
৮৯ নং লাইন:
 
=== অন্যান্য প্যারাডাইম ===
আজ্ঞাবাহী বা ইম্পারেটিভ প্রোগ্রামিং প্রথার একটি প্রকারভেদ হল [[লিটারেট প্রোগ্রামিং]] বা । এই প্রথায় প্রোগ্রাম কোড একটি পাঠযোগ্য রচনা হিসেবে একটি [[হাইপারটেক্সট]] নেটওয়ার্কে বিন্যস্ত থাকে, এবং প্রোগ্রামের কার্যবিধির বর্ণনা বা কমেন্টের ধারাবাহিকতা অনুযায়ী কোডের সজ্জিত হয়, কম্পাইলারের সুবিধা অনুযায়ী নয়। অর্থাৎ কোডের পাঠযোগ্যতাকে সর্বাধিক গুরুত্ব দেয়া হয়।
<!-- [[Literate programming]], as a form of [[imperative programming]], structures programs as a human-centered web, as in a [[hypertext]] essay: documentation is integral to the program, and the program is structured following the logic of prose exposition, rather than compiler convenience.
 
অন্যদিকে ডিক্লারেটিভ প্রোগ্রামিং ধারায় ভাষার বৈশিষ্ট্য হল, এক্ষেত্রে সমাধানের প্রক্রিয়া নয়, বরং মূল সমস্যাটির বর্ণনা করা হয় কেবল। অভীষ্ট ফলাফলের বৈশিষ্ট্যের সমষ্টি হিসেবে প্রোগ্রামটি গঠিত হয়, এতে কোন নির্দিষ্ট সমাধান প্রক্রিয়াক্রম লিখিত থাকে না। কম্পিউটারটি প্রযোজ্য প্রোগ্রামিং নীতিমালার একটি সংকলন বিশ্লেষণ করে সরবরাহকৃত বৈশিষ্ট্যসমূহের শর্ত পূরণকারী একটি সমাধান নির্ণয় করে। [[চতুর্থ প্রজন্মের প্রোগ্রামিং ভাষা]] [[এসকিউএল]] ডিক্লারেটিভ প্যারাডাইমের প্রয়োগের একটি উদাহরণ, এছাড়াও ফাংশনাল এবং যুক্তিভিত্তিক প্রোগ্রামিংও ডিক্লারেটিভ ধারার অন্তর্গত।
Independent of the imperative branch, [[declarative programming]] paradigms were developed. In these languages, the computer is told what the problem is, not how to solve the problem{{snd}} the program is structured as a set of properties to find in the expected result, not as a procedure to follow. Given a database or a set of rules, the computer tries to find a solution matching all the desired properties. An archetype of a declarative language is the [[fourth-generation programming language|fourth generation language]] [[SQL]], and the family of functional languages and logic programming.
 
ফাংশনাল প্রোগ্রামিং ধারায় লিখিত প্রোগ্রামগুলো ফাংশনের মাধ্যমে কাজ করে। ফাংশন হল একটি নির্দিষ্ট কাজে নিয়োজিত কোডের একটি খণ্ড (ব্লক)। ফাংশনাল ভাষার প্রোগ্রামের প্রতিটি ফাংশনেট ইনপুট এবং আউটপুট সুনির্দিষ্ট থাকে, এবং সাইড ইফেক্ট (অর্থাৎ, ইনপুট এবং আউটপুটের বাইরের তথ্য পাঠ বা পরিবর্তন) অযাচিত। ফাংশনাল ভাষায় কোন [[ভ্যারিয়েবল]] এর মান এসাইনমেন্ট দ্বারা নির্ধারণ করাও অবাঞ্ছিত, এর পরিবর্তে [[পুনরাবৃত্তি (কম্পিউাট বিজ্ঞান)|পুনারাবৃত্তিক]] ফাংশনের ব্যবহার প্রচলিত।
[[Functional programming]] is a subset of declarative programming. Programs written using this paradigm use [[subroutine|functions]], blocks of code intended to behave like [[function (mathematics)|mathematical functions]]. Functional languages discourage changes in the value of variables through [[assignment (computer science)|assignment]], making a great deal of use of [[recursion (computer science)|recursion]] instead.
 
লজিক প্রোগ্রামিং প্যারাডাইমে প্রোগ্রামিংকে কোন তথ্য সংকলনের ওপর স্বয়ংক্রিয় যৌক্তিক পর্যালোচনার সমতুল্য করে দেখা হয়। সমস্যাক্ষেত্রের সম্পর্কিত তথ্যসমূহকে যৌক্তিক ফর্মুলার আকারে উপস্থাপন করা হয়, এবং প্রোগ্রামটির কাজ হল যৌক্তিক নীতির সাহায্যে ফর্মুলারগুলোর সমাধানে উপনীত হওয়া, অথবা ফর্মুলাগুলোর যৌক্তিক অসঙ্গতি নির্ণয় করা।
The [[logic programming]] paradigm views computation as [[automated reasoning]] over a body of knowledge. Facts about the [[problem domain]] are expressed as logic formulas, and programs are executed by applying [[inference rule]]s over them until an answer to the problem is found, or the set of formulas is proved inconsistent.
 
[[সিম্বলিক প্রোগ্রামিং]] বা প্রতিকী প্রোগ্রামিং প্যারাডাইমের বৈশিষ্ট্য হল, এ ধারার প্রোগ্রামসমূহ সমস্যা সমাধানের এলগরিদমিক ফর্মুলা এবং প্রোগ্রামের নিজস্ব কোডকে তথ্য হিসেবে পর্যবেক্ষণ ও পরিবর্তন করতে পারে।<ref name="symbolic-programming-lisp" /> এধরণের প্রোগ্রামসমূহ ফলত: নিজেদেরকে পরিবর্তন করতে সক্ষম এবং "শিখতে" পারে। ফলে [[কৃত্রিম বুদ্ধিমত্তা]], [[বিশেষজ্ঞ প্রণালী]], [[প্রাকৃতিক ভাষা প্রক্রিয়াকরণ]] এবং [[কম্পিউটার গেম|কম্পিউটার গেমসে]] এ এ প্যারাডাইমের ব্যাপক প্রয়োগ দেখা যায়। এধরণের ভাষার উদাহরণ হচ্ছে [[লিস্প]] এবং [[প্রোলগ]]<ref>{{cite web
[[Symbolic programming]] is a paradigm that describes programs able to manipulate formulas and program components as data.<ref name="symbolic-programming-lisp" /> Programs can thus effectively modify themselves, and appear to "learn", making them suited for applications such as [[artificial intelligence]], [[expert system]]s, [[natural-language processing]] and computer games. Languages that support this paradigm include [[Lisp (programming language)|Lisp]] and [[Prolog]].<ref>{{cite web
|url= http://www.allbusiness.com/glossaries/symbolic-programming/4950308-1.html
|title= Business glossary: Symbolic programming definition
|accessdate= 2014-07-30
|website= allbusiness.com
}}</ref>
 
[[Differentiableডিফারেন্সিয়েবল programmingপ্রোগ্রামিং]] structuresবা programsঅন্তরীকরণীয় soপ্রোগ্রামিংয়ের thatক্ষেত্রে, theyপ্রোগ্রামসমূহ canএমনভাবে beগঠিত হয় যে তাকে সম্পূর্ণরূপে [[Differentiation (mathematics)অন্তরজ|differentiatedঅন্তরীকরণ]] throughout, usually via(এমনকি [[automaticস্বয়ংক্রিয় differentiationঅন্তরীকরণ|স্বয়ংক্রিয়ভাবেও]].) করা সম্ভব যায়।<ref>{{Citation|last=Wang|first=Fei|title=Backpropagation with Callbacks: Foundations for Efficient and Expressive Differentiable Programming|date=2018|url=http://papers.nips.cc/paper/8221-backpropagation-with-callbacks-foundations-for-efficient-and-expressive-differentiable-programming.pdf|work=Advances in Neural Information Processing Systems 31|pages=10201–10212|editor-last=Bengio|editor-first=S.|publisher=Curran Associates, Inc.|access-date=2019-02-13|last2=Decker|first2=James|last3=Wu|first3=Xilun|last4=Essertel|first4=Gregory|last5=Rompf|first5=Tiark|editor2-last=Wallach|editor2-first=H.|editor3-last=Larochelle|editor3-first=H.|editor4-last=Grauman|editor4-first=K.}}</ref><ref name="innes">{{Cite journal|last=Innes|first=Mike|date=2018|title=On Machine Learning and Programming Languages|url=http://www.sysml.cc/doc/37.pdf|journal=SysML Conference 2018|volume=|pages=|via=}}</ref> -->
 
== বহু-প্যারাডাইম ভাষা ==