প্রথম সংকলকগুলি কীভাবে তৈরি হয়েছিল?


70

আমি সর্বদা এটি অবাক করে থাকি এবং সম্ভবত প্রোগ্রামিং ভাষাগুলির বিষয়ে আমার একটি ভাল ইতিহাসের পাঠ দরকার। তবে যেহেতু আজকাল বেশিরভাগ সংকলক সি-তে তৈরি হয়, তাই প্রথম সংকলকগুলি কীভাবে তৈরি করা হত (সি এর আগে একেএ) বা সমস্ত ভাষার সুনির্দিষ্ট ব্যাখ্যা করা হত?

এই কথার সাথে, আমি এখনও প্রথম সমাবেশ ভাষাটি কীভাবে করা হয়েছিল তা বুঝতে পারি না, সমাবেশ ভাষা কী তা আমি বুঝতে পারি তবে তারা দেখতে পাচ্ছে না যে তারা কীভাবে প্রথম বিধানসভা ভাষাটি কাজ করেছিল (যেমন, তারা কীভাবে প্রথম তৈরি করেছিল কমান্ড (পছন্দ mov R21) বা ডাব্লু / ই বাইনারি সমতুল্য সেট?


9
আমার দলে একবার হাস্যকরভাবে অদক্ষ প্রোগ্রামার ছিল, যেখানে সে সবই সি # নিয়ে অভিযোগ করেছিল। আমরা ক্র্যাঙ্ক নামে একটি উদ্ভাবিত কল্পিত ভাষা আবিষ্কার করেছি about ক্রাঙ্ক সম্পর্কে একটি সামান্য পরিচিত তথ্য, এটি প্রথম ভাষা যেখানে সংকলকটি ক্র্যাঙ্কে ALSO লিখিত ছিল। :)
ম্যাপেল_শ্যাফ্ট

2
কেন কেউ সি # নিয়ে অভিযোগ করবেন? তিনি কি কখনও স্মার্টটাক বা লিস্প ব্যবহার করেন নি? lol


4
@ ম্যাপেল_শ্যাফ্ট: ফর্সা হওয়ার জন্য, সিসিতে জিসিসি সংকলকটি লেখা আছে । আপনার যদি প্রথম সংস্করণটি সংকলন করার জন্য ভাল ক্রস সংকলক থাকে তবে এটি আসলে কোনও সমস্যা নয়। প্রথম সি সংকলক অবশ্যই অন্য ভাষায় লিখতে হয়েছিল।
স্কট হুইটলক

উত্তর:


89

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

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

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

আপনি কম্পাইলার এবং প্রোগ্রামিং ভাষার একটি ইতিহাস চান, আমি আপনাকে একটি ইতিহাস এতে যান ফোরট্রান


27
। । । এবং এটি হ'ল না "... আমি আপনাকে একটি ইতিহাসে জেএমপি প্রস্তাব দিচ্ছি ..."
বাইনারি ওয়ারিয়ার

2
আমি খুব খুব দুঃখিত। কিন্তু আমার ছিল। আমি শুধু ... ছিল। থেকে ...
ডেভ মার্কেল

9
@ ডেভ: আপনি বুঝতে পেরেছেন যে ভেলোসিরাপটরের দ্বারা আপনি নিজেকে মৃত্যুবরণ করেছেন ?
বাইনারি ওয়ারিয়ার

7
তারা "জানত" কারণ তারা যখন কোনও প্রদত্ত নির্দেশের জন্য 101010100 সিগন্যাল দেখেছিল তখন তারা অপারেশনটি সম্পাদন করতে আক্ষরিকভাবে কঠোর ছিল। তাদের প্রকৃতপক্ষে একটি অন-চিপ ইউনিট নির্দেশিকাটির ডিকোডিং নির্দেশের জন্য দায়ী: en.wikedia.org/wiki/Decoder
ডেভ মার্কেল

7
মূল্য সংযোজন: একটি নতুন ভাষার সংকলক, যখন একই নতুন ভাষায় লেখা হয়, কখনও কখনও "প্রোটো-সংকলক" সংকলিত হয় যা অন্য ভাষায় লিখিত হয় যা প্রদর্শিত-সঠিক, তবে ভয়াবহভাবে-অদক্ষ কোড তৈরি করে। একবার এত সংকলিত হয়ে গেলে এরপরে যুক্তিসঙ্গতভাবে দ্রুত সংকলক তৈরি করার জন্য এটি নিজেই চালিত হয়। ভন নিউমান মেশিনের সাথে তুলনা করুন। : ডি
বিএমডান

54

এটিই সংকলক বুটস্ট্র্যাপিং সম্পর্কে (যেহেতু এটি কীভাবে = বলা হয় তা কেউ উল্লেখ করেনি)।

লক্ষ্য প্রোগ্রামিং ভাষায় একটি সংকলক (বা এসেম্বারার) লেখার প্রক্রিয়া যা এটি সংকলন করার উদ্দেশ্যে। এই কৌশলটি প্রয়োগ করা একটি স্ব-হোস্টিং সংকলককে নিয়ে যায়।

অনেক প্রোগ্রামিং ভাষার জন্য অনেক সংকলক বুটস্ট্র্যাপ করা হয় যার মধ্যে বেসিক, এএলজিএল, সি, প্যাসকাল, পিএল / আই, ফ্যাক্টর, হাস্কেল, মডুলা -২, ওবেরন, ওক্যামেল, প্রচলিত লিস্প, স্কিম, জাভা, পাইথন, স্কালা এবং আরও অনেকের জন্য সংকলক রয়েছে including ।

মুরগি ও ডিমের সমস্যা

এক্স এক্স ভাষার সংকলক (যদি ভাষা এক্স ভাষায় লেখা হয়) পেতে X ভাষার জন্য একটি সংকলক প্রয়োজন, তবে প্রথম সংকলক কীভাবে রচনা পেল? এই মুরগি বা ডিমের সমস্যা সমাধানের সম্ভাব্য পদ্ধতিগুলির মধ্যে রয়েছে:

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

ভাল লিঙ্ক যা আপনাকে en.wikedia.org/wiki/History_of_compiler_writing এ নিয়ে যায় । সাধারণভাবে, আমি মনে করি মূল সংকলকগুলি অ্যাসেম্বলি ল্যাঙ্গুয়েজে লেখা হয়েছিল ( en.wikedia.org/wiki/As आशीर्वाद_ language )। কেবল পরে বুটস্ট্র্যাপিং বা স্ব-হোস্টিংয়ের ধারণাটি এসেছিল।
মাইকেল লেভি

1
+1 অবশেষে! অদ্ভুত যে এটি কেবলমাত্র তৃতীয় সর্বোচ্চ রেটযুক্ত উত্তর। হ্যাঁ, বুটস্ট্র্যাপিং। এটাই উত্তর
অ্যাডাম র্যাকিস

15

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

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


4
কার্ডগুলির আগে আপনার ঠিকানার জন্য একটি স্যুইচ, ডেটা শব্দের জন্য একটি সেট এবং ডেটা লোড করার জন্য একটি স্যুইচ ছিল। আপনি বাইনারি উপস্থাপনার সাথে ঠিকানা এবং ডেটা স্যুইচ সেট করে প্রতিটি মেমরি ঠিকানা পৃথকভাবে প্রোগ্রাম করে এবং তারপরে লোড সুইচটি ক্লিক করে রেখেছিলেন। এটি যুগে যুগে লেগেছিল তবে প্রোগ্রামটি কেবল কয়েকটি শব্দ দীর্ঘ ছিল - তখন বাইটগুলি আবিষ্কার করা হয়নি।
12:30

4
... এবং তার আগে, আপনাকে এটি পুনর্নির্মাণ করতে হবে । মজা মজা মজা!
মাইকেল কে

হ্যাঁ, তবে যখন আপনাকে এটি করতে হয়েছিল, এটি আসলে আমরা আধুনিক কম্পিউটার হিসাবে ভাবতাম না, কারণ ভন নিউম্যান আর্কিটেকচারটি এখনও আবিষ্কার হয়নি।
ডেভ মার্কেল

7

40 মিনিটের দশক থেকে একটু গুগলিং ইডিএসএসি প্রাথমিক সূচনা দেয় । যেহেতু এটি প্রথম সমাবেশকারী ছিল, সম্ভবত এটি মেশিনের ভাষায় কোড করা হয়েছিল।

পরে অন্যান্য মেশিনগুলির জন্য এসোবিলাররা এসেছিলেন, যেমন IOM 650 এর জন্য এসওএপি প্রথম এবং দ্বিতীয় S

একটু পরেই ফোরট্রান (সূত্র অনুবাদক) এসে আইবিএম 704. সম্ভবত এটা 701 জন্য 704. গোড়ার দিকের একটি প্রতীকী ভাষান্তর জন্য প্রতীকী ভাষান্তর লেখা ছিল জন্য কৃতিত্ব দিতে হয় নাথান রচেস্টার

আপনি একটি ধারণা কিভাবে মেশিন ভাষায় একটি কম্পিউটার প্রোগ্রাম চাই, আমার প্রিয় সাইট এক, খুঁজে বার করো পেতে চান হ্যারি পোর্টার এর রিলে কম্পিউটার


হোলি ক্র্যাপ, হ্যারি পোর্টার (প্রায় হ্যারি পটার লোল বলেছিলেন) হোম বিল্ট কম্পিউটারটি দুর্দান্ত W আমি আমি বুঝতে কিভাবে যে ভালো কিছু নির্মাণ করা হয়েছিল :( কামনা করি।

1
@ সাওরন: হ্যারি পোর্টার আপনাকে জানাতে চেয়ে ভাল কিছু চাইবেন না। সেই পৃষ্ঠাটির বাইরে তিনি একটি সুন্দর নকশাকৃত পাওয়ারপয়েন্ট পেয়েছিলেন যা এই সমস্ত ব্যাখ্যা করে। এটি সার্কিটরি সম্পর্কে কিছু প্রাথমিক জ্ঞান অনুমান করে তবে এটি পাওয়া খুব কঠিন নয়।
মাইক ডুনলাভে

আমি জানি আমি কেবল ম্যাসিন করছি ^ _ ^, এটি একটি চিত্তাকর্ষক মেশিন নির্বিশেষে এবং নিশ্চিত যে এর মধ্যে অনেক উইজার্ড সময় রাখা হয়েছিল :)।

6

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

খুব প্রথম কম্পিউটারগুলিকে শারীরিক স্যুইচগুলি টগল করে সরাসরি বাইনারিতে প্রোগ্রাম করা হয়েছিল। এটি একটি দুর্দান্ত উত্পাদনশীলতার উন্নতি যখন প্রোগ্রামার (বা ডেটা এন্ট্রি সহকারী) কেপ্যাডের মাধ্যমে হেক্সডিসিমাল সংখ্যায় কোড প্রবেশ করতে দেয়!

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

আপনার যখন এসেম্বলার থাকে, আপনি এসেম্বেলারে উচ্চ স্তরের ভাষার জন্য একটি সংকলক লিখতে পারেন।

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

আজ, একটি নতুন ভাষার প্রথম সংকলক প্রায়শই সিতে রচিত হয়, তবে যখন ভাষাটি একটি নির্দিষ্ট পরিপক্কতায় পৌঁছায় তখন প্রায়শই এটি "নিজের মধ্যে" আবার লেখা হয়। প্রথম জাভা সংকলক সি-তে লেখা হয়েছিল, তবে পরে জাভাতে আবার লেখা হয়েছিল। প্রথম সি # সংকলক সি ++ তে লেখা হয়েছিল, তবে সম্প্রতি এটি সি # তে আবারও লেখা হয়েছে। পাইথন সংকলক / দোভাষা সিতে লেখা হয়, তবে পাইপাই প্রকল্পটি পাইথনে এটি পুনরায় লেখার চেষ্টা।

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

তবে আপনাকে সংকলকের জন্য সিটিকে "প্রারম্ভিক ভাষা" হিসাবে ব্যবহার করতে হবে না। প্রথম এফ # সংকলকটি ওকমলটিতে রচিত হয়েছিল, এটি অন্য ভাষা যা এফ # এর সাথে খুব ঘনিষ্ঠভাবে সম্পর্কিত। সংকলকটি সম্পূর্ণ হয়ে গেলে, এটি F # এ আবার লেখা হয়েছিল। পার্ল 6 প্রথম কম্পাইলার মধ্যে Haskell লেখা হয়েছিল (ক বিশুদ্ধ কার্মিক ভাষা খুব কিন্তু এখন পার্ল থেকে আলাদা) একটি কম্পাইলার সি তে লেখা হয়েছে

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


3

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

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


2

এটি এতটা কঠিন নয়, যেমনটি মনে হয়। শৈশবে;) আমি কিছু x86 মনের মধ্যে বিচ্ছিন্ন করেছিলাম।

এমনকি আপনার এটি বিশেষভাবে শেখার দরকার নেই। এটি ঠিক তখনই ঘটে যখন আপনি এএসএম-তে প্রোগ্রাম করতে সক্ষম হন এবং তারপরে ইন্টারেক্টিভ ডিসসেমব্লার্স ব্যবহার করে তৃতীয় পক্ষের বাইনারি ঠিক করার চেষ্টা করছেন। অথবা কোড এনক্রিপশন সহ নিজের সুরক্ষা লেখার সময়।

উদাহরণস্বরূপ আপনি কখনও কখনও ভাষা থেকে কোডগুলিও বিস্ময়ের সাথে স্থানান্তরিত হন।


1

প্রথম সংকলকগুলি সমাবেশের ভাষা ব্যবহার করে প্রয়োগ করা হয়েছিল। এবং প্রথম সমাবেশকারীদের বাইনারি প্রোগ্রামগুলি কোডিংয়ের মাধ্যমে প্রয়োগ করা হয়েছিল ...


এটি খুব বেশি দিন আগে নয় যে বাইনারি প্রোগ্রামিং এখনও একটি দক্ষতা ছিল যা লোকেরা ব্যবহার করত।

আমি যখন স্নাতক ছিলাম তখন আমি মনে করি এমন একটি প্রোগ্রামিং অনুশীলন করছিলাম যাতে পিডিপি -8 (আমার মনে হয়) মেশিন কোডে একটি ছোট্ট প্রোগ্রাম লিখতে হবে, সামনের প্যানেলের সুইচগুলির মাধ্যমে এটি প্রবেশ করানো এবং চালানো ছিল। আমি কয়েক বছর পরে, আমি নিজে একটি 6502 সিস্টেম ডেভেলপমেন্ট কিট কিনেছিলাম যাতে প্রোগ্রামগুলিতে প্রবেশের জন্য একটি হেক্স কীপ্যাড ... এবং র‌্যামের 4 কে বাইট ছিল।


-3

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

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