سؤال

التكرار المحتمل:
لماذا ازعجنا أرقام الأسطر على الإطلاق؟

أشعر بالفضول لمعرفة سبب احتواء الإصدارات المبكرة من لغة البرمجة BASIC على ترقيم أسطر كما في:

42 PRINT "Hello world!"

لم يكن لدى محرري النصوص في ذلك الوقت ترقيم أسطر؟

يحرر:نعم، أعلم أنها تستخدم في GOTOs، ولكن لماذا؟أعني أن وجود الملصقات كان مكلفًا للغاية من الناحية الحسابية؟

هل كانت مفيدة؟

المحلول

تحتوي العديد من أجهزة الكمبيوتر الصغيرة على مترجم BASIC في ذاكرة القراءة فقط (ROM) والذي يبدأ عند بدء التشغيل.كانت المشكلة أنه لم يكن هناك محرر نصوص أو نظام ملفات يمكن الحديث عنه.كان لديك مطالبة تفاعلية للقيام بكل شيء من خلاله.إذا أردت إدراج سطر من التعليمات البرمجية، فما عليك سوى كتابته، بدءًا من رقم السطر.سيتم إدراجه في المكان الصحيح في الكود الخاص بك.على سبيل المثال:

>10 print "hello"
>30 goto 10
>20 print "world"
>list
10 PRINT "hello"
20 PRINT "world"
30 GOTO 10
>

(في هذا المثال > هي المطالبة الأساسية)

إذا أردت مسح سطر، فاكتب شيئًا مثل ERASE 20.أعطتك بعض الأنظمة الرائعة حقًا محررًا للخط (على سبيل المثال. EDIT 10) وإذا لم تكن تخطط لأرقام الخط الخاصة بك ونفد (كيف يمكنني إدراج خط ما بين 10 و 11؟) أعطاك بعض الأنظمة RENUM الأمر الذي من شأنه إعادة ترقيم التعليمات البرمجية الخاصة بك (وضبط GOTOs و GOSUBs بشكل مناسب).

اوقات مرحه!

نصائح أخرى

كان ترقيم السطر الأساسي الأصلي هو في الواقع جزءا لا يتجزأ من اللغة، وتستخدم في تدفق التحكم.

سيأخذ أوامر GOTO و GOSUB الخط، واستخدمها لتدفق التحكم. كان هذا شائعا (على الرغم من أنه محبط الآن).

تم استخدامها كملصقات لغتوت وجوسوب

مثله:

10 PRINT "HELLO WORLD"
20 GOTO 10

لم تكن هناك تسميات مسينة في بعض الإصدارات الأساسية المبكرة

كانت مطلوبة أيضا إذا أردت إدراج خط بين خطوط التعليمات البرمجية الحالية، لأنه في الأيام الأولى، لم يكن لديك أي محررين نصي كامل. يجب أن يكون كل شيء مكتوطا في مترجم "التفاعلي".

لذلك إذا كتبت:

15 PRINT "AND THE UNIVERSE"

سيصبح البرنامج:

10 PRINT "HELLO WORLD"
15 PRINT "AND THE UNIVERSE"
20 GOTO 10

عندما تمتد من أرقام السطر، يمكنك تشغيل أداة "إعادة ترقيم" لإعادة ترقيم جميع الخطوط في البرنامج، ولكن في الأيام الأولى في الأيام الأولى من Commodore 64 وأجهزة الكمبيوتر المنزلية الأخرى، لم يكن لدينا ذلك، لذلك أنت " ديجين يجب أن تراجع يدويا. لهذا السبب اضطررت إلى ترك فجوات من 10 أو أكثر في أرقام السطر، لذلك يمكنك بسهولة إضافة خطوط بينهما.

إذا كنت ترغب في تجربة مترجم Commodore 64، تحقق من محاكي C64 مكتوب في فلاش: http://codeazur.com.br/stuff/fc64_final/ (لا تثبيت مطلوب)

في الأساسي، أشارت أرقام السطر التسلسل.

أيضا، لم يكن العديد من المحررين الأكبر سنا لملفات، ولكن خطوط ببساطة ("محرري الأسطر"، على سبيل المثال إد، المحرر القياسي). من خلال ترقيمها بهذه الطريقة، كنت تعرف الخط الذي كنت تعمل عليه.

في اليوم، كان كل اللغات أرقام تسلسل، وكان كل شيء على بطاقات مثقبة. كان هناك سطر واحد لكل بطاقة. وضع الطوابق من البطاقات البرنامج الخاص بك.

عندما تسقط البطاقات، كنت تضعها في فارز البطاقة استخدم أرقام التسلسل هذه.

وبالطبع، تمت الإشارة إليها عن طريق تبني تدفق التحكم.

جوجل بسيطة تكشف ما يجب أن تقوله ويكيبيديا عن ذلك:

كانت أرقام الخطوط عنصر مخصص في بناء الجملة في بعض لغات البرمجة القديمة مثل GW-Basic. [2] السبب الأساسي لهذا هو أن معظم أنظمة التشغيل في ذلك الوقت تفتقر إلى محرري النصوص التفاعلية؛ نظرا لعادة ما يقتصر واجهة المبرمج عادة على محرر خط الأسطر، قدمت أرقام السطر آلية يمكن إدراجها من خلال خطوط محددة في التعليمات البرمجية المصدر للتحرير، والذي يمكن للمبرمج إدراج سطر جديد في نقطة معينة. قدمت أرقام الخطوط أيضا وسيلة مريحة للتمييز بين التعليمات البرمجية التي سيتم إدخالها في البرنامج والأوامر المراد تنفيذها على الفور عند إدخالها من قبل المستخدم (والتي لا تحتوي على أرقام خط).

في C64، لم يكن هناك محرر حقيقي (مدمج على الأقل). لتحرير جزء من البرنامج، كنت تفعل شيئا مثل القائمة 100-200، ثم ستتمكن فقط من تحرير تلك الأسطر التي تم عرضها حاليا على الشاشة (لا التمرير لأعلى!)

كانوا ملصقات للبيانات، حتى تتمكن من ذلك GOTO رقم الخط. لم يتعين على عدد البيانات بالضرورة مطابقة أرقام الخطوط المادية في الملف.

تم استخدام أرقام السطر في تدفق التحكم. لم تكن هناك دون اسم الفرعية. كان عليك استخدام GOSUB 60, ، على سبيل المثال، لاستدعاء الروتين الفرعي بدءا من السطر 60.


على التحديث الخاص بك، لم يكن لدى جميع اللغات ملصقات، ولكن تحتوي جميع اللغات على أرقام خط في وقت واحد. في وقت واحد، كان كل شيء بطاقات لكمة. كان Basic أحد اللغات التفاعلية الأولى للغاية، حيث يمكنك في الواقع كتابة شيء ولديك ردا على الفور. كانت أرقام الخطوط لا تزال التكنولوجيا الحالية.

تسميات نكون نفقات إضافية. عليك أن تتبع العلاقة بين الملصق الرمزي والرمز أو البيانات التي يشير إليها. ولكن إذا كان لكل سطر رقم سطر (وإذا كان كل تحويل بيانات تدفق التحكم دائما يشير دائما إلى بداية السطر)، فلن تحتاج إلى جدول رمز منفصل.

ضع في اعتبارك أيضا أن المترجمين الفوريين الأساسيين الأصليين لا يحتاجون إلى جدول رمزا للمتغيرات: كان هناك 26 متغيرات تسمى AZ. البعض كانوا متطورين ولديهم زن. أصبح البعض يتوهم للغاية وأضاف تمييزا بين سلسلة وعدد صحيح ونقطة عائمة عن طريق إضافة "$" أو "٪" بعد المتغير. لكن لا يوجد جدول رمز مطلوب.

IIRC، تم استخدام أرقام الخطوط في الغالب كملصقات لبيانات GOTO و GOSUB، نظرا لأن النكهات الأساسية (الأكثر؟) لم تكن هناك طريقة لتسمية قسم من التعليمات البرمجية.

كما تم استخدامها من قبل المحرر - أي لقد قلت:

edit 100

لتحرير الخط 100.

كما أشار آخرون، تم استخدام أرقام الخطوط هذه كجزء من الروتين الفرعي.

بالطبع، هناك سبب لا يتم ذلك بعد الآن. تخيل ما إذا كنت تقول Geto 20 On Line 10، ثم أدرك لاحقا أنك بحاجة إلى كتابة 10 خطوط إضافية من التعليمات البرمجية بعد السطر 10. فجأة، أنت تحطيم 20 حتى تحتاج إلى تحويل روتينك الفرعي بعيدا ( أرقام أعلى) وتغيير قيمة GOTO الخاصة بك، أو تحتاج إلى كتابة روتين فرعي آخر يقفز بعيدا في التعليمات البرمجية.

بمعنى آخر، أصبح كابوسا من رمز السباغيتي الحقيقي وليس ممتعا للحفاظ عليه.

تم إدخاله في سطر الأوامر في العديد من الحالات (أو كان، على بلدي Commodore القديم 64) لذلك قد لا يكون هناك دائما محرر نصوص، أو إذا كان هناك، كان الأمر أساسي للغاية.

بالإضافة إلى ذلك، ستحتاج إلى القيام به Gotos وما شابه ذلك، بالإضافة إلى إدراج خطوط بين الآخرين.

بمعنى آخر:

10 PRINT "HELLO"
20 GOTO 10
15 PRINT " WORLD"

حيث سوف يذهب في 10 15 20 20

يحتوي بعض المحررين فقط على وضع "الكتابة فوق" ولا يوجد وضع "إدراج". هذا جعل التحرير للقانون الحالي مؤلم للغاية. بإضافة ميزة رقم الخط هذه، يمكنك أن تصحيح التعليمات البرمجية الموجودة من أي مكان داخل الملف:

100 PRINT "Broken Code"
200 PRINT "Foobar"
...
101 patch the broken code
102 patch more broken code

لأن أرقام السطر لم يكن يجب طلبها داخل الملف.

كانت أرقام الخطوط جزءا من اللغة، في بعض المبكرين للغاية، حتى نظام التشغيل كان فقط هذه الخطوط البسيطة. كل ما كان لديك سطر واحد في وقت تلمع. حاول كتابة نظام محاسبي باستخدام ملفات البرنامج 1-4K وتجززه حسب الحجم لإنجاز الأشياء. لتحرير كنت تستخدم أرقام السطر لمعرفة ما كنت تحرير. لذلك، إذا دخلت مثل:

10 PRINT "howdy"
20 GOTO 10
10 PRINT "WOOPS"
15 PRINT "MORE WOOPS"
20
RUN

سوف تحصل على:

WOOPS
MORE WHOOPS

سوف 20 فارغة حذف فعلا هذا الخط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top