نظام ساوثهامبتون بيسك
كان نظام ساوثهامبتون بيسك ( SOBS ) لهجة من لغة برمجة بيسك تم تطويرها واستخدامها على أجهزة الكمبيوتر من سلسلة ICT 1900 في أواخر الستينيات وأوائل السبعينيات؛ تم تنفيذه كمترجم بيسك تزايدي تحت نظام التشغيل MINIMOP في جامعة ساوثهامبتون [ 1 ] وتم تشغيله أيضًا تحت MAXIMOP .
كان يتم تشغيله من محطة طرفية من نوع Teletype ، على الرغم من أنه كان من الممكن أيضًا استخدام محطات طرفية من نوع CRT.
خصائص اللغة
على غرار العديد من التطبيقات المبكرة للغة BASIC، كان برنامج SOBS يتطلب ترقيم الأسطر ، وذلك لتمكين المستخدم من إضافة أسطر جديدة إلى البرنامج في المكان المطلوب، وأيضًا كأهداف لعبارات GOTO`and` GOSUB. RENUMBERكما توفرت خاصية لإعادة ترقيم أجزاء من الكود، افتراضيًا بزيادات قدرها 10، لتوفير مساحة أكبر في منتصف البرنامج.
باستثناء أرقام الأسطر، تم تمثيل جميع القيم العددية داخليًا كأرقام عشرية .
البيانات
كانت اللغة تحتوي على عدد قليل نسبياً من التعليمات البرمجية مقارنة بلغات البرمجة الحديثة:
| إفادة | غاية |
|---|---|
DATA | البيانات المخزنة READلإدخالها في متغيرات أثناء التشغيل |
DIM var(size)... | تحديد أبعاد المصفوفة. تم دعم المصفوفات أحادية وثنائية وثلاثية الأبعاد. |
END | أوقف تنفيذ البرنامج. |
FOR var=start TO end [STEP incr] | نفّذ مجموعة من العبارات بشكل متكرر لقيم مختلفة للمتغير var |
GOSUB line | استدعاء روتين فرعي عند رقم سطر معين؛ سيعود التدفق إلى العبارة التالية عند RETURNتنفيذ a. |
GOTO line | التفرع غير المشروط إلى رقم سطر معين. |
IF expr THEN line [ELSE line] | التفرع المشروط. لا يمكن لأجزاء " THENو" ELSEإلا أن تعطي أرقام الأسطر التي يجب الانتقال إليها. |
INPUT var | اطلب من المستخدم إدخال البيانات |
LET var=expr | قم بتعيين قيمة لمتغير. على عكس العديد من اللهجات الحديثة للغة BASIC، LETلم تكن كلمة اختيارية. |
NEXT var | قم بتنفيذ التكرار التالي للحلقة FOR. |
PRINT | إخراج إلى جهاز التلكس |
READ var... | اقرأ البيانات من DATAالعبارات إلى المتغيرات |
REM | اختصارًا لكلمة REM"آرك"، يسمح هذا بوضع تعليق على سطر |
RESTORE [line] | أعد ضبط READالمؤشر لإعادة القراءةDATA |
RETURN | العودة إلى السطر التالي لـ GOSUB. |
لاحظ على وجه الخصوص عدم وجود WHILEعبارة مشابهة؛ FORفقد كانت بنية التكرار الوحيدة المتاحة للمبرمجين.
المتغيرات
كانت أسماء المتغيرات للقيم العددية إما حرفًا واحدًا، أو حرفًا واحدًا متبوعًا برقم واحد، مما يسمح بوجود 286 متغيرًا منفصلًا إجمالًا. وكانت السلاسل النصية مدعومة؛ وكانت أسماء متغيراتها تخضع لنفس القيد ولكن متبوعة £برمز الجنيه الإسترليني (#).
الوظائف
تم توفير عدد محدود من الدوال العددية، وكلها تأخذ مُعاملًا عدديًا واحدًا:
| وظيفة | وظيفة() تم إرجاعها |
|---|---|
SIN | |
COS | |
ATN | |
SQR | |
LOG | |
EXP | |
INT | أكبر عدد صحيح لا يزيد عن |
SGN | -1 أو 0 أو 1، اعتمادًا على ما إذاكان أقل من أو يساوي أو أكبر من الصفر |
ABS | لوكانت النتيجة سلبية، وإلا |
كان دعم السلاسل النصية محدودًا، حيث اقتصر على دالة واحدة فقط، LENتُعيد طول السلسلة النصية المُدخلة. وكانت السلاسل الفرعية مدعومة باستخدام الأقواس المربعة، لذا A£[2,3]يُشير الرمز `--` إلى السلسلة الفرعية A£من الحرف الثاني إلى الحرف الثالث شاملًا الحرف الثاني.
10 LET A £ = "FOO" 20 PRINT A £ [ 2 , 3 ]سوف يطبعOO
كان هذا التركيب مدعومًا أيضًا على الجانب الأيسر من عملية الإسناد، لذلك
10. ليكن A £ = "FOO" 20. ليكن A £ [ 2 , 2 ] = "BAR" 30. اطبع A £سوف يطبعFBARO
المصفوفات
كان الدعم للتعامل مع مصفوفات البيانات قويًا نسبيًا، حيث كانت MATالعبارات قادرة على قراءة مصفوفة كاملة من DATAالعبارات، وإجراء عمليات مصفوفة مفيدة مثل جمع المصفوفات وطرح المصفوفات وضرب المصفوفات وإيجاد المصفوفة العكسية لمصفوفة مربعة .
مثال:
10 DIM A ( 3 , 3 ) 20 MAT READ A 30 DATA 1 , 1 , 2 , 1 , 0 , 2 , 0 , 2 , 1 40 DIM B ( 3 , 3 ) 50 MAT READ B 60 DATA 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 70 DIM C ( 3 , 3 ), D ( 3 , 3 ) 80 MAT C = A * B 90 MAT D = INV ( C ) 100 MAT PRINT D ,Aيُقرأ من DATAالعبارة الأولى | |
Bيُقرأ من DATAالبيان الثاني | |
Cيتم حسابها عن طريق الضرب AوB | |
Dيتم حسابها كمعكوس لـC |
سيكون الناتج 2 2 1 1 -1 0 4 -3 -2
تصحيح الأخطاء
كانت إمكانيات تصحيح الأخطاء في SOBS بدائية، ومقتصرة في الغالب على TRACEالعبارة. TRACE ONوكان من شأنها أن تجعل المفسر يطبع رقم كل سطر أثناء تنفيذه.
مراجع
- ↑ ريس، إم جيه؛ أوبنهايمر، إيه دبليو (21 يناير 1977). "SOBS - نظام BASIC تدريجي" . البرمجيات: الممارسة والخبرة . 7 (5). وايلي إنترساينس: 631-643 . doi : 10.1002/spe.4380070508 . S2CID 33989728. تاريخ الاسترجاع: 18 مايو 2009 .
{{cite journal}}: CS1 maint: deprecated archiveal service ( link )
- مترجمو لغة BASIC
- لغات برمجة ICL
- العلوم والتكنولوجيا في هامبشاير
- جامعة ساوثهامبتون
- عائلة لغات البرمجة الأساسية
