বেসিক কেন লাইন নম্বর ব্যবহার করেছিল?


95

কেন পুরানো বেসিকগুলি (এবং অন্যান্য ভাষাগুলি) উত্স কোডের অংশ হিসাবে লাইন নম্বর ব্যবহার করেছিল?

মানে, কোন সমস্যাগুলি এটি সমাধান করার চেষ্টা করেছিল?


27
আপনি যদি ইতিমধ্যে কিছু গুরুতর গবেষণা প্রচেষ্টা চালিয়ে গেছেন, তবে মন্তব্যগুলির ভিতরে এটি সম্পর্কে তথ্য কবর দেবেন না, সেই অনুযায়ী আপনার প্রশ্নটি সম্পাদনা করুন। তদুপরি, গুগল আমাকে সরাসরি এখানে নিয়ে গেছে: stackoverflow.com/questions/541421/… এবং এখানে স্ট্যাকওভারফ্লো
ডক ব্রাউন

13
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ উত্তর ইতিমধ্যে স্ট্যাকওভারফ্লোতে রয়েছে
আন্দ্রেস এফ।

6
অ্যাপলসফট বেসিক হ'ল আমি প্রথম প্রোগ্রামিং ভাষা শিখেছি। আমার মনে আছে যে পাস্কালের লাইনের নম্বর নেই এবং তার মতো চলছে "তবে আমি কীভাবে লাইন নম্বর ছাড়াই একটি গোটো করব? কীভাবে এটি কাজ করার কথা ??"
জেনস স্কাউডার

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

উত্তর:


130

বেসিককে তার সমসাময়িক ভাষাগুলি: প্রারম্ভিক ফোর্ট্রান, কোবল এবং অ্যাসেমব্লির সাথে প্রসঙ্গে নেওয়া দরকার।

ফিরে যখন আমি লেবেল ছাড়াই 50৫০২ অ্যাসেমব্লিতে ছড়িয়ে ছিটিয়ে ছিলাম , এর অর্থ হ'ল আপনি যখন খুঁজে পেয়েছেন যে আপনাকে শক্তভাবে প্যাকড কোডের মাঝখানে কোথাও একটি নির্দেশ যুক্ত করার দরকার ছিল (আমি পরে এনওপি গুলি যোগ করেছি ) আপনাকে যেতে হবে এবং সমস্ত জাম্পটি পুনরায় করতে হবে ঠিকানা। এটি সময় সাপেক্ষ ছিল।

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

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

NN NN   TT TT   AA BB CC DD .. .. 00

এর পরের লাইনের ( NN NN) পাতার ঠিকানার জন্য দুটি বাইট ছিল । এই লাইনের লাইন নম্বর ( TT TT) এর জন্য দুটি বাইট এবং তারপরে AA BB CC DD .. ..লাইন চিহ্নিতকারী ( 00) এর শেষে টোকেনের তালিকা ( )। (এটি অ্যাপল এর ভিতরে 84-88 পৃষ্ঠা থেকে // ই )

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

অনেক সময় যখন বেসিক সঙ্গে কাজ, আপনি আসলে কাজ করছিল মধ্যে বেসিক নিজেই। বিশেষ করে, একটি প্রদত্ত স্ট্রিং হয় একটি লাইন সংখ্যা এবং BASIC নির্দেশাবলী, বা মৌলিক অনুবাদক করার জন্য একটি কমান্ড ছিল RUNবা LIST। এই আদেশগুলি থেকে কোড পৃথক করা সহজ করেছে - সমস্ত কোড সংখ্যা দিয়ে শুরু হয়।

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

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


3
ভাল গ্রাভি, আমি মিনি এসেমব্লারকে ভুলে গিয়েছিলাম। যে ফিরে স্মৃতি এনেছে
blrfl

3
@ ব্লারফ্লায় যদি স্মৃতিটি পরিষেবা দেয় ... ] CALL -936 * F666 G $ ... হ্যাঁ, এফপি বেসিক দিয়ে শুরু করুন।

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

3
@ আরবেরি ইউং ] PRINT "FOO"অবিলম্বে বেসিক দোভাষী দ্বারা পরিচালিত হয়েছিল। এটি একটি বিবৃতি। আপনি যদি এটি পরে চালাতে চান তবে আপনি ] 10 PRINT "FOO"এবং তারপর করবেন ] RUN। অ্যাপলসফট বেসিক পরিবেশে, প্রতিটি বেসিক বিবৃতি অবিলম্বে চালানো বা বিলম্বিত হতে পারে - খুব কম কয়েকটি কমান্ড ছিল যে ডস দ্বারা সরবরাহ করা হয়েছিল যা বৈধ বেসিক বিবৃতি ছিল না। এখন একটি বিবৃতি এবং পরে একটি বিবৃতি মধ্যে পার্থক্য লাইন নম্বর ছিল। সংশ্লিষ্ট লাইন নম্বরটি পুনরায় প্রবেশ করে আপনি বিলম্বিত বিবৃতিটিও সংশোধন করতে পারেন। আপনি এক লাইনে একাধিক বিবৃতিও রাখতে পারেন::

4
হিসাবে Wikipedia নিবন্ধটি (উল্লেখ en.wikipedia.org/wiki/Dartmouth_BASIC ) " DTSS (ডার্টমাউথ সময় ভাগ সিস্টেম) একটি প্রাথমিক ... ইন্টারেক্টিভ কমান্ড-লাইন ইন্টারফেস বাস্তবায়িত। ... একটি লাইন সংখ্যা থেকে শুরু করে কোন লাইন, যোগ করা হয়েছিল প্রোগ্রামটি, আগের যে কোনও সঞ্চিত লাইনটি একই সংখ্যার সাথে প্রতিস্থাপন করে; অন্য যে কোনও কিছুকে ডিটিএসএস কমান্ড বলে ধরে নেওয়া হয়েছিল এবং তাত্ক্ষণিকভাবে কার্যকর করা হয়েছিল ... ... ডার্টমাউথ টাইমসারিং সিস্টেমের টার্মিনাল ইউনিট হিসাবে টেলিফ্রিন্টার ব্যবহার করার কারণে সম্পাদনার এই পদ্ধতিটি প্রয়োজনীয় ছিল। "
আরবেরি ইয়ং

50

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

কোড সম্পাদকরা আরও উন্নত হয়ে উঠলে এবং কোড তালিকাতে আপনাকে কার্সারটি প্রায় সরানোর অনুমতি দিলে আপনার আর লাইন নম্বর লাগবে না need


38
একটি লাইন সম্পাদনা করছেন ? লাক্সারি! আমি ব্যবহৃত প্রথম বেসিকগুলি আপনাকে সম্পূর্ণ লাইনটি পুনরায় টাইপ করতে সক্ষম করে। যখন আপনাকে সাবউটিন ভাড়া দিতে হয়েছিল তখন সত্যিই চুষে ফেলা হয়।
TMN

48
স্ক্রিন? কি পর্দা? আমার প্রথম বেসিকটিতে, "স্ক্রিন" ছিল কাগজের রোল।
ddyer

18
@ ডিডিয়ার: আমি কাগজের রোল থাকার স্বপ্ন দেখতাম! সকল আমরা ছিল ইলেকট্রোড একটি গুচ্ছ ছিল। সন্ধ্যায় যখন কাজটি করার কথা ছিল, তখন আমাদের একটি সারিবদ্ধভাবে সারিবদ্ধ হয়ে কারা বৈদ্যুতিকৃত হয়েছে তা পর্যবেক্ষণ করতে হবে, প্রোগ্রামটি সঠিকভাবে কাজ করেছে কিনা তা দেখার জন্য। ... - সিরিয়াসলি, আমি আশ্চর্যজনক যে লোকেরা আসলে সেই দিনগুলিতে ফিরে কর্মসূচি লিখতে পরিচালিত হয়েছিল managed
বাম

26
বিদ্যুৎ! রক্তাক্ত বিলাসিতা। আমরা আমাদের কমান্ডগুলি গ্রানাইটে
দিতাম

10
@ টিএমএন ও ডিডিয়ার ঠিক আছে, আপনি উভয়েই জানেন যে এটি কোথায় চলেছে, তাই না ...? ;-D ==> dilbert.com/strip/1992-09-08 ==> imgs.xkcd.com/comics/real_programmers.png
বার্ড কোপ্পেরুদ

45

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

উদাহরণ সমস্যা

সুতরাং, আসুন আমরা বলি যে আপনার মাথায় লাইন নম্বর ছাড়াই একটি সহজ প্রোগ্রাম রয়েছে:

FOR I=1 TO 42
PRINT I
NEXT I

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

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

আংশিক সমাধান

সুতরাং আপনার বলার কিছু উপায় প্রয়োজন, এটি প্রোগ্রামের লাইন, এটি সঞ্চয় করুন! আপনার কাছে একটি বিশেষ কমান্ড বা কেবল একটি প্রতীক থাকতে পারে যা এই যে এটি প্রোগ্রাম প্রোগ্রাম, এটি সংরক্ষণ করুন store আসুন এটি কল্পনা করুন:

#FOR I=1 TO 42
#PRINT I
#NEXT I

ঠিক আছে, এখন আমাদের কল্পিত বেসিক দোভাষী প্রোগ্রামটি সংরক্ষণ করেছেন এবং আপনি এটি চালাতে পারেন। তবে এখন আপনি PRINT লাইনটি সম্পাদনা করতে চান। তুমি এটা কিভাবে কর? আপনি কোনও পাঠ্য সম্পাদক হিসাবে নেই, আপনি কেবল লাইনটিতে কার্সার স্থানান্তর করতে এবং এটি সম্পাদনা করতে পারবেন না। অথবা আপনি LET COUNT=COUNT+1লুপের মতো অন্য একটি লাইন যুক্ত করতে চান । নতুন লাইনটি কোথায় প্রবেশ করা উচিত তা আপনি কীভাবে নির্দেশ করবেন?

কাজ সমাধান

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

10 FOR I=1 TO 42
20 PRINT I
30 NEXT I

পরিবর্তনগুলি সহ 20 লাইনটি পুনরায় প্রবেশের পরে এবং নতুন লাইন যুক্ত করার পরে, এটি হতে পারে

5 LET COUNT=0
10 FOR I=1 TO 42
20 PRINT "Index", I
25 LET COUNT=COUNT+1
30 NEXT I

আরও সবেমাত্র সমস্যা আমরা সমাধান করেছি

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

আরও গুরুত্বপূর্ণ বিষয়, ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে, লাইন নম্বরগুলি কোড সম্পাদনা করার জন্য আশ্চর্যজনকভাবে সহজ তবে সম্পূর্ণ ইন্টারফেস। নতুন কোড সন্নিবেশ করতে কেবল একটি সংখ্যা দিয়ে শুরু করে একটি লাইন টাইপ করুন। LIST 100-200100-200 লাইন দেখানোর জন্য ব্যবহার করুন । একটি লাইন সম্পাদনা করতে, এটি স্ক্রিনে তালিকাবদ্ধ করুন, স্ক্রিনে পাঠ্য সম্পাদনা করুন এবং লাইনটি পুনরায় প্রবেশ করুন। একটি লাইন অপসারণ করতে, এটিকে খালি হতে সম্পাদনা করুন, এটি কেবল কিছুই না করে লাইন নম্বর দিন। এটি বর্ণনা করার জন্য একটি অনুচ্ছেদ। পুরানো পাঠ্য সম্পাদক যেমন ডস এর এডলিন , অথবা ইউনিক্সের এড বা প্রাক্তন ব্যবহারের বর্ণনা দেওয়ার চেষ্টা করার সাথে তুলনা করুন : দুর্ঘটনাক্রমে শুরু হওয়ার সাথে সাথে ব্যবহারকারী কীভাবে এগুলি থেকে প্রস্থান করতে পারবেন তা বোঝাতে আপনার একটি অনুচ্ছেদে (কেবলমাত্র সামান্য হাইপারবোল) প্রয়োজন!

উপসংহার

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


4
আপনি এটি পেরেক দিয়েছিলেন। কেবল একটি প্রিন্টিং টিটি বা একক লাইনের চেয়ে একাধিক-লাইন স্ক্রিন থাকা সহজ করে তোলে, তবে উত্স ফাইল ধারণা ছাড়া এটি এখনও লাইন ভিত্তিক।
জেডিগোগস

যদিও সিস্টেমটি 8-বিটের আর্কিটেকচার, যদিও তা আসলেই সীমাবদ্ধ ফ্যাক্টর নয়। এখন, এই সত্যটি বলেছে যে সিস্টেমে কেবল কয়েক কিলোবাইট র‌্যাম এবং কয়েক মুঠো কিলোবাইট আরওএম থাকতে পারে এবং সম্ভবত কোনও স্থায়ী স্টোরেজও নেই (যদি আপনার কেসেট টেপ রেকর্ডারটি ভেঙে যায়) ...
সিভিএন

কোনও পাঠ্য সম্পাদক ছাড়া কোডিংয়ের কল্পনা করা এখনও শক্ত
ফুচলভি

@ LưuVĩnhPhúc ওয়েল, "আসল জিনিস" চালানোর জন্য প্রচুর এমুলেটর রয়েছে, যেমন প্রায় 8-বিট হোম কম্পিউটার, বা এমএসডোস এবং ডসবক্সের সাথে এর জিডব্লুব্যাসিক। যেমন একটি উদাহরণ হিসাবে, আপনি অনেকগুলি সি 64 অনুগামীগুলির মধ্যে একটি পেতে পারেন এবং তারপরে গুগল পিডিএফ হিসাবে তার ব্যবহারকারীর গাইডটি খুঁজে পেতে পারেন :-)
হাইড

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

17

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

এই কারণেই ডিফল্ট লাইন নম্বরটি 10 ​​দ্বারা ছিল, সুতরাং বিদ্যমান লাইনের মধ্যে অব্যবহৃত সংখ্যা থাকবে।


1
আসলে, কার্ড রিডার (কীপঞ্চ সহ) এবং লাইন প্রিন্টারগুলি টেলি প্রিন্টারের চেয়ে ভাল আই / ও ডিভাইস ছিল, তবে টেলিপ্রিন্টারগুলি অনেক সস্তা ছিল।
সুপারক্যাট

10 দ্বারা লাইন সংখ্যাটি একটি ডি-ফ্যাক্টোর স্ট্যান্ডার্ড ছিল, কঠোর প্রয়োজন নয়। এবং অনেক বেসিকের একটি ' ren' কমান্ড ছিল, যাতে নতুন করে চাকরী করা যায়। একটা প্রচলিত আবাহন ছিল ren 10, 10(দশ থেকে শুরু পুনরায় নম্বর, দশ দ্বারা বৃদ্ধিশীল - ডিফল্ট আচরণ যদি এক মাত্র টাইপ করা ren। দ্য gotoএবং gosubএবং then (linenumber)। কমান্ড স্বয়ংক্রিয়ভাবে আপডেট করা হবে কিন্তু এই স্পষ্টভাবে নিকটতম মূলসূত্র পাওয়া ছিল না কিন্তু IIRC অ্যাপল পাওয়া ছিল। পূর্ণসংখ্যা বেসিক, অ্যাপলসফ্ট এফপি বেসিক, টিআই বেসিক / এক্সটেন্ডেড বেসিক, এমএস বেসিক / জিডাব্লু বেসিক ইত্যাদি
ডেভিডও

13

"লাইন নম্বর" এর অর্থ কয়েকটি আলাদা জিনিস।

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

GOTOবিবৃতিগুলির লক্ষ্য হিসাবে ব্যবহারের জন্য লাইন নম্বরগুলি সম্পূর্ণ আলাদা ধারণা। ফরটারান চতুর্থগুলিতে, তারা optionচ্ছিক ছিল এবং বিবৃতিটির আগে ছিল (কলামে 1-5)। ফ্রি-ফর্ম লেবেলগুলির চেয়ে কার্যকর করা সহজ হওয়ার পাশাপাশি, গণিত এবং নির্ধারিত জিওটিও- র ধারণাও ছিল , যা আপনাকে একটি স্বেচ্ছাসেবী লাইন সংখ্যায় ঝাঁপ দিতে দেয়। এটি বেশিরভাগ আধুনিক প্রোগ্রামিং ভাষাগুলির কাছে নেই (যদিও switchবিবৃতিগুলি নিকটে আসে) তবে এটি এসেম্বলার প্রোগ্রামারদের জন্য একটি পরিচিত কৌশল ছিল।

বেসিক ফোরট্রান থেকে প্রাপ্ত, এবং বাস্তবায়ন এবং বুঝতে, তাই (উভয় সিকোয়েন্সিং এবং লক্ষ্য হিসাবে একটি লাইন সংখ্যা আছে যে "লাইন 'অত্যাচার সহজ হতে অভিপ্রেত ছিল GOTO/ GOSUBবিবৃতি) সম্ভবত একটি নকশা সিদ্ধান্ত যে কারণে জন্য তৈরি ছিল।


2
আহ, গণিত এবং নির্ধারিত গোটোস। PL / 1 এ লেবেল ভেরিয়েবলের অ্যারের স্মৃতি, কোনও মিল খুঁজে পাওয়ার জন্য একটি অ্যারের মধ্য দিয়ে লুপিং করে এবং তারপরে একটি গোটো করতে লেবেল ভেরিয়েবলের অ্যারেতে সূচি হিসাবে অ্যারে সূচকটি মেলে। বা কোবোল গোটো পরিবর্তিত হয়েছে। এবং লাইন নম্বর ব্যবহার করে না! বিবিসি বেসিকের একটি রেন্ডার স্টেটমেন্ট ছিল যা খুব দরকারী।
কিকস্টার্ট

জিসিসি গতিযুক্ত জিওটিওগুলিকে একটি এক্সটেনশন হিসাবে অনুমতি দেয় (যদিও সরাসরি কোনও লাইন সংখ্যার সাথে নয়) - আপনি এই জাতীয় জিনিসগুলি করতে পারেনgoto array_of_labels[some_computation()];
ইমিগ্রিস

অপ্রাপ্তবয়স্ক: ফোরট্রানের জন্য GOTO(বা ASSIGN) এবং মূল ওরফে গাণিতিক ওরফে থ্রিওয়ের লক্ষ্যমাত্রার জন্য লেবেলগুলির প্রয়োজন IF, এবং (খুব কম ব্যবহৃত হয়) বিকল্প প্রত্যাবর্তন CALL, এবং লক্ষ্যগুলি (যুক্তিযুক্ত বিস্ময়কর) এর DOএবং FORMATবিবৃতিগুলির জন্য প্রয়োজন। অন্যান্য বিবৃতিতে তারা alচ্ছিক ছিল।
dave_thompson_085

কিছু বেসিক (যেমন, আটারীর) এমনকি স্বতঃস্ফূর্ত সংখ্যাসূচক প্রকাশটি GOTO বিবৃতিতে ব্যবহারের অনুমতি দেয়। সুতরাং, একটি সঠিক লাইন সংখ্যার কনভেনশন সহ, আপনি GOTO 1000+N*100একটি switchবিবৃতি অনুকরণ করতে লিখতে পারেন ।
dan04

6

আমি COBOL এ প্রোগ্রামিং শুরু করেছি যা প্রতিটি লাইনের 1-6 কলামে লাইন নম্বর ব্যবহার করে। কারণ 1970 এর দশকে কোনও আইডিই ছিল না পাঞ্চ কার্ডের মাধ্যমে সবকিছু সম্পন্ন হয়েছিল এবং মূল উত্সে কোন লাইনগুলি প্রতিস্থাপন করা হবে এবং কোন নতুন লাইন যুক্ত হবে তা চিহ্নিত করার জন্য লাইন নম্বর ব্যবহার করা হয়েছিল। আমাদের আরও লাইন যুক্ত করার জন্য জায়গা দেওয়ার জন্য আমরা 100 দ্বারা রেখার সংখ্যা বৃদ্ধি করতাম।


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

5

বেসিক লাইন-টার্মিনাল যুগে ফরটারনের চেয়ে প্রায় পরে এসেছিল। এতে একটি পঠন-এক্সি-প্রিন্ট-লুপ পরিবেশ বৈশিষ্ট্যযুক্ত যা কার্ডের ডেকের চেয়ে বেশি ইন্টারেক্টিভ ছিল।

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

আপনি কীভাবে এটি করবেন তা আমি সত্যিই ভাবতে পারি না।


2
এটি পূর্ববর্তী 4 টি উত্তরগুলিতে তৈরি করা এবং ব্যাখ্যা করা হয়েছে এর চেয়ে বেশি কিছু সরবরাহ করবে বলে মনে হচ্ছে না
gnat

2
এটা খারাপ করে তোলে? আমি মনে করি যে জ্যাকস সত্যই কোনও লাইন সম্পাদনার সারমর্মটি লাইনগুলি সন্নিবেশ করার জন্য এবং মানসিকভাবে কোডটি ট্র্যাক করার ক্ষেত্রে coverাকেনি।
জেডিগোস্জ

1
@ জেমসলেজ "অনুগ্রহ করে" বেসিকের সাথে কাজ করার সময় অনেক সময় ... "দিয়ে শুরু করা কি আমি সেই বিন্দুটি মিস করছি? আমি বেসিককে অপারেটিং সিস্টেমটি বলতেও দ্বিধা করি। সে ডস ছিল আর ডসকে বেসিকের দরকার

2
@ ইয়ান এটি সত্য হওয়ার পরেও এটি এমন একটি সিস্টেমের জন্য ডিজাইন করা হয়েছিল যা আইও (ডার্টমাউথ টাইম শেয়ারিং সিস্টেম) এর জন্য টেলি টাইপ ব্যবহার করে।
জুলাই

3
@ মিশেলটি, উফ! আমি আমার মন্তব্যের অর্ধেক প্রত্যাহার করে নেব, তবে বেসিকটি কয়েকটি কম্পিউটারে ওএস হওয়ার বিষয়ে অংশ নেব। আমি চিন্তা করছি; অ্যাপল] [, টিআই 99/4, আইবিএম 5100, এইচপি 9830a, কমপোকার 8001, টিআরএস -80 মডেল 1, কমোডোর ভিক 20, সিনক্লেয়ার জেডএক্স 80 এবং অন্যান্য। সমস্ত রোম থেকে বেসিক এ বুট আপ। কারও কারও কাছে একটি অপশনাল অপারেটিং সিস্টেম ছিল যা কোনও ফ্লপি ড্রাইভের জন্য অতিরিক্ত paid প্রদান করে যদি একটি অডিও কেসেট থেকে বা ফ্লপি ডিস্ক থেকে লোড করা যায়।
সলোমন আস্তে আস্তে

1

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


1

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

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