আমি সমাবেশের ভাষা ব্যবহার করে ঘৃণা করি না, যেহেতু আমি আমার ওএস কোর্সে কিছু লিখেছি। তবে স্পষ্টতই, সমাবেশ ভাষার বিমূর্ততা নেই, আপনাকে বিশদগুলিতে আরও মনোযোগ দিতে হবে।
টিএওসিপি লেখার জন্য কি সমাবেশের ভাষাটি প্রয়োজনীয়?
আমি সমাবেশের ভাষা ব্যবহার করে ঘৃণা করি না, যেহেতু আমি আমার ওএস কোর্সে কিছু লিখেছি। তবে স্পষ্টতই, সমাবেশ ভাষার বিমূর্ততা নেই, আপনাকে বিশদগুলিতে আরও মনোযোগ দিতে হবে।
টিএওসিপি লেখার জন্য কি সমাবেশের ভাষাটি প্রয়োজনীয়?
উত্তর:
তিনি কেবল মিক্সালই নয়, তাঁর ম্যাক্সের জন্য সমাবেশের ভাষাও ব্যবহার করেন না, বরং মিক্স, একটি সাধারণ কম্পিউটারের মডেল (যেমনটি ষাটের দশকে ব্যবহৃত হয়েছিল)। এটি এমন এক শিক্ষার মডেল যা দিয়ে তিনি কিছুটা ক্ষেত্রে ক্ষেত্রে উন্নয়নের চেয়েও স্বাধীন।
তিনি যদি অন্য প্রোগ্রামিং ভাষা ব্যবহার করতেন (কোনটি, আপনি কি মনে করেন যে এটি উপযোগী হত?), এনপিএল বলুন (নিফটি প্রোগ্রামিং ল্যাঙ্গুয়েজ), তাকে ম্যাক্স ব্যবহারের ধারণাটি ত্যাগ করতে হবে বা একটি প্রবর্তন করতে হবে কিছু কম্পিউটারের পছন্দের সংকলক (যা তিনি ভোল 1 এ যা করছেন তার থেকে অনেক জটিল বিষয়)। সেভাবে এটি টিওওসিপি না হয়ে টিওএনপিএলপি হয়ে উঠত। প্রথমটি এই জাতীয় পছন্দ থেকে স্বতন্ত্র এবং এই কারণেই প্রোগ্রামিং সম্পর্কে কয়েকটি বই কখনই সময় কাটবে না। দ্বিতীয়টি সম্ভবত এখনই ভুলে যাবে ...
এছাড়াও, যতক্ষণ না কম্পিউটারগুলি তার মিক্সের মতো নীতিগতভাবে কাজ করে, আপনি কীভাবে কীভাবে তাদের সাথে কাজ করতে শেখার বিষয়ে আগ্রহী তা যদি এটিকে বিবেচনায় নেওয়া ভাল।
আপনি যুবত হুইপারস্পেনাররা আমাকে মাঝে মাঝে বিস্মিত করে। আপনারাও প্রায়শই ক্লাস করেন না যে আপনি স্কুল শুরু করার আগেই কিছু ঘটেছিল। (আমারও একই সমস্যা রয়েছে। প্রাপ্তবয়স্ক দৃষ্টিকোণ থেকে 15 বছর আসলে খুব অল্প সময় ছিল তা বুঝতে আমার অনেক সময় লেগেছে That's এটি হিরোশিমা থেকে কিউবার ক্ষেপণাস্ত্র সঙ্কট পর্যন্ত প্রায় স্প্যান্ট me আমার কাছে দ্বিতীয় বিশ্বযুদ্ধটি কেবল ইতিহাস, তবে আমার পিতা এতে লড়াই করেছিলেন এবং আমার মা এটির মধ্যে জুনিয়র ছিলেন))
টিএওসিপি, খণ্ড 1, "মৌলিক অ্যালগরিদম", 1 ম সংস্করণ, 1968 সালে প্রথম মুদ্রিত হয়েছিল That's এটি 45 বছর আগে ago এর আগে নুথ সিরিজটির পরিকল্পনা শুরু করেছিলেন।
রেফারেন্সের জন্য: ইন্টেল 8086 প্রথম দশ বছর পরে 1978 সালে হাজির হয়েছিল। পাস্কাল ভাষাটি ১৯AL১ সালে প্রথম প্রকাশিত হয়েছিল; ভাষার দ্বিতীয় সংস্করণ সম্পর্কে জেনসন ও রাইথ বইটি ১৯ 197৪ সালে প্রকাশিত হয়েছিল C সি এর প্রাথমিক বিকাশ ছিল ১৯69 -19 -১৯73৩: কে অ্যান্ড আর ১৯ 197৮ সালে প্রকাশিত হয়েছিল।
নোথ মাঠটি coverেকে দেওয়ার জন্য সিরিজটি তৈরির পরিকল্পনা করেছিলেন। অনুশীলনকারীদের দরকারী হয়ে ওঠার জন্য তিনি, তারপর শৈলীটি সেট করলেন। তিনি কখনও এই প্রত্যাশা করেননি যে এই সিরিজটি তাঁর জীবনের কাজটি আক্ষরিক অর্থেই হয়ে উঠবে, বা এর লেখাগুলিটি বিস্তৃত হবে যা শেষ পর্যন্ত শেষ হওয়ার পরে সম্ভবত অর্ধ শতাব্দীরও বেশি ভাল হবে।
সংসদীয় ভাষা তত্ক্ষণিকভাবে ততটা সমালোচিত নয় যেটা তখনকার মতো ছিল তবে জাভা / সি ++ / জাভাস্ক্রিপ্ট / পাইথন / পার্ল ম্যাভেনদের চেয়ে এটি এখনও অনেক বেশি গুরুত্বপূর্ণ যে আপনি সবার বিশ্বাস করতে চান।
এখন আমার লন নামবো!
প্রবন্ধটিতে নুথ তার যুক্তি নিয়ে আলোচনা করেছেন। আমি কয়েক বিট এবং টুকরা উদ্ধৃত করব:
... আমার সিদ্ধান্ত নেওয়া দরকার যে ALGOL বা FORTRAN এর মতো বীজগণিত ভাষা ব্যবহার করতে হবে বা এই উদ্দেশ্যে একটি মেশিন-ভিত্তিক ভাষা ব্যবহার করা উচিত। সম্ভবত আজকের কম্পিউটার বিশেষজ্ঞরা অনেকেই মেশিন-ভিত্তিক ভাষা ব্যবহারের আমার সিদ্ধান্তের সাথে একমত নন, তবে আমি নিশ্চিত হয়েছি যে নিম্নলিখিত কারণে এটি অবশ্যই সঠিক পছন্দ ছিল:
- বীজগণিতীয় ভাষাগুলি এখানে বিবেচিত সংখ্যাসূচক সমস্যার চেয়ে সংখ্যাগত সমস্যার পক্ষে বেশি উপযুক্ত to [...]
- ... একটি মেশিন-ভিত্তিক ভাষায় লিখে, প্রোগ্রামার অনেক বেশি দক্ষ পদ্ধতি ব্যবহার করতে ঝোঁক করবে; এটি বাস্তবের অনেক কাছাকাছি।
- আমাদের প্রয়োজনীয় প্রোগ্রামগুলি হ'ল কয়েকটি ব্যতিক্রম ব্যতীত ছোট ...
- কম্পিউটারে আকস্মিকভাবে আগ্রহী এমন ব্যক্তিকে মেশিনের ভাষায় ভালভাবে স্কুল করা উচিত ...
- কিছু মেশিন ভাষা যেভাবেই প্রয়োজন হবে ...
যদিও তিনি সরাসরি এটিকে নির্দেশ করেননি, আমি মনে করি তাঁর ALGOL এবং ফোরট্রান সম্পর্কে তাঁর উল্লেখ অন্য যে সমস্যাটিকে এড়িয়ে গিয়েছিল তা নির্দেশ করে যা এটি আরও গুরুত্বপূর্ণ হতে পারে। আসুন ধরে নেওয়া যাক তিনি আলগোলকে বেছে নিয়েছিলেন (যাইহোক ফোর্টরানের তুলনায় সংখ্যাসূচক প্রোগ্রামগুলির পক্ষে আরও ভালভাবে উপযুক্ত)) আমি প্রতিক্রিয়া জানাব যে আলগোল সম্ভবত আজকের বেশিরভাগ প্রোগ্রামারদের কাছে তিনি যে সংসদীয় ভাষাটি বেছে নিয়েছিলেন তার চেয়ে বেশি বিদেশী হতে পারে ।
তৃতীয় সংস্করণের জন্য, তিনি আধুনিক প্রসেসরের সাথে আরও নিবিড়ভাবে ফিট করার জন্য তিনি এমআইএক্সকে নতুন করে ডিজাইন করেছিলেন এবং এর জন্য কোডটি আবারও লিখতে হয়েছিল। তবে আমি মনে করি যে তিনি যদি উচ্চ স্তরের ভাষা ব্যবহার করতেন তবে পুনরায় লেখার বিষয়টি যথেষ্ট বড় হত - এবং তিনি যে কারণগুলি দিয়েছিলেন সেগুলিও অবিরত থাকবে।
Knuth তার আপডেট করেছে যুক্তিপূর্ণ পাশাপাশি:
মেশিনের ভাষা কেন?
অনেক পাঠক নিঃসন্দেহে ভাবছেন, `Kn নুথ কেবলমাত্র উচ্চ-স্তরের প্রোগ্রামিং ভাষার প্রতি আটকে থাকার পরিবর্তে অন্য কোনও মেশিন দ্বারা এমআইএক্সকে কেন প্রতিস্থাপন করবেন? আজকাল খুব সহজেই কেউ এসেমব্লার ব্যবহার করেন '' '
এই জাতীয় লোকেরা তাদের মতামতের অধিকারী, এবং তাদের আমার বইয়ের মেশিন-ভাষার অংশগুলি পড়ার দরকার নেই। তবে 1960 এর দশকের গোড়ার দিকে লেখা মেশিন ভাষার যে কারণগুলি আমি ভলিউম 1 এর প্রবন্ধে দিয়েছি, সেগুলি আজ কার্যকর রয়েছে:
- আমার বইগুলির একটি প্রধান লক্ষ্য হ'ল উচ্চ-স্তরের নির্মাণগুলি আসলে মেশিনগুলিতে কীভাবে প্রয়োগ করা হয় তা কেবল এটি কীভাবে প্রয়োগ করা হয় তা দেখানোর জন্য নয়। আমি স্থলভাগ থেকে কর্টিন সংযোগ, গাছের কাঠামো, এলোমেলো সংখ্যা জেনারেশন, উচ্চ-নির্ভুল গণিত, মূলা রূপান্তর, ডেটা প্যাকিং, সংমিশ্রণ অনুসন্ধান, পুনরাবৃত্তি ইত্যাদি ব্যাখ্যা করি।
- আমার বইগুলিতে প্রয়োজনীয় প্রোগ্রামগুলি সাধারণত এত ছোট হয় যে তাদের মূল বিষয়গুলি সহজেই ধরা যায় gra
- কম্পিউটারে আকস্মিকভাবে আগ্রহী লোকেরা অন্তর্নিহিত হার্ডওয়্যার কেমন তা সম্পর্কে কমপক্ষে কিছু ধারণা থাকা উচিত। অন্যথায় তারা যে প্রোগ্রামগুলি লেখেন তা অদ্ভুত হবে।
- যেকোন ক্ষেত্রে মেশিনের ভাষা প্রয়োজনীয়, আমি বর্ণনা করি এমন অনেকগুলি সফ্টওয়্যার প্রোগ্রামের আউটপুট হিসাবে।
- মেশিনের ভাষায় বাছাই এবং অনুসন্ধানের জন্য অ্যালগরিদমের মতো মৌলিক পদ্ধতিগুলি প্রকাশ করা ক্যাশে এবং র্যামের আকার এবং অন্যান্য হার্ডওয়্যার বৈশিষ্ট্যের (মেমরির গতি, পাইপলাইনিং, একাধিক ইস্যু, লুকাসাইড বাফারস, ক্যাশে ব্লকের আকার, ইত্যাদি) বিভিন্ন প্রকল্পের তুলনা করার সময়।
তদুপরি, আমি যদি উচ্চ-স্তরের ভাষা ব্যবহার করি তবে এটি কোন ভাষা হওয়া উচিত? 1960 এর দশকে আমি সম্ভবত আলগোল ডাব্লু বেছে নিয়েছি; 1970নসত্তর দশকে আমাকে তখন পাস্কাল ব্যবহার করে আমার বইগুলি আবার লিখতে হত; ১৯৮০ এর দশকে, আমি অবশ্যই সমস্ত কিছু সিতে পরিবর্তন করতাম; 1990 এর দশকে, আমাকে সি ++ এবং তার পরে সম্ভবত জাভাতে যেতে হবে। 2000 এর দশকে, অন্য একটি ভাষা অবশ্যই সন্দেহ করবে ডি রিগার। ভাষাগুলি ফ্যাশনের অভ্যন্তরে চলে যাওয়ার সাথে সাথে আমার বইগুলি পুনরায় লেখার জন্য আমি সময় দিতে পারি না; ভাষাগুলি আমার বইগুলির বিন্দু নয়, মূল বিষয়টি আপনি নিজের পছন্দসই ভাষায় কী করতে পারেন তা নয়। আমার বইগুলি নিরবধি সত্যকে কেন্দ্র করে।
তাই আমি টিএওসিপিতে উচ্চ-স্তরের ভাষা হিসাবে ইংরেজি ব্যবহার করতে থাকব, এবং মেশিনগুলি কীভাবে প্রকৃতভাবে গণনা করা হয় তা বোঝাতে আমি নিম্ন-স্তরের ভাষা ব্যবহার করতে থাকব। যে পাঠকরা ইতিমধ্যে একটি ট্রেন্ডি ভাষা ব্যবহার করে প্লাগইন উপায়ে প্যাকেজযুক্ত অ্যালগরিদমগুলি দেখতে চান তাদের অন্য ব্যক্তির বই কেনা উচিত।
সুসংবাদটি হ'ল আরআইএসসি মেশিনগুলির জন্য প্রোগ্রামিংটি মনোজ্ঞ এবং সহজ, যখন আরআইএসসি মেশিনটির একটি সুন্দর পরিষ্কার নকশা থাকে। সুতরাং আমি আরকেনের উপর মনোনিবেশ করার দরকার নেই, খুব কম সংখ্যক বিবরণ যা মূল বিষয়গুলি থেকে বিভ্রান্ত হয়। এই ক্ষেত্রে এমএমআইএক্স এমআইএক্সের চেয়ে উল্লেখযোগ্যভাবে ভাল হবে।