أطلس أوتوكود
المحتويات
بدايةً، أطلس اوتوكود (أأ) (AA) كان لغة برمجة استحدثت على وجه التقريب في سنة 1965 في جامعة مانشستر للكمبيوتر أطلس. وقد استحدثت من قبل توني بروكر وديريك موريس كتحسين للغة البرمجة، وإزالة بعض من الميزات الأكثر فقرا في ALGOL مثل «تمرير المعالم حسب الاسم»)التي مع60 ALGOL لا تعنى معناها المعتاد ولكن يتم تمرير العنوان بروتين فرعى قصير. لإعادة حساب المعاملة في كل مرة يرد ذكرها).إذا ظهرت بوضوح كتابة المتغيرات والروتين الفرعى والوظائف. يقوم أطلس أوتوكود (أأ) (AA) البرمجى بإنشاء فحص للمدى لمصفوفة الوصول، ويسمح لمصفوفة ان يكون لها وأبعاد التي يتم تحديدها في وقت التشغيل (أي يمكن أن تعرّف مصفوفة كـ عدد صحيح مصفوفة شيء (i:j)، حيث تم حساب i:j على انهم قيم. حيث كان مسموح بألية الترميز المباشر. ونتناول فيما يلي مزيدًا من التفاصيل.
علاوةً على ذلك، أطلس اوتوكود يشمل نوع بيانات مركبة التي من شأنها دعم الأعداد المركبة (التي تشكل جزءا حقيقيا، وجزءا وهمي وهو اضعاف من الجذر التربيعي للعدد -1)، وذلك جزئيا بسبب ضغوط من قسم الهندسة الكهربائية، لان الأعداد المركبة تستعمل لتمثيل سلوك التيار المتردد. الجذر التربيعي ل-1 يتم تمثيله بـ i، الذي كان يعامل على أنه ثابت مركب = i
كذلك، بناء الجملة للمصطلح سمح باهمال عامل المضاعفة، مثلًا 3a كانت تعامل كـ 3*a، وa(i+j) كانت تعامل كـ a*(i+j) لو لم تكن a مصفوفة. في الاستخدامات المبهمة، واتخذت أطول اسم ممكن، مثلًا ab لم يكن يعامل كـ a*b، سواء كانت ظهرت a and b أو لم تظهر.
إضافةً إلى ذلك، وكانت الكلمات الرئيسية في AA تمييز عن غيرها من النصوص لكونها تحتها خط، وكان هناك كذلك نمط"uppercasedelimiters" المحددات ذات الاحرف الكبيرة حيث كافة الأحرف الكبيرة (خارج السلسلة) يتم علاجها كأحرف صغيرة تحتها خط.
علاوةً على ذلك، عندما استدارت ال AA إلى KDF9 الإنجليزية الكهربائية الحاسوبية، تم تعديل مجموعة الأحرف إلى أيزو وتعافى المترجم من شريط الورق القديم ادنبره مشروع تاريخ الكمبيوتر وأصبحت متاحة على شبكة الإنترنت، كما هي نسخة ذات جودة عالية من أطلس اوتوكود اليدوي الأصل.
وفي هذا السياق، في بعض الإصدارات (ولكن ليس في إصدار أطلس الأصلي)، من أجل كتابة سهلة كان من الممكن شحذ الكلمات بوضع العلامة "%" أمامهم، مثلًا الكلمة endofprogramme يمكن أن يتم كتابتها %end %of %programme أو %endofprogramme
إضافةً إلى ذلك، وكان أطلس اوتوكود ثاني أكبر مطالب للشهرة (بعد أن كان سلفا لـ Imp وEMAS) لأن لديه الكثير من الميزات الموجودة في «مترجم التحويل البرمجى» "Compiler Compiler" الأصلي. وهو شكل مختلف من مترجم AA يشمل دعم وقت التنفيذ لمحلل الأصل التكرارى من أعلى إلى أسفل. وكان نوع المحلل في «مترجم التحويل البرمجى» "Compiler Compiler" يستعمل باستمرار في ادنبره في الستينات حتى بداية الألفية.
وصلات خارجية
ومن جهة أخرى، أحرف فليكسورايتر الأخرى التي تم استخدامها في أطلس اوتوكود كانت: α في أرقام الفاصلة العائمة، مثلًا 3.56α-7 للحديثة 3.56e-7 فإن β تعني «النصف الثاني من كلمة الذاكرة لأطلس»؛ π لعدد بأي الرياضي.
ومن ناحية أخرى، يوجد برامج ترميز تلقائي autocodes أخرى ل (الكمبيوتر تيتان) (النموذج الأولي أطلس 2) في جامعة كامبريدج وفيرانتى ميكورى.
وعلى صعيد آخر، نوع البيانات المركبة اسقطت عندما تحول أطلس اوتوكود لاحقاً إلى لغة البرمجة ادنبره IMP. (و IMP كانت امتدادا لAA وكانت بارزة لكونها تستعمل لكتابة نظام التشغيل EMAS)
ومن جهة أخرى، أطلس اوتوكود كان متأثرا بجهاز الإخراج الذي اتاحه له مخترعه، فرايدن فليكسورايتر وبالتالي فإنه يسمح بالرموز مثل "½" يرمز إلى "5." الرمز العلوى مثلا 2 إلى «أس 2» فليكسوريتر دعمت الضرب فوق الرمز وبالتالي AA فعلت كذلك—حتى ثلاثة أحرف يمكن الضرب فوقها كرمز واحد. مثلًا مجموعة أحرف ليس لديها "↑" رمز، وهكذا كانت علامة أسية ضربت فوق "|" و"*". (ويمكن كذلك وضع الخط للكلمات الرئيسية المذكورة أعلاه أن يتم ذلك باستخدام الضرب فوق الرمز) اللغة مشروحة بالتفصيل في الدليل المرجعي لاوتوكود أطلس.
وفي هذا الصدد، لا توجد كلمات محجوزة في اللغة على أنها كلمات أساسية يتم تحديد بوضع خط تحتها، ولا من خلال الاعتراف بتسلسل أحرف محفوظة. في العبارة، if token=if then result = token هم الاثنين كلمات أساسية على حد سواء الكلمة if وإذا ومتغير اسمه if.
من جهة ثانية، وبسبب شحذ الكلمات الأساسية، كان من الممكن ل AA ان تسمح بالمسافات في أسماء المتغيرات، مثل قيمة عددية سابقة. وكانت المسافات ليست كبيرة وأزيلت قبل التحليل في مرحلة ما قبل ليكسنج التافهة وتسمى «إعادة بناء الخط» ما سوف يراه المترجم في المثال أعلاه أن "iftoken=ifthenresult=token".
مراجع
الدليل المرجعي لاوتوكود أطلس
ومن جهة أخرى، Programming In Atlas Autocode - Edinburgh University Computer Unit Report #1 (1965). (Original scan)
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟