প্রোগ্রামিং ভাষা কি প্রাকৃতিক ভাষার মতো হয়ে উঠছে?


27

ভাষাগত প্রসঙ্গে আমরা কি প্রোগ্রামিং ভাষা অধ্যয়ন করতে পারি? প্রোগ্রামিং ভাষাগুলি কি প্রাকৃতিক ভাষার মতো একইভাবে প্রাকৃতিকভাবে বিকশিত হয়?

যদিও প্রোগ্রামিং ভাষার জন্য সম্পূর্ণ যৌক্তিকতা এবং গাণিতিক ধারাবাহিকতা অপরিহার্য, তবুও তাদের কাছে পাঠযোগ্য এবং আরামদায়ক করে তোলার প্রয়োজনীয়তা (বিশেষত আধুনিক ভাষাগুলি) রয়েছে।

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

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

আপনি সব কি মনে করেন? প্রোগ্রামিং ভাষাগুলি কি আরও প্রাকৃতিক ভাষার মতো হয়ে উঠছে এবং এইভাবে ভাষাবিজ্ঞানের আইনগুলির জন্য প্রযোজ্য হয়ে উঠছে?

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

(বাবেল টাওয়ার প্রভাব) মানব ভাষা এবং কম্পিউটারের ল্যাঙ্গেজগুলির বিভাজনের মধ্যে কি কোনও সংযোগ রয়েছে? একই কারণে (যেমন চির-বিবর্তিত কম্পিউটার-সিস্টেম / সংস্কৃতি-সিস্টেম ইত্যাদির মধ্যে বিভিন্ন সমস্যা সমাধানের জন্য) তারা কি আরও বৈচিত্র্যময় হয়ে ওঠে?


3
সংক্ষিপ্ত উত্তর: হ্যাঁ, হ্যাঁ তারা।

17
সংক্ষিপ্ত উত্তর: না, না তারা নয়।


3
কম্পিউটার ভাষাগুলি সংক্ষিপ্ততা এবং নির্ভুলতার সাথে ভাল কিছুটা করতে পারে, যেমন কিছুটা গাণিতিক স্বরলিপি, যা গত কয়েক হাজার বছর ধরে প্রাকৃতিক ভাষার প্রতি (যে সম্পর্কে আমি অবগত) towards আমি আরও সন্দেহ করি যে আপনি যদি তাঁর শিশুর সাথে তাঁর জীবনের প্রথম কয়েক বছর ধরে হাস্কেলে একচেটিয়াভাবে যোগাযোগ করেন তবে সে প্রাকৃতিক ভাষার স্বচ্ছলতা বিকাশ করতে পারে। সুতরাং, আমি মনে করি প্রাকৃতিক এবং কম্পিউটারের ভাষাগুলির মধ্যে বেশ তীব্র বিপরীতে রয়েছে। আমি মনে করি, ভাষা নির্মাণ কৌশলগুলির ব্যাপক প্রসার সময়ের সাথে "স্বাভাবিকতা" কিছুটা উন্নত করেছে, আমি মনে করি।

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

উত্তর:


32

আসলেই না, না। প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি কেবলমাত্র "আমাদের ইংরাজীতে শব্দ রয়েছে" ( sic ) অর্থে প্রাকৃতিক ভাষার মতো হয়ে উঠেছে ।

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

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

১৯৮০ এর দশক পর্যন্ত, বেশিরভাগ এনএলপি সিস্টেমগুলি হাতে লিখিত নিয়মের জটিল সেটগুলির উপর ভিত্তি করে ছিল। ১৯৮০ এর দশকের শেষভাগ থেকে শুরু করে, ভাষা প্রক্রিয়াজাতকরণের জন্য মেশিন লার্নিং অ্যালগরিদম প্রবর্তনের সাথে এনএলপিতে একটি বিপ্লব হয়েছিল। এটি উভয়ই মুরের আইন অনুসারে কম্পিউটেশনাল পাওয়ারে অবিচ্ছিন্ন বৃদ্ধি এবং ভাষাবিজ্ঞানের চৌমস্কিয়ান তত্ত্বগুলির (যেমন রূপান্তরিত ব্যাকরণ) আধিপত্যের ক্রমশ হ্রাস হওয়ায় উভয়ের কারণেই ছিল, যার তাত্ত্বিক অনুভূতিগুলি কর্পাস ভাষাতত্ত্বের ধরণের নিরুৎসাহিত করেছিল যা মেশিন-লার্নিং পদ্ধতির অন্তর্নিহিত ছিল। ভাষা প্রক্রিয়াজাতকরণ।

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

Rather বা পরিবর্তিত পরিস্থিতিগুলির সাথে বর্ণিত সম্ভাব্য আচরণগুলির সেটটি পরিবর্তিত হয় তবে এটি মডেলিংয়ের ক্ষেত্রে কেবলমাত্র এক পদক্ষেপই যোগ করে, সুতরাং এটি এখানে প্রকৃতপক্ষে প্রাসঙ্গিক নয়।


এটি লক্ষণীয় যে প্রোগ্রামিং ভাষার মতো "প্রাকৃতিক" ভাষাগুলি তৈরি করার চেষ্টাগুলি খুব ভাল, খুব সফল হয়নি। লোজবানকে সর্বাধিক উন্নত উদাহরণ হিসাবে দেখুন ।
ডগল

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

2

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

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

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


2

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

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

সুতরাং, এখানে এমন একটি মামলা রয়েছে যেখানে কম্পিউটার ভাষার বিবর্তন একটি প্রাকৃতিক ভাষা ধারণা থেকে দূরে চলে গেছে । তদুপরি, কম্পিউটার প্রোগ্রামিং ভাষার সাধারণ ইতিহাস হ'ল এগুলি বিকশিত করা হয়েছে এবং অস্পষ্টতা (যা প্রাকৃতিক ভাষার অন্তর্নিহিত) মুছে ফেলার জন্য পরিবর্তিত হয়েছে । সংকলকগুলির ইতিহাসের প্রথম দিকে এটি বোঝা যায় নি (সম্ভবত ১৯ 1970০ এর দশকে বলা যেতে পারে) এবং উদাহরণস্বরূপ ফোর্টরান ভাষার প্রাথমিক সংস্করণগুলির দ্বিধাহীন অর্থ সহ বিবৃতি ছিল যা সংকলক বাস্তবায়নের উপর নির্ভর করে। পার্সিং সম্পর্কিত সিএস ভাষার কিছু তত্ত্ব ভাষা পার্সিংয়ে অস্পষ্টতার আবিষ্কারের প্রতিক্রিয়ায় আংশিকভাবে বিকশিত হয়েছিল।


আপনার আপনার তারিখগুলি ভুল আছে: পার্ল 1987 সালে মুক্তি পেয়েছিল, 1989 সালে বাশ।
tchrist

1

যন্ত্রের ভাষা খুব সুনির্দিষ্ট, যখন একটি মানব-লিখিত পাঠ্যটি সাধারণত বিভিন্নভাবে ব্যাখ্যা করা যায় (উদাহরণস্বরূপ কিছু কাব্যিক পাঠ্য)।

যা আরও বেশি বিকশিত হয় তা হ'ল নিদর্শনগুলির সাথে মিল, উদাহরণস্বরূপ আপনি যখন কিছু কুৎসিত কোড লিখেন তখন একটি সংকলক আপনাকে বেশ কয়েকটি সম্ভাব্য সমাধানের প্রস্তাব দেওয়ার ক্ষেত্রে সহায়তা করতে পারে এবং তারপরে এমন কিছু সতর্কতা বা ত্রুটি ছুঁড়ে দেয় যা আপনাকে নিজের ক্ষতি করতে সহায়তা করে। (উদাহরণস্বরূপ সাধারণ কোড নিদর্শনগুলির উপর ভিত্তি করে)

ইন্টারঅ্যাকশন / ডিজাইনের নিদর্শনগুলির বিষয়ে নির্দিষ্ট গবেষণা রয়েছে, এমনকি টি 9 এবং এসডাব্লুওয়াইপি হ'ল এমন নিদর্শনগুলি যা আপনাকে অনেক বেশি সহায়তা করে (এমন প্রোগ্রাম যা আপনার ভয়েস রেকর্ড করে এবং পাঠ্যে রূপান্তরিত করে সেগুলিও নিদর্শন শনাক্তকারী)।

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

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

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


1

কয়েক বছর আগে আমার বড় ছেলে এবং আমি নিম্নলিখিত প্রশ্নের উত্তর দেওয়ার স্বার্থে একটি সরল ইংলিশ প্রোগ্রামিং এবং বিকাশ ব্যবস্থা তৈরি করেছি:

  1. নিম্ন-স্তরের প্রোগ্রামগুলি (সংকলকের মতো) কি উচ্চতর স্তরের ভাষাগুলিতে (ইংরাজির মতো) সুবিধে এবং দক্ষতার সাথে রচনা করা যেতে পারে?

  2. প্রাকৃতিক ভাষাগুলি কি তুলনামূলকভাবে "opালু" পদ্ধতিতে পার্স করা যায় এবং এখনও উত্পাদনশীল প্রোগ্রামিংয়ের জন্য একটি স্থিতিশীল পর্যাপ্ত পরিবেশ সরবরাহ করতে পারে?

  3. আপনি যখন আপনার প্রাকৃতিক-ভাষা চিন্তাগুলি কোনও বিকল্প বাক্য গঠনে অনুবাদ না করতে পারেন তখন কি প্রোগ্রাম করা সহজ?

প্রত্যক্ষ অভিজ্ঞতা থেকে আমরা এখন এই তিনটি প্রশ্নের উত্তর দিতে পারি, একটি দুর্দান্ত "হ্যাঁ" সহ।

আমাদের পার্সার মানব মস্তিষ্কের মতো কিছু মনে করে, পরিচালনা করে। বিবেচনা. একজন বাবা তাঁর বাচ্চা ছেলেকে বলেছেন:

"এই বোতলটি চুষতে চাই, ছোট্ট ছেলে?"

এবং বাচ্চা শুনে,

"ব্লা, ব্লা, এসইউকে, ব্লা, ব্লা, বট, ব্লা, ব্লা।"

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

একটি সাধারণ ধরণের সংজ্ঞা এর মতো দেখাচ্ছে:

বহুভুজ এমন একটি জিনিস যা কিছু শীর্ষে ছেদ করে।

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

একটি সাধারণ রুটিনটি এরকম দেখাচ্ছে:

বহুভুজের সাথে একটি এক্স কোর্ড এবং আই কোর্ড যুক্ত করতে: x এবং y এর সাথে একটি শীর্ষবিন্দু তৈরি করুন। বহুভুজের শীর্ষে কোণে যুক্ত করুন।

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

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

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

সর্বনিম্ন স্তরে জিনিসগুলি দেখতে এ রকম দেখাচ্ছে:

অন্য কোনও সংখ্যার সাথে একটি নম্বর যুক্ত করতে: ইন্টেল $ 8B85080000008B008B9D0C0000000103।

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

আপনি আমাদের বিকাশ ব্যবস্থাটি এখানে পেতে পারেন: www.osmosian.com/cal-3040.zip। এটি একটি ছোট উইন্ডোজ প্রোগ্রাম, আকারের একটি মেগাবাইটের চেয়ে কম। আপনি যদি "ডকুমেন্টেশন" ডিরেক্টরিতে পিডিএফ দিয়ে শুরু করেন, দশ পৃষ্ঠায় যাওয়ার আগে আপনি নিজের মধ্যে পুরো শেবাংটি পুনরায় সংশ্লেষ করবেন (ওয়ালমার্ট থেকে লাইন মেশিনে তিন সেকেন্ডেরও কম সময়ে)।

প্রশ্ন এবং মন্তব্যগুলি গ্রেরি.আরজেপ্পা@পোবক্স.কম এ সম্বোধন করা উচিত


আপনি কি চেষ্টা করার চেষ্টা করছেন ? Fif.uzh.ch/site/ বিবরণী নিয়ন্ত্রিত ইংরেজি? আপনি যে এবং Inform7 মধ্যে বসা হবে বলে মনে হচ্ছে en.wikipedia.org/wiki/Inform#Example_game_2
পিট Kirkham

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

1

বিচ্ছিন্ন জনগোষ্ঠীতে মানব ভাষার পৃথকীকরণ (দারভিয়ান?) বিবর্তন থেকে আসে। প্রোগ্রামিং ভাষার পৃথকীকরণ প্রযুক্তিগত প্রয়োজনের বিভিন্নতা, প্রযুক্তিগত মতাদর্শ, প্রযুক্তিগত এবং তাত্ত্বিক বোঝার পরিবর্তন থেকে, বাস্তবায়নের আমাদের প্রযুক্তিগত দক্ষতার পরিবর্তন থেকে আসে। এটি কিছুটা সচেতন প্রক্রিয়া, আমার ধারণা।

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

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

ফর্মালিজম এবং প্রোগ্রামিং ল্যাঙ্গুয়েজে আরও সমৃদ্ধ এবং আরও নমনীয় সিনট্যাক্স থাকতে পারে। আমি বিশ্বাস করি তারা না করার মূল কারণটি হ'ল সাধারণ রক্ষণশীলতা। সেই সময়ের কম্পিউটারগুলির সীমাবদ্ধতা মেটাতে ব্যবহৃত সিনট্যাকটিক সরঞ্জামগুলি এখনও প্রায়শই ত্রিশ বছর আগে বা তারও বেশি সময় পরিকল্পিত সরঞ্জাম tools পার্সিং দক্ষতা সংকলনের ক্ষেত্রে আর এই জাতীয় সমালোচনা নয় এবং আরও শক্তিশালী কৌশলগুলি ট্র্যাক্টে উপস্থিত রয়েছে exist

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

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

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

এখন, অন্য দৃষ্টিকোণ নিতে, প্রোগ্রামগুলি আসলে গাণিতিক বিবৃতি হিসাবে দেখা তাদের স্পেসিফিকেশনের প্রমাণ (ভাল, আমি আবার সরল করছি)। কিছু লোক (আমি রেফারেন্স মনে করি না, দুঃখিত) প্রপঞ্চ তৈরি করার জন্য প্রপঞ্চ প্রবাদের সাথে খেলছি যা দেখে মনে হবে যে তারা কোনও গণিতবিদ লিখেছেন যেমন প্রাকৃতিক ভাষায়। সুতরাং আমি অনুমান করি যে প্রোগ্রামগুলি এমন মনে হচ্ছে যেগুলি প্রাকৃতিক ভাষায় লিখিত হয়েছিল দেখে মনে হচ্ছে এটি সম্পূর্ণ অযৌক্তিক নয়।

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

ইতিহাসের দিকে ফিরে তাকালে, উচ্চ স্তরের ভাষাগুলি প্রথম থেকেই (ফরটারান) গণ্যমূলক কাজগুলি প্রকাশের জন্য আরও প্রাকৃতিক রূপের আরও কাছাকাছি যাওয়ার চেষ্টা ছিল, তবে এই কাজগুলি গাণিতিক বা যৌক্তিক হিসাবে বোঝা হত (ফোর্ট্রান 1957, আলগোল 1958, লিস্প 1958) ), বা আরও ব্যবসায়িক ভিত্তিক (কোবল 1959)। 10 বছরের মধ্যে লোকেরা ভাষাগুলি সম্পর্কে উদ্বিগ্ন ছিল যা নিকটবর্তী হবে, হাতের সমস্যার সাথে আরও ভাল খাপ খাইয়েছে, এবং extensible languagesসিনট্যাক্স এবং শব্দার্থক উভয়কেই কভার করে তথাকথিত মধ্যে উল্লেখযোগ্য গবেষণা হয়েছিল । সমস্যাটিকে আরও প্রাকৃতিকভাবে প্রকাশের জন্য একটি প্রধান পথ হ'ল object orientation(কখনও কখনও অন্য নামে)। যদিও পিতৃত্বের দায়িত্ব অর্পণ করা সবসময়ই কঠিন, সম্ভবত এটি কৃত্রিম বুদ্ধিমত্তার কাজ থেকে বেশিরভাগ লিস্পে এবং ভাষা থেকে উদ্ভূত হয়েছিলSimula 67(আলগোল পরিবার) যা নিজেই কম্পিউটারে আরও প্রাকৃতিক বাস্তব সমস্যাগুলি প্রকাশ করার উদ্দেশ্যে তৈরি হয়েছিল। এগুলি সব historতিহাসিকভাবে সুসংগত বলে মনে হচ্ছে।


0

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

কম্পিউটার বিজ্ঞানী এবং "প্রাকৃতিক" লোকের মধ্যে ব্যবধান সঙ্কুচিত হলে প্রাকৃতিক ভাষা এবং প্রোগ্রামিং ভাষার মধ্যে ব্যবধান সঙ্কুচিত হবে।


0

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

কিছুটা হলেও, এগুলি কোডটি আরও প্রাকৃতিকভাবে পড়তে দেয়। আমি গ্রোভির একটি ইডিএসএল উদাহরণ দিয়ে চিত্রিত করব। Groovy.time প্যাকেজ লেখার আপনি করতে পারবেন

use ( TimeCategory ) {
    // application on numbers:
    println 1.minute.from.now
    println 10.days.ago

    // application on dates
    def someDate = new Date()
    println someDate - 3.months 
}

আপনি যদি জাভা.ইটি.ল ক্যালেন্ডার ক্লাসের মাধ্যমে এটি করতে থাকেন তবে প্রথম উদাহরণের জন্য আপনাকে এ জাতীয় কিছু লিখতে হবে:

void demo() {
    Calendar date = new GregorianCalendar();
    date.add(Calendar.MINUTE, 1);
    System.out.println(date);
}

0

কম্পিউটার ভাষা (এমনকি দীর্ঘ অতীতের প্রাথমিক যন্ত্রগুলির ভাষাগুলি) হ'ল মানব ভাষা, কারণ এগুলি প্রাথমিকভাবে সহমানুষের সাথে যোগাযোগের জন্য, মানুষের দ্বারা সংজ্ঞায়িত করা হয় এবং কেবল কোনও মেশিনের নির্দেশনা জানাতে ব্যবহৃত হয় second সুতরাং তারা "প্রাকৃতিক" ভাষাগুলি একইভাবে বিকশিত হয় (কেবল আপনার পছন্দসই ভাষার জন্য "মূর্তিগুলি দেখুন", দেখুন কীভাবে সি ও কে আর আর সি থেকে বর্তমান আইএসও-সি ২০১১ তে বিবর্তিত হয়েছে But তবে তারা ভিন্ন পরিবেশে বিদ্যমান, তারা অবশ্যই সুনির্দিষ্ট অর্থ জানাতে হবে (কম্পিউটারগুলি এখনও বোঝার জন্য খুব বেশি বোনা এবং সেগুলির বিষয়ে যা বলা হয় তা সঠিক করে তোলে) এবং প্রক্রিয়াকরণে স্বাচ্ছন্দ্যের একটি প্রিমিয়াম রয়েছে (সুতরাং সি ++, পিএল / 1, বা এপিএল এর ব্যাকরণ এবং শব্দভান্ডার অনেক সহজ উদাহরণস্বরূপ ইংরাজির চেয়ে প্রাকৃতিক ভাষাগুলি সহজ সরল)।

একই জিনিস গণিত বা সাধারণভাবে বিজ্ঞানের আনুষ্ঠানিকতা বা ব্লুপ্রিন্ট সম্পর্কেও বলা যেতে পারে (সহজাতভাবে 2 ডি, অন্যদের মতো 1 ডি নয়)।

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