প্রথমে কী এসেছে, সংকলক, না উত্স?


17

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



1
উপ-প্রশ্নগুলির মধ্যে একটিটি তার নিজস্ব অধিকারে একটি প্রশ্ন ছিল: কম্পিউটারগুলির জন্য রচিত প্রথম প্রোগ্রামিং ভাষাটি কোনটি?
মার্ক বুথ

নিশ্চয় এটি এমন কিছু যা আপনি সন্ধান করতে পারেন ?
কালেব

@ কালেব স্কাইডানের উত্তরে মন্তব্যগুলি পড়েন ..
ডেভিড

2
@ ব্রায়ান বৈধ অনুমান, কিন্তু ভুল প্রমাণিত। এটি মোটেও মুরগির ডিমের সমস্যা নয়, এর একটি স্পষ্ট উত্তর রয়েছে (ইঙ্গিত: নীচে সবচেয়ে বেশি ভোট দেওয়া ভুল)। উত্স কোড দীর্ঘ সংকলক predates।
কনরাড রুডলফ

উত্তর:


30

এটির একটি খুব স্পষ্ট উত্তর রয়েছে, আসলে: উত্স কোডটি প্রথম এসেছিল - বড় ব্যবধানে।

প্রযুক্তিগত বিশদ দেওয়ার আগে, কিছুটা দৃষ্টিভঙ্গি:

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

ফরটারনে উইকিপিডিয়া নিবন্ধের এই উক্তিটি বিবেচনা করুন যা চিত্রিত করে যে অনিচ্ছুক সংকলকদের মুখোমুখি হতে হয়েছিল:

… প্রথম ফোরট্রান সংকলক [১৯৫ April সালের এপ্রিলে বিতরণ করা হয়েছিল। এটিই প্রথম অনুকূলিতকরণকারী সংকলক ছিল, কারণ গ্রাহকরা উচ্চ-স্তরের প্রোগ্রামিং ভাষা ব্যবহার করতে নারাজ ছিলেন যদি না এর সংকলক কোড তৈরি করতে না পারে যার পারফরম্যান্স হ্যান্ড-কোডড অ্যাসেম্বলি ভাষার তুলনায় তুলনীয় ছিল) । [জোর আমার]

=> ফোরট্রেন সংকলক বাজারে আঘাত করার সময় (1957), লোকেরা ইতিমধ্যে সমাবেশ ভাষা এবং ফোরট্রান উভয় ক্ষেত্রেই আনন্দের সাথে প্রোগ্রামিং করছিল।

কেস এলআইএসপি- র ক্ষেত্রেও একই রকম ছিল ( হ্যাকারস এবং পেইন্টার্স থেকে ):

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

আবার, সোর্স কোডটি (এলআইএসপি-তে) দোভাষীর পূর্বাভাস দেয় না কেবল পূর্বেরটির মধ্যেও অন্তর্নিহিত ছিল না।

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

কনরাড জুসে প্ল্যানকালকাল এবং অ্যালোনজো চার্চ দ্বারা প্রবর্তিত λ-ক্যালকুলাসের গাণিতিক নির্মাণ । উভয়ই indubitably আনুষ্ঠানিকভাবে প্রোগ্রামিং ভাষা নির্দিষ্ট, কিন্তু উভয় একটি সংকলক ছিল না।

এটিকে দৃষ্টিকোণে রাখার জন্য, 30-ক্যালকুলাসটি 1930 এর দশকের, এবং প্লানকালকাল ১৯৫45 সালের দিকে বিকশিত হয়েছিল contrast বিপরীতে, প্রথম ফরট্রেন সংকলক ১৯৫7 সালে প্রকাশিত হয়েছিল (তবে ফোরট্রান নির্দিষ্ট করার তিন বছর পরে )।


দুর্দান্ত উত্তর! আমি হাতে হাতে সংকলিত কোড ব্যবহার করি তা জানতাম না, তবে তা বোঝা যায়।
ckb

10

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

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

আপনার প্রশ্নের শিরোনামে প্রশ্নের উত্তর যেহেতু সমাবেশ ভাষা হল সোর্স কোড , এবং সমাবেশ ভাষায় প্রাক তারিখ উচ্চ স্তরের ভাষা যা প্রতীকী ভাষান্তর মধ্যে কম্পাইল করা যেতে পারে, সোর্স কোড প্রথম এসেছিলেন।

এছাড়াও, একটি সংকলক কখনও প্রয়োজন হয় নি , কেবল সুবিধাজনক।

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

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

যদি ব্যাবেজের অ্যানালিটিকাল ইঞ্জিনটি কখনও তৈরি করা হত তবে আমি নিশ্চিত যে একটি স্টিম্পঙ্ক মেল থাকত , এটি সরাসরি তাঁত কার্ডগুলিতে অনুকূলিতকরণের প্রোগ্রামগুলি লিখত।


1
আপনি পোস্ট করেছেন সেই উইকিপিডিয়া লিঙ্কটিতে উত্স কোডের সংজ্ঞাটি কি আসলেই পড়েছেন? যেমন উপরে বলা হয়েছে, মেশিন কোড উত্স কোড নয়। এবং মেশিন কোড! = সমাবেশ। প্রথমে মেশিন কোড ছিল।
occulus

@MarkBooth আমি MIPS মনে করি এবং এভিআর এমনকি সহজ হয় ..
ডেভিড এবং Cowden

4
@occulus - কোন উপায়ে হয় সমাবেশ ভাষা না সোর্স কোড ? সংসদীয় ভাষা একটি মেশিন কোডে একটি সংসদীয় ভাষা নির্দেশকে মানচিত্র করে এবং যদি আপনার ওপ কোডের সারণীগুলি জানেন তবে আপনার মাথায় তুচ্ছভাবে একত্রিত হতে পারে । সত্য, আজকাল বাচ্চারা ... * 8 ')
মার্ক বুথ

1
আমার কাছে সমাবেশ ভাষা হয় movl $0, -20(%rbp), যেহেতু মেশিন কোড হয় C745EC00000000, এবং এটি পরেরটির এর (ভাল, এটি ভালো কিছু) করা হয়েছিল যে প্রথম নিজে বা কাগজের টেপ থেকে পড়া। মেশিন কোডটি সোর্স কোড হিসাবে গণ্য হয়েছে কিনা তা নিয়ে আমি "আপনার নৌকাকে যা ভাসিয়ে দেয়" বলতে আগ্রহী। আপনি যদি এটি ম্যানুয়ালি টগল করে থাকেন তবে হ্যাঁ, আমি বলব এটি গণনা করা।
জন বোদে

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

6

সংকলকটি প্রথম ছিল । এটি সরাসরি মেশিন কোডে লেখা ছিল, কারণ উত্সটি সংকলক ছাড়া সংকলন করা যায় না।

কম্পিউটার ভাষা সম্পর্কে এই মত উইকিপিডিয়া নিবন্ধগুলি বেশিরভাগ প্রশ্নের উত্তর দিতে পারে। যদি তা না হয় তবে স্ট্রাকচার্ড কম্পিউটার অর্গানাইজেশনের মতো তেনেনবাউমের একটি বই বেছে নিন , যা আপনি জিজ্ঞাসা করার চেয়েও আরও প্রশ্নের উত্তর দিতে পারে :)

আমি আরও নির্দিষ্ট কিছু বলতে পারি না, কারণ আপনার প্রশ্নটি খুব বিস্তৃত।


20
এটি যুক্তিযুক্তও হতে পারে যে উত্সটি প্রথম ছিল, কারণ প্রথম "কম্পিউটার "গুলির জন্য উত্সটি বাইনারি সমতুল্য ছিল (অর্থাত তারা সরাসরি মেশিন-পঠনযোগ্য ভাষায় প্রোগ্রাম করা হয়েছিল)।
জোছিম সউর

5
@ জোয়াচিম সংজ্ঞা অনুসারে, উত্স কোড হ'ল মানব-পঠনযোগ্য পাঠ্য যা সংকলক দ্বারা মেশিন কোডে অনুবাদ করা হয়েছে। মেশিন কোড নিজেই সোর্স কোড নয়।
Hellodanylo

11
সংকলকটি প্রথম ছিল, তবে এটি জৈবিক নিউরাল নেটওয়ার্কগুলিতে প্রয়োগ করা হয়েছিল।
ডেন

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

4
@ স্কাইডান আপনার সংজ্ঞাটি কী? আমি জানি না এমন কোনও সংজ্ঞায়িত সংজ্ঞা যার জন্য আপনার উত্তর সঠিক (উভয়ই "সংকলক" এবং "একটি উচ্চ স্তরের ভাষায় উত্স কোড" - নিম্ন স্তরের ছেড়ে দেওয়া হোক) উভয়ের জন্য।
কনরাড রুডলফ

4

সংকলকগণের আগে দোভাষীগণের অস্তিত্ব ছিল তাই সংকলকগণের পূর্বে উত্স কোডের অস্তিত্ব ছিল।

সেখানে কম্পিউটিং ইতিহাস কিছু খুব আকর্ষণীয় কাগজপত্র হয় এখানে । ফোরট্রান ২ য় সংকলকটির উত্স কোডটি উপলব্ধ বলে মনে করা হচ্ছে, তবে সেই লিঙ্কগুলি নষ্ট হয়েছে।

এই কাগজটি 1954 সাল থেকে ঘূর্ণি দোভাষী বর্ণনা করে।


1

এই উত্সটি 'উত্স কোড' এর আমাদের অর্থগত ব্যাখ্যাটির উপর দৃ strongly়ভাবে মূল। যদি আমরা এটিকে 'পাঠ্য-ভিত্তিক কম্পিউটার নির্দেশাবলী সংকলিত' হিসাবে সংজ্ঞায়িত করি, তবে সম্ভবত একটি সংকলক প্রথমে আসে।

আমি আরো যেমন আরো কিছু প্রামাণিক, সঙ্গে যেতে আনত করছি মার্ক হারমান এর কাগজ "কেন সোর্স কোড বিশ্লেষণ এবং ম্যানিপুলেশন হবে সর্বদা গুরুত্বপূর্ণ হতে" উপস্থাপিত দশম সোর্স কোড বিশ্লেষণ এবং ম্যানিপুলেশন ওপর IEEE আন্তর্জাতিক ওয়ার্কিং সম্মেলন

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

এবং আমি মনে করি যে আপনার উত্তরটি সেই সংজ্ঞায় অন্তর্ভুক্ত - উত্স কোডটি অবশ্যই প্রথম এসেছিল।


"সম্ভবত একটি সংকলক প্রথমে এসেছিল" - কেবলমাত্র "সংকলিত" "" একটি স্বয়ংক্রিয় সরঞ্জাম দ্বারা অনুবাদ "হিসাবে সংজ্ঞায়িত করা হলে," মেশিনের কোড হাতে হাতে অনুবাদ করা "।
কনরাড রুডলফ

খুব আকর্ষণীয় কাগজ। আমি উত্স কোডের সেই সংজ্ঞাটি পছন্দ করি - যদিও এটি আমার প্রশ্নটিকে সত্যই একটি অ-প্রশ্ন করে তোলে ..
ডেভিড কাউডেন

@ কনরাডরুডল্ফ এমন একক নয় যা সংকলন সম্পাদন করে, এটি মেশিন, মানব, বা divineশিক হস্তক্ষেপ, যাকে 'সংকলক' বলা হয়?
কर्क ব্রডহર્স্ট

0

অ্যালগরিদমগুলি কাগজে বাছাই করা হত, তারপরে আলাস শারীরিক / যান্ত্রিকভাবে (তারের চলমান) তারযুক্ত হয়ে যায়। প্রোগ্রামটি পরিবর্তন করতে আপনি তারগুলি সরিয়ে আবার চালনা করবেন।

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

প্রথম ভাষা কোনও ভাষা ছিল না, পরে প্রথম ভাষা ছিল সমাবেশের ভাষা। প্রতিটি প্রসেসরের জন্য প্রথম ভাষা হ'ল সমাবেশ ভাষা (মেশিন কোড থেকে প্রাপ্ত)। ইন্সট্রাকশন সেটটি প্রথমে ডিজাইন করা হয়েছে তারপরে হার্ডওয়্যার এটি প্রয়োগের জন্য তারপরে এসেম্বলার, তারপরে সংকলক।

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