কেন পুরানো বেসিকগুলি (এবং অন্যান্য ভাষাগুলি) উত্স কোডের অংশ হিসাবে লাইন নম্বর ব্যবহার করেছিল?
মানে, কোন সমস্যাগুলি এটি সমাধান করার চেষ্টা করেছিল?
কেন পুরানো বেসিকগুলি (এবং অন্যান্য ভাষাগুলি) উত্স কোডের অংশ হিসাবে লাইন নম্বর ব্যবহার করেছিল?
মানে, কোন সমস্যাগুলি এটি সমাধান করার চেষ্টা করেছিল?
উত্তর:
বেসিককে তার সমসাময়িক ভাষাগুলি: প্রারম্ভিক ফোর্ট্রান, কোবল এবং অ্যাসেমব্লির সাথে প্রসঙ্গে নেওয়া দরকার।
ফিরে যখন আমি লেবেল ছাড়াই 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 বিটে প্রচুর তথ্য পেতে পারেন। স্ট্রিং ভিত্তিক লেবেলগুলিতে আরও অনেক বেশি জায়গা লাগবে এবং অর্ডার করা শক্ত। নম্বরগুলি কাজ করা সহজ, বোধগম্য এবং প্রতিনিধিত্ব করা সহজ।
পরবর্তীতে বেসিক উপভাষা যেখানে আপনি ছিল না যে অনুবাদক সব সময় যে লাইন সংখ্যাযুক্ত এবং এর পরিবর্তে শুধুমাত্র লাইন যে শাখা লক্ষ্য ছিল নম্বর প্রয়োজন সঙ্গে দূরে না করতে সক্ষম হয়েছি। কার্যকরভাবে, লেবেলগুলি।
] CALL -936
* F666 G
$ ...
হ্যাঁ, এফপি বেসিক দিয়ে শুরু করুন।
] PRINT "FOO"
অবিলম্বে বেসিক দোভাষী দ্বারা পরিচালিত হয়েছিল। এটি একটি বিবৃতি। আপনি যদি এটি পরে চালাতে চান তবে আপনি ] 10 PRINT "FOO"
এবং তারপর করবেন ] RUN
। অ্যাপলসফট বেসিক পরিবেশে, প্রতিটি বেসিক বিবৃতি অবিলম্বে চালানো বা বিলম্বিত হতে পারে - খুব কম কয়েকটি কমান্ড ছিল যে ডস দ্বারা সরবরাহ করা হয়েছিল যা বৈধ বেসিক বিবৃতি ছিল না। এখন একটি বিবৃতি এবং পরে একটি বিবৃতি মধ্যে পার্থক্য লাইন নম্বর ছিল। সংশ্লিষ্ট লাইন নম্বরটি পুনরায় প্রবেশ করে আপনি বিলম্বিত বিবৃতিটিও সংশোধন করতে পারেন। আপনি এক লাইনে একাধিক বিবৃতিও রাখতে পারেন::
প্রথম দিকে মাইক্রো কম্পিউটারে সম্পাদনা লাইন ভিত্তিক ছিল। আপনি কেবল উত্স কোড এবং সম্পাদনায় অবাধে চলাফেরা করতে পারেন নি। আপনার পর্দার নীচে একটি লাইন ছিল যেখানে আপনি কমান্ডগুলি টাইপ করতে এবং কোডটি প্রবেশ করতে পারেন। স্ক্রিনের বাকি অংশগুলি কেবল পঠনযোগ্য কোড-তালিকা এবং কমান্ড আউটপুট ছিল। আপনি যদি প্রোগ্রামটিতে "90" বলুন লাইনটি সম্পাদনা করতে চান এবং লাইনের EDIT 90
সামগ্রীগুলি 90
একক-লাইন সম্পাদনা বাফারে প্রবেশ করেছিল। আপনি যখন প্রবেশ রেখাটি সম্পাদনা করেছিলেন তখন প্রোগ্রামটির তালিকা আপডেট করা হয়েছিল। সুতরাং আপনার প্রোগ্রামটি সম্পাদনা করতে সক্ষম হতে লাইনের নম্বরগুলি দরকার।
কোড সম্পাদকরা আরও উন্নত হয়ে উঠলে এবং কোড তালিকাতে আপনাকে কার্সারটি প্রায় সরানোর অনুমতি দিলে আপনার আর লাইন নম্বর লাগবে না need
আপনি যদি 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-200
100-200 লাইন দেখানোর জন্য ব্যবহার করুন । একটি লাইন সম্পাদনা করতে, এটি স্ক্রিনে তালিকাবদ্ধ করুন, স্ক্রিনে পাঠ্য সম্পাদনা করুন এবং লাইনটি পুনরায় প্রবেশ করুন। একটি লাইন অপসারণ করতে, এটিকে খালি হতে সম্পাদনা করুন, এটি কেবল কিছুই না করে লাইন নম্বর দিন। এটি বর্ণনা করার জন্য একটি অনুচ্ছেদ। পুরানো পাঠ্য সম্পাদক যেমন ডস এর এডলিন , অথবা ইউনিক্সের এড বা প্রাক্তন ব্যবহারের বর্ণনা দেওয়ার চেষ্টা করার সাথে তুলনা করুন : দুর্ঘটনাক্রমে শুরু হওয়ার সাথে সাথে ব্যবহারকারী কীভাবে এগুলি থেকে প্রস্থান করতে পারবেন তা বোঝাতে আপনার একটি অনুচ্ছেদে (কেবলমাত্র সামান্য হাইপারবোল) প্রয়োজন!
অন্যান্য উত্তরগুলি ব্যাখ্যা করে যে কীভাবে লাইন নম্বরগুলি এসেছিল। আমি এখানে কভার করার চেষ্টা করছি, লাইন নম্বরগুলি কেন দীর্ঘকাল বেঁচে থাকবে, কীভাবে তারা বাস্তব-জগতের সমস্যার সমাধান করে চলেছে: তারা খুব সাধারণ উপায়ে সত্যিকারের সম্পাদক ছাড়া প্রকৃত প্রোগ্রামিং করার একটি উপায় প্রস্তাব করেছিল। একবার যথাযথ, সহজেই ব্যবহারযোগ্য পূর্ণ-স্ক্রীন পাঠ্য সম্পাদকরা কোড সম্পাদনা করার মূলধারায় পরিণত হলেন, উভয়ই হার্ডওয়ার সীমাবদ্ধতাগুলি অদৃশ্য হয়ে গেছে এবং যখন নতুন জিনিসগুলি অভিযোজিত মানুষের জড়তা কাটিয়ে উঠেছে, তখন লাইন নম্বর ভিত্তিক বেসিক উপভাষাগুলি ব্যবহার থেকে খুব দ্রুত অদৃশ্য হয়ে গেল, কারণ তারা যে মূল ব্যবহারযোগ্যতার সমস্যাটি সমাধান করেছেন তা আর কোনও সমস্যা ছিল না।
বেসিকটি যে স্থান ও যুগে বিকাশ করা হয়েছিল, সেই স্থানে এবং I-O ডিভাইসটি একটি সেরা টাইপ ছিল tele পুরো প্রোগ্রামের একটি তালিকা বা তার আকর্ষণীয় অংশ মুদ্রণ করে (কাগজে) একটি প্রোগ্রাম সম্পাদনা করা হয়েছিল এবং তারপরে লাইন সংখ্যার সাথে প্রতিস্থাপন লাইনগুলি টাইপ করা হয়েছিল।
এই কারণেই ডিফল্ট লাইন নম্বরটি 10 দ্বারা ছিল, সুতরাং বিদ্যমান লাইনের মধ্যে অব্যবহৃত সংখ্যা থাকবে।
ren
' কমান্ড ছিল, যাতে নতুন করে চাকরী করা যায়। একটা প্রচলিত আবাহন ছিল ren 10, 10
(দশ থেকে শুরু পুনরায় নম্বর, দশ দ্বারা বৃদ্ধিশীল - ডিফল্ট আচরণ যদি এক মাত্র টাইপ করা ren
। দ্য goto
এবং gosub
এবং then (linenumber)
। কমান্ড স্বয়ংক্রিয়ভাবে আপডেট করা হবে কিন্তু এই স্পষ্টভাবে নিকটতম মূলসূত্র পাওয়া ছিল না কিন্তু IIRC অ্যাপল পাওয়া ছিল। পূর্ণসংখ্যা বেসিক, অ্যাপলসফ্ট এফপি বেসিক, টিআই বেসিক / এক্সটেন্ডেড বেসিক, এমএস বেসিক / জিডাব্লু বেসিক ইত্যাদি
"লাইন নম্বর" এর অর্থ কয়েকটি আলাদা জিনিস।
প্রথমত, মনে রাখবেন যে "লাইনগুলি" ধারণাটি চিরদিনের মতো হয়নি। এই যুগের অনেক প্রোগ্রামিং ভাষাগুলি খোঁচা কার্ড ব্যবহার করত এবং সিক্যুয়েন্স নম্বরগুলি (সাধারণত কার্ডের শেষ কয়েকটি কলামগুলিতে) আপনাকে ডেকে ফেলে দিলে সঠিকভাবে আপনার ডেকটি পুনরুদ্ধার করতে সহায়তা করে বা কার্ড রিডারে কোনও ভয়ঙ্কর কিছু ঘটেছিল। এটি স্বয়ংক্রিয়ভাবে করার জন্য মেশিনগুলি ছিল।
GOTO
বিবৃতিগুলির লক্ষ্য হিসাবে ব্যবহারের জন্য লাইন নম্বরগুলি সম্পূর্ণ আলাদা ধারণা। ফরটারান চতুর্থগুলিতে, তারা optionচ্ছিক ছিল এবং বিবৃতিটির আগে ছিল (কলামে 1-5)। ফ্রি-ফর্ম লেবেলগুলির চেয়ে কার্যকর করা সহজ হওয়ার পাশাপাশি, গণিত এবং নির্ধারিত জিওটিও- র ধারণাও ছিল , যা আপনাকে একটি স্বেচ্ছাসেবী লাইন সংখ্যায় ঝাঁপ দিতে দেয়। এটি বেশিরভাগ আধুনিক প্রোগ্রামিং ভাষাগুলির কাছে নেই (যদিও switch
বিবৃতিগুলি নিকটে আসে) তবে এটি এসেম্বলার প্রোগ্রামারদের জন্য একটি পরিচিত কৌশল ছিল।
বেসিক ফোরট্রান থেকে প্রাপ্ত, এবং বাস্তবায়ন এবং বুঝতে, তাই (উভয় সিকোয়েন্সিং এবং লক্ষ্য হিসাবে একটি লাইন সংখ্যা আছে যে "লাইন 'অত্যাচার সহজ হতে অভিপ্রেত ছিল GOTO
/ GOSUB
বিবৃতি) সম্ভবত একটি নকশা সিদ্ধান্ত যে কারণে জন্য তৈরি ছিল।
goto array_of_labels[some_computation()];
GOTO
(বা ASSIGN
) এবং মূল ওরফে গাণিতিক ওরফে থ্রিওয়ের লক্ষ্যমাত্রার জন্য লেবেলগুলির প্রয়োজন IF
, এবং (খুব কম ব্যবহৃত হয়) বিকল্প প্রত্যাবর্তন CALL
, এবং লক্ষ্যগুলি (যুক্তিযুক্ত বিস্ময়কর) এর DO
এবং FORMAT
বিবৃতিগুলির জন্য প্রয়োজন। অন্যান্য বিবৃতিতে তারা alচ্ছিক ছিল।
GOTO 1000+N*100
একটি switch
বিবৃতি অনুকরণ করতে লিখতে পারেন ।
আমি COBOL এ প্রোগ্রামিং শুরু করেছি যা প্রতিটি লাইনের 1-6 কলামে লাইন নম্বর ব্যবহার করে। কারণ 1970 এর দশকে কোনও আইডিই ছিল না পাঞ্চ কার্ডের মাধ্যমে সবকিছু সম্পন্ন হয়েছিল এবং মূল উত্সে কোন লাইনগুলি প্রতিস্থাপন করা হবে এবং কোন নতুন লাইন যুক্ত হবে তা চিহ্নিত করার জন্য লাইন নম্বর ব্যবহার করা হয়েছিল। আমাদের আরও লাইন যুক্ত করার জন্য জায়গা দেওয়ার জন্য আমরা 100 দ্বারা রেখার সংখ্যা বৃদ্ধি করতাম।
বেসিক লাইন-টার্মিনাল যুগে ফরটারনের চেয়ে প্রায় পরে এসেছিল। এতে একটি পঠন-এক্সি-প্রিন্ট-লুপ পরিবেশ বৈশিষ্ট্যযুক্ত যা কার্ডের ডেকের চেয়ে বেশি ইন্টারেক্টিভ ছিল।
আমি বেসিকে প্রোগ্রাম করতে শিখেছি, একটি এক লাইনের ডিসপ্লেতে 24 টি অক্ষর রয়েছে। লাইন সংখ্যাগুলি যেখানে আপনি একটি লাইন যেতে চান তা নির্দিষ্ট করার প্রাকৃতিক উপায় ছিল, কোনওটি সম্পাদনা করা হোক বা অন্যের মধ্যে সন্নিবেশ করানো হোক।
আপনি কীভাবে এটি করবেন তা আমি সত্যিই ভাবতে পারি না।
এখনও কারও উল্লেখ না করা একটি বিষয় হ'ল প্রাথমিক পর্যায়ে শাখার লক্ষ্যগুলি সুস্পষ্ট যেখানে প্রোগ্রাম প্রবাহ সম্পর্কে যুক্তিযুক্তদের পক্ষে এটি সহজ। সুতরাং (সম্ভবত নেস্টেড) বিগইন / এন্ড স্টেটমেন্টগুলি (বা যে কোনও ব্লক ডিলিমিটারগুলি ব্যবহৃত হয়েছিল) মিলানোর চেয়ে বরং নিয়ন্ত্রণ প্রবাহ কোথায় গিয়েছিল তা বেশ স্পষ্ট। এটি সম্ভবত বেসিক এর লক্ষ্য শ্রোতা (এটা দেওয়া দরকারী ছিল শিক্ষানবিস এর সমস্ত উদ্দেশ্য প্রতীকী নির্দেশ কোড সব পর)।
ডার্টমাউথ টাইম শেয়ারিং সিস্টেম একটি টেলি টাইপ ইন্টারফেস ব্যবহার করেছে। সুতরাং এটি একটি কমান্ড ভিত্তিক ইন্টারফেস ব্যবহার করে। মূলত, প্রোগ্রামটি সম্পাদনা করার জন্য লাইন নম্বরগুলি কেবলমাত্র ব্যবহৃত হিসাবে ব্যবহৃত হয়েছিল। আপনি একটি লাইন নম্বর ব্যবহার করে সন্নিবেশ, প্রতিস্থাপন বা মুছতে পারবেন। এটি মনে হয় না যে প্রথম সংস্করণটি গোটো স্টেটমেন্টের জন্য লাইন নম্বর ব্যবহার করেছিল, তবে এটি ভাষার পরে সংযোজন ছিল।