TRAC (لغة برمجة)
لغة TRAC (اختصارًا لـ Text Reckoning And Compiling) هي لغة برمجة طُوِّرت بين عامي 1959 و1964 على يد كالفن مويرز ، وطُبِّقت لأول مرة على جهاز PDP-1 عام 1964 بواسطة ل. بيتر دويتش . [ 4 ] وكانت إحدى اللغات الثلاث الأولى التي أوصى بها تيد نيلسون في كتابه Computer Lib . استُخدمت لغة TRAC T64 حتى عام 1984 على الأقل، عندما قام مويرز بتحديثها إلى TRAC T84. [ 4 ]
وصف اللغة
لغة TRAC هي لغة نصية بحتة، وهي نوع من لغات الماكرو . على عكس لغات الماكرو التقليدية المخصصة في ذلك الوقت، كتلك الموجودة في لغات التجميع، تتميز TRAC بتخطيطها الجيد واتساقها واكتمالها من نواحٍ عديدة. فهي تحتوي على عوامل إدخال وإخراج صريحة، على عكس الإدخال/الإخراج الضمني المعتاد على مستوى الماكرو الخارجي، مما يجعلها في الوقت نفسه أبسط وأكثر تنوعًا من لغات الماكرو القديمة.
TRAC هي لغة لمعالجة النصوص، [ 5 ] وتُسمى أيضًا لغة لمعالجة السلاسل النصية. [ 6 ] ولهذا السبب، فإن نوع البيانات الوحيد المتاح هو سلسلة من الأحرف. الأرقام عبارة عن سلاسل من الأرقام، مع توفير العمليات الحسابية الصحيحة (بدون حدود محددة للقيم القصوى) من خلال دوال مدمجة ("بدائية") تعمل على تمثيلها النصي. يمكن القول إن أحد جوانب اكتمالها هو أن مفهوم الخطأ يقتصر على أحداث مثل نقص مساحة الملف وطلب توسيع سلسلة نصية أطول من مساحة التخزين العاملة للمفسر؛ ما يُوصف في العديد من اللغات بأنه عمليات غير قانونية، يتم التعامل معه في TRAC من خلال تحديد نتيجة (غالبًا سلسلة نصية فارغة) لكل تركيبة ممكنة من سلاسل وسائط الدالة.
لغة TRAC، مثل لغتي APL و LISP ، هي لغة تعبيرية (على عكس اللغات الإجرائية الأكثر شيوعًا )، ولكنها، على عكس APL، تفتقر تمامًا إلى المعاملات. وهي في معظم جوانبها مثال على البرمجة الوظيفية البحتة . وتشترك مع LISP في بنية نحوية تتضمن عادةً وجود مستويات متعددة من الأقواس المتداخلة.
لغة TRAC متجانسة : أي أنه يمكن تمثيل برنامج TRAC ومعالجته داخل لغة TRAC نفسها. [ 7 ] [ 8 ] [ 9 ] إن التركيز على السلاسل النصية كنوع البيانات الوحيد قويٌّ لدرجة أن TRAC توفر آليات للتعامل مع الأحرف النحوية للغة نفسها، إما في أدوارها النحوية أو كأي حرف آخر، ويبدو أن الكود ذاتي التعديل هو نتيجة طبيعية لتقنيات برمجة TRAC النموذجية أكثر من كونه ميزة خاصة.
استُلهم برنامج TRAC بشكل أساسي من ثلاث أوراق بحثية لدوجلاس ماكلروي . [ 7 ] [ 10 ] [ 11 ] [ 12 ]
الملكية الفكرية
سجّل مويرز اسم TRAC كعلامة تجارية في محاولة منه للحفاظ على سيطرته على تعريف اللغة، وهو إجراء غير مألوف ورائد في ذلك الوقت. وفي إحدى المرات، رفع دعوى قضائية ضد شركة ديجيتال إكويبمنت (DEC) بتهمة انتهاك حقوق الملكية الفكرية، مدعيًا أن عقدًا لتوريد حاسوب صغير مزود بمترجم TRAC ينتهك حقوقه. "تضمن العدد الأول من مجلة دكتور دوبز ، وهي إحدى أوائل المطبوعات في مجال الحواسيب الشخصية، افتتاحية لاذعة ضد مويرز وجشعه في محاولة فرض رسوم على الناس مقابل لغة البرمجة الخاصة به." [ 13 ] [ 14 ] ومنذ ذلك الحين، استُخدم الاسم عدة مرات في مشاريع تقنية معلومات غير ذات صلة، بما في ذلك نظام إدارة مشاريع مفتوح المصدر حالي يُسمى Trac .
التأثير والاستخدام
تم تطبيق TRAC لاحقًا على PDP-8 و PDP-10 و PDP-11 .
ظهرت لغات برمجة عديدة مستوحاة من لغة TRAC. ولتجنب أي مشاكل مع لغة Mooers، أعادوا تسمية العناصر الأساسية و/أو استخدموا أحرفًا خاصة مختلفة. في حالة SAM76، أُضيفت العناصر الأساسية، وفقًا لكلود كاغان، "لأن TRAC لغة بسيطة". أما في حالة MINT، فقد أُضيفت العناصر الأساسية لإتاحة الوصول إلى نظام تحرير نصوص متطور.
- كان أحد أوجه القصور الملحوظة في لغة TRAC هو افتقارها إلى قابلية التوسع الكاملة: فبعض الدوال الأساسية في TRAC حساسة للتمييز بين الوسيط الفارغ (الذي يحتوي على حرف واحد) والوسيط غير الموجود (غير المحدد)، ولكن بعد آخر وسيط غير فارغ، لا تستطيع الدالة المعرفة من قبل المستخدم التمييز بينهما. أما لغة SAM76، وهي لغة شبيهة بلغة TRAC، فقد تغلبت على هذا القيد.
- قام روس نيلسون بتطوير لغة برمجة إضافية لبرنامج إيماكس تُسمى MINT (MINT Is Not TRAC). تُستخدم هذه اللغة في محرر FreeMACS لنظام التشغيل FreeDOS .
- قام جون ووكر بتنفيذ مكتبة لغة امتداد قابلة للتضمين DIESEL [ 15 ] (لغة تعبير السلسلة ذات التقييم التفسيري الغبي) في الأصل لمعالجة وحدات الماكرو للقوائم في AutoCAD . [ 16 ]
تم استخدام TRAC بواسطة برنامج FTP في منتج PC/TCP الخاص به كلغة برمجة نصية لمتصل المودم.
كما تم استخدام TRAC كواجهة أمامية في برنامج العرض الرقمي Cray للأفلام، بما في ذلك فيلم The Last Starfighter .
برنامج نموذجي
هذا مثال على برنامج بسيط يطلب اسم المستخدم ثم يخرج، مكتوب بلغة TRAC T64: [ 17 ]
#(DS,PROG.A,( #(ملاحظة: ما اسمك؟ )) #(DS,NAME,##(RS)) #(PS,( مع السلامة)) ))'
يستخدم TRAC T84 صيغةً مختلفةً قليلاً وأسماءً مختلفةً لعناصره الأساسية. فيما يلي نص برمجي لحساب أعداد فيبوناتشي، مكتوب بلغة TRAC T84: [ 18 ]
:(s,fibo,( :(ei,<1>, 1, 0,( :(ei,<1>, 2, 1,( :(aa, :(ري,فيبو,:(as, <1>,1))),:(ري,فيبو,:(as, <1>,2))) )) )) ))` (mw,fibo)
انظر أيضاً
- لغة البرمجة TTM، وهي لغة برمجة مستوحاة من TRAC
مراجع
- ↑ "مواصفات TRAC T2001" . 5 فبراير 2005. مؤرشف من الأصل في 2005-02-05.
- ↑ "لغة برمجة Trac 2001" . SourceForge . 8 مارس 2013.
- 1 2 "TRAC - لغة لمعالجة السلاسل النصية بين الإنسان والآلة" . HOPL: الموسوعة التاريخية الإلكترونية للغات البرمجة . مؤرشفة من الأصل في 13 أغسطس 2009.
- 1 2 "مستلزمات البرمجة - كل ما يحتاجه المبرمج" . مؤرشف من الأصل بتاريخ 2001-04-08.
- ↑ ديفيد والدن. "ذكريات كلية، 1964-2013" . 2014.
- ↑ كارول لوب مير. "مقارنة معالجة السلاسل في أربع لغات برمجة" . 1972.
- 1 2 مويرز، سي إن ؛ دويتش، إل بي (1965). "تراك، لغة لمعالجة النصوص". وقائع مؤتمر ACM الوطني العشرين لعام 1965. الصفحات 229-246 . doi : 10.1145/800197.806048 . S2CID 40013081 .
- ↑ كاي، آلان (1969). المحرك التفاعلي (دكتوراه). جامعة يوتا.
- ^ كلاس فان شيلفن. "لا تقل" Homoiconic "" .
- ↑ ماكيلروي، دكتور في الطب ، امتدادات تعليمات الماكرو للغات المترجمات. CACM 3، العدد 4 (1960)، 214-220.
- ↑ إيستوود، دي إي وماكيلروي، إم دي، تعديل مُجمِّع الماكرو لبرنامج SAP. مركز الحوسبة التابع لمختبرات بيل للهاتف، 1959.
- ↑ ماكيلروي، دكتور في الطب، استخدام تعليمات ماكرو SAP لمعالجة التعبيرات الرمزية. مركز الحوسبة بمختبرات بيل للهاتف (1960)
- ↑ مويرز، كالفن (22 يونيو 1993). "مقابلة تاريخية شفهية مع كالفن ن. مويرز وشارلوت د. مويرز" . معهد تشارلز باباج . hdl : 11299/107510 .
- ^ "مجلة دكتور دوب – المجلد الأول" . 1976.
- ↑ "DIESEL - لغة تعبيرات السلاسل النصية ذات التقييم التفسيري البسيط" . www.fourmilab.ch .
- ↑ "مكونات البرمجيات / الأنظمة المدمجة" . www.fourmilab.ch .
- ↑ دليل المبتدئين للغة TRAC (1972) (مؤرشف) بقلم كالفن ن. مويرز.
- ↑ صفحة معلومات TRAC (مؤرشفة) ، في مشروع تاريخ الحوسبة ، مع عينة صغيرة من التعليمات البرمجية وصورة لـ CM Mooers.
روابط خارجية
- مؤسسة TRAC (أرشيف)
- TRAC، وهي لغة وصف الإجراءات للآلة الكاتبة التفاعلية في اتصالات ACM، المجلد 9 العدد 3، مارس 1966.
- صفحة معلومات TRAC الخاصة بأندرو ووكر
- مدخل TRAC في موسوعة HOPL للغات الحاسوب
- مشروع تطبيق TRAC على موقع SourceForge .
- تطبيق TRAC 64 بلغة TypeScript على GitHub .
- مقابلة تاريخية شفهية مع كالفن ن. مويرز وشارلوت د. مويرز في معهد تشارلز باباج . تتناول المقابلة أبحاث استرجاع المعلومات ولغات البرمجة من الحرب العالمية الثانية وحتى أوائل التسعينيات.
[[Category:Articles with example code]
- لغات برمجة الماكرو
- لغات البرمجة النصية
- لغات البرمجة المتجانسة
