প্রথম সংকলক ১৯৫২ সালে গ্রেস হপার লিখেছিলেন এবং লিস্প দোভাষী ১৯৫৮ সালে জন ম্যাকার্থির ছাত্র স্টিভ রাসেল লিখেছিলেন। সংকলক লেখার জন্য অনুবাদকের চেয়ে অনেক কঠিন সমস্যা মনে হয়। যদি তা হয় তবে প্রথম সংকলক কেন প্রথম দোভাষীর ছয় বছর আগে রচনা করা হয়েছিল?
প্রথম সংকলক ১৯৫২ সালে গ্রেস হপার লিখেছিলেন এবং লিস্প দোভাষী ১৯৫৮ সালে জন ম্যাকার্থির ছাত্র স্টিভ রাসেল লিখেছিলেন। সংকলক লেখার জন্য অনুবাদকের চেয়ে অনেক কঠিন সমস্যা মনে হয়। যদি তা হয় তবে প্রথম সংকলক কেন প্রথম দোভাষীর ছয় বছর আগে রচনা করা হয়েছিল?
উত্তর:
সংকলক লেখার জন্য অনুবাদকের চেয়ে অনেক কঠিন সমস্যা মনে হয়।
এটি আজ সত্য হতে পারে, তবে আমি যুক্তি দিয়ে বলব যে প্রায় 60 বছর আগে এটি ছিল না not কয়েকটি কারণ কেন:
মূল কথাটি হ'ল 1950-এর দশকের কম্পিউটিং হার্ডওয়্যার পরিবেশটি এমনটি তৈরি করেছিল যে তখনকার কম্পিউটারগুলির ব্যাচ-ওরিয়েন্টেড প্রসেসিংয়ের ফলে কেবলমাত্র একটি সংকলক সম্ভব ছিল।
সেই সময়ে আরও ভাল ব্যবহারকারীর ইন্টারফেসগুলি প্রাথমিকভাবে পাঞ্চ কার্ড এবং টেলি টাইপ প্রিন্টারগুলির মধ্যে সীমাবদ্ধ ছিল । ১৯61১ সালে সেজ সিস্টেমটি কম্পিউটারে প্রথম ক্যাথোড-রে টিউব (সিআরটি) প্রদর্শনীতে পরিণত হয়। সুতরাং কোনও দোভাষীর ইন্টারেক্টিভ প্রকৃতি অনেক পরে ভাল বা প্রাকৃতিক ছিল না।
1950 এর দশকে অসংখ্য কম্পিউটার নির্দেশাবলী লোড করতে ফ্রন্ট প্যানেল স্যুইচ ব্যবহার করত এবং আউটপুটটি কেবল সারি সারি ল্যাম্প / এলইডি ছিল এবং শখের লোকেরা এমনকি 1970-এর দশকে ফ্রন্ট-প্যানেল স্যুইচ এবং এলইডি ব্যবহার করত। সম্ভবত আপনি কুখ্যাত আলটিয়ার 8800 এর সাথে পরিচিত ।
অন্যান্য হার্ডওয়্যার সীমাবদ্ধতাও দোভাষীকে অনিবার্য করে তুলেছিল। 1950 এর দশকে কম্পিউটারে প্রাথমিক মেমরির (যেমন র্যাম) সীমাবদ্ধতা ছিল। অর্ধপরিবাহী বর্তনী ইন্টিগ্রেটেড মেমরি (যা না হওয়া পর্যন্ত 1958 আসেনি) এর আগে সীমিত ছিল চৌম্বক কোর মেমরির বা বিলম্ব লাইন মেমরির যা মাপা হয় বিট বা শব্দ , কোন উপসর্গ। মাধ্যমিক স্টোরেজ মেমরির স্বচ্ছলতার সাথে মিলিত (উদাহরণস্বরূপ ডিস্ক বা টেপ), প্রোগ্রামটি বোঝানোর আগেই দোভাষীর জন্য প্রচুর মেমরি ব্যবহার করা যদি অপ্রয়োজনীয় না হয় তবে তা অপব্যয় হিসাবে বিবেচিত হবে।
আইবিএম-এ জন ব্যাকাসের নেতৃত্বাধীন দল ১৯৫৪-৫7 সালে ফরট্রেন সংকলক তৈরি করার সময় স্মৃতি সীমাবদ্ধতাগুলি তখনও একটি প্রধান কারণ ছিল। এই উদ্ভাবনী সংকলকটি শুধুমাত্র সফল হয়েছিল কারণ এটি একটি অনুকূলিতকরণ সংকলক ছিল ।
1950 এর দশকের বেশিরভাগ কম্পিউটারের সবেমাত্র কোনও অপারেটিং সিস্টেম ছিল, ডায়নামিক লিঙ্কিং এবং ভার্চুয়াল মেমরি পরিচালনার মতো আধুনিক বৈশিষ্ট্যগুলিকে ছেড়ে দেওয়া যাক, সেই সময় একটি দোভাষীর ধারণাটি খুব মৌলিক এবং অযৌক্তিক ছিল।
অভিযোজ্য বস্তু
1950 এর দশকের ভাষা ছিল আদিম। তারা শুধুমাত্র একটি অন্তর্ভুক্ত ছোট অপারেশনের থাবা অন্তর্নিহিত হার্ডওয়্যার এর নির্দেশাবলী বা তাদের লক্ষ্যবস্তু ব্যবহারের সমস্যা সংজ্ঞা দ্বারা প্রভাবিত প্রায়ই পারেন।
সেই সময়, কম্পিউটারগুলি আজকের দিনে আমরা কম্পিউটারকে যেভাবে মনে করি তা সাধারণ উদ্দেশ্য কম্পিউটার ছিল। তারা পুনর্নির্মাণ না করে পুনঃনির্মাণযোগ্য ছিল তা একটি বিপ্লবী ধারণা হিসাবে বিবেচিত হত - পূর্বে লোকেরা উত্তরগুলি গণনা বা গণনা করার জন্য বৈদ্যুতিন মেশিনগুলি (সাধারণত ক্যালকুলেটর) ব্যবহার করে আসছিল (1950-এর দশকে বেশিরভাগ অ্যাপ্লিকেশন সংখ্যাগত প্রকৃতির ছিল)।
কম্পিউটার বিজ্ঞানের দৃষ্টিকোণ থেকে, সংকলক এবং দোভাষী উভয় অনুবাদক এবং বাস্তবায়নের ক্ষেত্রে জটিলতায় প্রায় সমান।
প্রথম প্রোগ্রামিং ভাষাগুলি বেশ সহজ ছিল (উদাহরণস্বরূপ কোনও পুনরাবৃত্তি হয়নি) এবং মেশিন আর্কিটেকচারের কাছাকাছি যা নিজেই সহজ। অনুবাদ তারপর একটি সহজবোধ্য প্রক্রিয়া ।
একটি সংকলক একটি দোভাষী হিসাবে প্রোগ্রাম হিসাবে সহজ ছিল যে প্রোগ্রাম বাস্তবায়নের জন্য ডেটা এবং উত্স কোড ব্যাখ্যা করার জন্য টেবিল উভয় একত্রে রাখতে হবে। এবং দোভাষী তার নিজের জন্য, প্রোগ্রাম উত্স কোড এবং প্রতীকী টেবিলের জন্য আরও স্থান গ্রহণ করবেন ।
মেমরিটি এত দুষ্প্রাপ্য হতে পারে (ব্যয় এবং আর্কিটেকচারাল কারণে উভয় কারণে) যে সংকলকগুলি অপারেটিং সিস্টেমকে ওভাররোট করে এমন একা থাকা প্রোগ্রাম হতে পারে (আমি এর মধ্যে একটি ব্যবহার করেছি)। সংকলিত প্রোগ্রামটি চালানোর জন্য সংকলনের পরে ওএসটি পুনরায় লোড করতে হয়েছিল। ... যা এটিকে পরিষ্কার করে দেয় যে সত্যিকারের কাজের জন্য দোভাষী চালানো সহজ বিকল্প ছিল না ।
সত্য কথা বলতে গেলে, সংকলকগুলির সরলতার প্রয়োজনীয়তা এমন ছিল যে সংকলকগুলি খুব ভাল ছিল না (কোড অপ্টিমাইজেশন এখনও শৈশবেই ছিল, যখন বিবেচনা করা হয়েছিল)। হাতে লিখিত মেশিন কোডটি ছিল কয়েকটি জায়গায় অন্তত ষাটের দশকের শেষের দিকে, সংকলক উত্পন্ন কোডের চেয়ে উল্লেখযোগ্যভাবে বেশি দক্ষ হওয়ার খ্যাতি। কোড সম্প্রসারণ অনুপাতের একটি ধারণাও ছিল যা সংকলিত কোডের আকারকে খুব ভাল প্রোগ্রামারের কাজের সাথে তুলনা করে। এটি বেশিরভাগ (সমস্ত?) সংকলকগুলির জন্য সাধারণত 1 এর চেয়ে বেশি ছিল, যার অর্থ ধীরতর প্রোগ্রাম এবং আরও গুরুত্বপূর্ণভাবে, বৃহত্তর প্রোগ্রামগুলিতে আরও মেমরির প্রয়োজন। ষাটের দশকে এটি এখনও একটি ইস্যু ছিল।
সংকলকটির আগ্রহ প্রোগ্রামিং স্বাচ্ছন্দ্যে ছিল বিশেষত এমন ব্যবহারকারীদের জন্য যারা বিভিন্ন ক্ষেত্রের বিজ্ঞানীদের মতো কম্পিউটিং বিশেষজ্ঞ ছিলেন না। এই আগ্রহের কোড সম্পাদনা ছিল না। তবুও, প্রোগ্রামার সময়টিকে তখন সস্তার সংস্থান হিসাবে বিবেচনা করা হত। কম্পিউটারের সময়টি ছিল 1975-1980 অবধি, যখন হার্ডওয়্যার থেকে সফ্টওয়্যারে ব্যয়টি স্যুইচ করা হয়েছিল। যার অর্থ এমনকী যে সংকলকটিও কিছু পেশাদার কর্তৃক গুরুত্ব সহকারে নেওয়া হয়নি ।
কম্পিউটার সময়ের অতি উচ্চমূল্য দোভাষীদের অযোগ্য করার আরও একটি কারণ ছিল যে এই ধারণাটি বেশিরভাগ লোকের জন্য হাস্যকর হত।
লিস্পের কেসটি খুব বিশেষ, কারণ এটি একটি অত্যন্ত সাধারণ ভাষা ছিল যা এটি ব্যবহারযোগ্য করে তুলেছিল (এবং কম্পিউটারটি 58-তে কিছুটা বড় হয়ে গেছে)। আরও গুরুত্বপূর্ণ, লিস্প দোভাষীটি ব্যবহারযোগ্যতার যে কোনও ইস্যু থেকে স্বাধীনভাবে লিস্পের ( মেটা-সার্কুলারিটি ) স্ব - স্বীকৃতি সম্পর্কিত ধারণার প্রমাণ ছিল proof
লিস্পের সাফল্য মূলত এই কারণে যে এই স্ব-নির্ভরযোগ্যতা এটিকে প্রোগ্রামিং কাঠামো অধ্যয়ন করার জন্য এবং নতুন ভাষাগুলি ডিজাইনের (এবং এটি প্রতীকী গণনার জন্য সুবিধার্থে) একটি দুর্দান্ত টেস্টবেড করেছে।
আমি প্রশ্নের ভিত্তিতে একমত নই।
অ্যাডম। হপারের প্রথম সংকলক (এ -0) আরও লিঙ্কার বা ম্যাক্রো ভাষার মতো ছিল। তিনি একটি টেপে সাবরুটাইনগুলি সঞ্চয় করেছিলেন (প্রত্যেকে প্রত্যেককে একটি সংখ্যা নির্ধারিত হয়েছিল) এবং তার প্রোগ্রামগুলি সাবরুটাইনগুলি এবং যুক্তিগুলির তালিকা হিসাবে লেখা হবে। সংকলকটি অনুরোধ করা সাবরুটাইনগুলি টেপ থেকে অনুলিপি করে একটি সম্পূর্ণ প্রোগ্রামে পুনরায় অর্ডার করবে।
তিনি "সংকলন" শব্দটি একই অর্থে ব্যবহার করেছিলেন যে একজন কবিতার একটি নৃতাত্ত্বিক সংকলন করেছেন: বিভিন্ন আইটেমকে এক খণ্ডে একত্রিত করে।
এই প্রথম সংকলনে কোনও লেসার বা পার্সার ছিল না, যতদূর আমি বলতে পারি, যা এটি একটি আধুনিক সংকলকের দূরবর্তী পূর্বপুরুষ করে তোলে। পরে তিনি আরও একটি ইংরেজী-জাতীয় বাক্য গঠনের লক্ষ্য নিয়ে আরেকটি সংকলক (বি -0, ওরফে ফ্লো-ম্যাটিক) তৈরি করেছিলেন, তবে এটি লিস্প দোভাষী হিসাবে একই সময়ে 1958 বা 1959 অবধি সমাপ্ত হয়নি।
সুতরাং, আমি মনে করি প্রশ্নটি নিজেই কিছুটা ভুল। দেখে মনে হয় যে সংকলক এবং দোভাষীরা একই সময়ে প্রায় একই সময়ে বিকশিত হয়েছিল, ধারণা নেই যে এই সময়ে অনেক বিজ্ঞানী একই পংক্তিতে একই ভাবনাগুলি ভাগ করে নিতে পারে এমন ধারণাগুলি ভাগ করে নেওয়ার কারণে।
এখানে উদ্ধৃতি সহ আরও ভাল উত্তর: https://stackoverflow.com/a/7719098/122763 ।
সমীকরণের অন্যান্য অংশটি হ'ল সংকলকগুলি একটি এসেম্বলারের উপরে একটি পদক্ষেপ বিমূর্ত ছিল। প্রথমে আমাদের কাছে হার্ড-কোডেড মেশিন কোড ছিল। "আমরা" সমাবেশকারী ছিলাম। প্রতিটি লাফ এবং অফসেট ইত্যাদি হেক্স (বা অষ্টাল) এ হাতে গণনা করা হত এবং তারপরে কাগজের টেপ বা কার্ডগুলিতে খোঁচা দেওয়া হত। সুতরাং সমাবেশকারীরা যখন দৃশ্যে এসেছিল, তখন এটি ছিল একটি বিশাল সময় সাশ্রয়কারী। পরবর্তী পদক্ষেপটি ছিল ম্যাক্রো এসেম্বেলার্স। এটি ম্যাক্রো নির্দেশের সেটগুলিতে প্রসারিত হবে এমন ম্যাক্রো লেখার ক্ষমতা দিয়েছে expand সুতরাং ফোর্টরান এবং কোবোল একটি বিশাল পদক্ষেপ ছিল। সংস্থানগুলির অভাব (স্টোরেজ, মেমরি এবং সিপিইউ চক্র) এর অর্থ হ'ল সাধারণ উদ্দেশ্য দোভাষীদের প্রযুক্তির বিকাশের জন্য অপেক্ষা করতে হয়েছিল। বেশিরভাগ প্রাথমিক দোভাষী বাইট-কোড ইঞ্জিন (যেমন জাভা বা আজকের সিএলআর, তবে অনেক কম ক্ষমতা সহ)। ইউসিএসডি পাসকাল একটি অত্যন্ত জনপ্রিয় (এবং দ্রুত) ভাষা ছিল। এমএস বেসিক হুডের নীচে বাইট-কোড ইঞ্জিন ছিল was
ওভারহেডের নির্দেশের ক্ষেত্রে, এটি পুরোপুরি নির্ভর করে যে প্রসেসরটি চালিত হচ্ছে তার উপর। শিল্পটি কিছু সময়ের জন্য একটি বড় আরআইএসসি বনাম সিআইএসসি অশান্তির মধ্য দিয়ে গিয়েছিল। আমি ব্যক্তিগতভাবে আইবিএম, ডেটা জেনারেল, মটোরোলা, ইন্টেল (যখন তারা দেখিয়েছিল), টিআই এবং আরও বেশ কয়েকজনের জন্য এসেম্বলার লিখেছিলাম। নির্দেশিকা সেট, রেজিস্ট্রার ইত্যাদিতে যথেষ্ট উল্লেখযোগ্য পার্থক্য ছিল যা একটি পি-কোড "ব্যাখ্যা" করার জন্য প্রয়োজনীয় ছিল তা প্রভাবিত করে।
সময়ের রেফারেন্স হিসাবে, আমি 1972 সালের দিকে ফোন সংস্থায় প্রোগ্রামিং শুরু করি।
আপনি যদি মেমরিতে সমস্ত কিছু ধরে না রাখেন তবে সংকলিত কোডটি আরও দ্রুত। ভুলে যাবেন না যে এই সময়গুলিতে সংকলিত কোডটিতে ফাংশন যুক্ত হয়েছিল। আপনি যদি সংকলন না করে থাকেন তবে আপনার কী ফাংশনগুলি প্রয়োজন তা আপনি জানেন না। সুতরাং, আপনি ফাংশনগুলি কল করছেন ... ওহ, ডিস্ক থেকে এখনও নয়, আমরা 50-শুরুর দিকে, তবে কার্ড থেকে! রানটাইমে!
অবশ্যই, একটি কাজের ক্ষেত্র খুঁজে পাওয়া সম্ভব, তবে সেগুলি এখনও পাওয়া যায় নি, কারণ ভাষাগুলি খুব সাধারণ ছিল এবং মেশিন কোড থেকে এতটা দূরে ছিল না। এবং সংকলন সহজ এবং যথেষ্ট ছিল।
প্রথম সংকলকটি লেখার আগে লোকেরা এসেম্বলার কোডটি লিখেছিল যা সাধারণ বাইনারি কোডের তুলনায় একটি বিশাল অগ্রগতি ছিল। সেই সময়, একটি দৃ argument় যুক্তি ছিল যে একটি সংকলক দ্বারা সংকলিত কোডটি এসেম্বলারের কোডের তুলনায় কম দক্ষ হবে - সেই সময়ে (কম্পিউটারের ব্যয়) সাথে (প্রোগ্রামারের দাম) সম্পর্ক ছিল আজকের তুলনায় অনেক বেশি। সুতরাং দৃষ্টিকোণ থেকে সংকলকগুলির বিরুদ্ধে শক্ত প্রতিরোধ ছিল was
তবে সংকলকগণ দোভাষীদের চেয়ে অনেক বেশি কার্যকর। আপনি যদি সেই সময়ে দোভাষী লেখার পরামর্শ দিতেন, লোকেরা আপনাকে পাগল মনে করেছিল। আপনি কী এক মিলিয়ন ডলার কম্পিউটার কিনে তার কোডটির ব্যাখ্যা করার জন্য এর 90% শক্তি নষ্ট করার কল্পনা করতে পারেন?
একটি লুপিং প্রোগ্রামটি ব্যাখ্যা করার আগে এটি অবশ্যই একটি মাঝারি জায়গায় সংরক্ষণ করতে হবে যা বারবার পড়তে পারে। বেশিরভাগ ক্ষেত্রে, একমাত্র উপযুক্ত মাধ্যমটি হবে র্যাম। যেহেতু সাধারণত পাঞ্চ কার্ডগুলিতে কোড প্রবেশ করা হবে যা - মানব পাঠযোগ্য ভাষার জন্য - সম্ভবত বেশিরভাগ শূন্য থাকে, তাই এটি র্যামে সংরক্ষণের আগে কোনও ধরণের প্রসেসিং কোডের উপর সম্পাদন করতে হবে। অনেক ক্ষেত্রে, খোঁচা কার্ডের পাঠ্যটিকে এমন ফর্মে প্রক্রিয়াকরণ করা যা প্রসেসরের সরাসরি পরিচালনার জন্য উপযুক্ত এটি কোনও ফর্ম হিসাবে প্রসেসিংয়ের চেয়ে আর জটিল কিছু নয় যা কোনও অনুবাদকের মাধ্যমে দক্ষতার সাথে পরিচালিত হতে পারে।
নোট করুন যে প্রাথমিক সংকলকগুলির লক্ষ্যটি ডিস্কে কোনও অ্যাসেম্বলি-ভাষা বা অবজেক্ট-কোড ফাইল তৈরি করা ছিল না, বরং র্যামে কোড শেষ করা ছিল যা কার্যকর করতে প্রস্তুত ছিল। কোনও অপারেটিং সিস্টেমের পথে যাওয়ার জন্য না পারলে এটি আশ্চর্যজনকভাবে সহজ। একটি সংকলক মেমরির এক প্রান্তে শুরু করে কোড উত্পন্ন করতে পারে এবং অন্য থেকে শুরু করে ভেরিয়েবল এবং শাখা লক্ষ্যগুলি বরাদ্দ করতে পারে। যদি কোনও বিবরণ "1234" লেবেলযুক্ত চিহ্নিত করা হয়, সংকলকটি "1234" বর্তমান কোড জেনারেশনের ঠিকানায় লাফানোর জন্য একটি নির্দেশ হিসাবে ভেরিয়েবলের মধ্যে সংরক্ষণ করবে, যদি এটি বিদ্যমান না থাকে তবে সেই পরিবর্তনশীল তৈরি করে। "গোটো 1234" একটি বিবৃতি উপস্থিত না থাকলে একটি ভেরিয়েবল তৈরি করবে "1234", এবং তারপরে সেই ভেরিয়েবলটিতে ঝাঁপিয়ে পড়বে [আশা করি যে বিবৃতিটি কার্যকর করার আগে এটিতে সংরক্ষিত যথাযথ জায়গায় ঝাঁপিয়ে পড়বে]।goto
একটি লেবেল যা এখনও সংজ্ঞায়িত করা হয়নি, যেহেতু এটি কোথায় goto
জপ করতে চলেছে সংকলন করে - একটি চলকটিতে। কোড উত্পন্ন করার পক্ষে এটি সবচেয়ে কার্যকর উপায় নাও হতে পারে, তবে কম্পিউটারগুলি যে হ্যান্ডেলগুলি প্রত্যাশা করে তার আকারের জন্য এটি পর্যাপ্ত।
কারণ কাজ করার জন্য দোভাষীদের সংকলক প্রয়োজন।
উপরের বিবৃতিটি সত্য নয়। কড়া কথায় বলতে গেলে, আপনি কোনও সংকলক ব্যবহার না করে বা অন্যথায় ইন্টারঅ্যাক্ট না করেই একজন দোভাষী তৈরি করতে পারেন । তবে এটি করার ফলাফলগুলি খুব বেশি মনে হবে না যা আমি মনে করি আপনি এই শর্তাদির দ্বারা বোঝাচ্ছেন।
কঠোর অর্থে, সংকলক এবং দোভাষী পুরোপুরি আলাদা জিনিস করেন। একটি সংকলক কিছু উত্স থেকে পাঠ্য পড়ে এবং এটিকে অন্য কোনও ফর্ম্যাটে রূপান্তর করে: সমাবেশ ভাষা, মেশিন কোড, অন্য একটি উচ্চ-স্তরের ভাষা, একটি ডেটা স্ট্রাকচার বা অন্য যে কোনও কিছুই। এর মধ্যে একজন দোভাষী একজন প্রকারের ডেটা স্ট্রাকচার গ্রহণ করেন এবং এর ভিত্তিতে নির্দেশনা সম্পাদন করেন।
আজকাল আমরা "সংকলক" হিসাবে যা ভাবার প্রবণতা তা আসলে একটি সংকলক যা একটি কোড জেনারেটরের সাথে যুক্ত করা হয়েছে : এমন একটি প্রোগ্রাম যা কোনও উত্স থেকে ডেটা নেয় এবং এটি যা দেখায় তার ভিত্তিতে কিছু ফর্ম্যাটে কোড আউটপুট করে। এটি সংকলকগুলির জন্য মোটামুটি স্বজ্ঞাত ব্যবহার এবং এটি প্রথম যেগুলির জন্য কম্পাইলার তৈরি করা হয়েছিল এটি অন্যতম। তবে আপনি যদি এটি অন্যভাবে দেখেন তবে এটি দোভাষী যা করেন তার সাথে এটি খুব মিল similar এটি সর্বদা আরও সাধারণ ক্রিয়াকলাপ সম্পাদনের পরিবর্তে কোড আউটপুট করে তবে নীতিটি একই।
আমরা যদি এটিকে অন্য দিক থেকে দেখি তবে কোনও অনুবাদককে কোথাও থেকে তার ডেটা নেওয়া দরকার । এটি কেবলমাত্র ডেটা, যাতে আপনি অন্য যে কোনও ধরণের ডেটা তৈরি করতে চান ঠিক একই উপায়ে এটি তৈরি করতে পারেন। যেহেতু আমরা ব্যাখ্যার বিষয়ে কথা বলছি, এটি স্বাভাবিক যে আপনি কোনও পাঠ্য ফাইলে থাকা নির্দেশের উপর ভিত্তি করে আপনার ডেটা তৈরি করতে পারেন natural তবে এটি করার জন্য আপনাকে পাঠ্যে কিছু পড়তে হবে এবং আপনার ডেটা কাঠামো তৈরি করতে হবে এবং এটি একটি সংকলক । এটি কোনও কোড জেনারেটরের পরিবর্তে দোভাষীর কাছে আবদ্ধ, তবে এটি সমস্ত একই সংকলক।
এজন্য প্রথমে সংকলকগুলি লেখা হয়েছিল। সংকলকগণ কল্পনা করার পরেও ডেটা স্ট্রাকচারের ব্যাখ্যার ধারণাটি নতুন ছিল না, তবে সংকলকগুলি "অনুপস্থিত লিঙ্ক" ছিল যা প্রোগ্রামাররা সেই কাঠামোটিকে পাঠ্যবইয়ের বাইরে তৈরি করতে দেয়।
আরেকটি বিষয়: প্রথম সংকলকগুলি যখন মেশিনের সময়ের ব্যয়টি লিখেছিলেন তখন এটি এখনকার তুলনায় অনেক বেশি ছিল। দোভাষীরা মেশিনের জন্য অনেক বেশি সময় ব্যবহার করেন।