جنو أوكتافجنو أوكتف
أوكتف (بالإنجليزية: GNU Octave) هو برنامج حاسوب يؤدي عمليات التحليلات العددية وهو في معظمه متوافق مع ماتلاب، البرنامج جزء من مشروع جنو، لذلك فهو واحد من البرمجيات الحرة تحت بنود رخصة جنو العمومية.[9][10][11] تاريخالمشروع باشر العمل حوالي عام 1988. كان من المقرر في البداية ان يكون مرافقاً لدورة في تصميم مفاعل كيميائي. بدأ التطوير الحقيقي بواسطة جون أيتون في عام 1992. الإصدارية التجريبية الأولى (ألفا) كانت في يوم 4 يناير 1993 وفي يوم 17 فبراير، 1994 تم إصدار نسخة 1.0. نسخة 3.0 صدرت في يوم 21 ديسمبر، 2007. سمي البرنامج على اسم اوكتف ليفينسبل، بروفيسور سابق كان المبرمج الرئيسي تلميذاً له وكان من المعرف عنه إمكانيته بالقيام بعمليات حسابية معقدة بسرعة عالية باستخدام ورقة وقلم فقط دون الاستعانة بالة حساب إلكترونية. تفاصيل تقنية
لغة اوكتفلغة اوكتف هي لغة برمجة تفسيرية وهيكلية (مشابهة للغة سي وتدعم العديد من دول مكتبة سي القياسية وكذلك عدد من استدعائات ودوال نظام يونكس. بالرغم من ذلك لكنه لا يدعم تمرير المعطيات بالمصدر. برامج اوكتف تتضمن مجموع من استدعاءات الدوال أو على شكل نصيص. صياغتها مبنية على مصفوفة وتقوم بتوفير مختلف الدوال لعمليات الدوال. اللغة ليست كائنية التوجه ولكنها تدعم بنية بيانات مختلفة. صياغتها شبيهة جداً بصياغة برمجة ماتلاب والنصيص المبرمج بعناية سوف يستطيع العمل على كل من اوكتف وماتلاب. بالأمكان نسخ واستخدام اوكتف بحرية وبدون مقابل لأنه مرخص ضمن بنود رخصة جنو العمومية. البرنامج يعمل تحت معظم أنظمة يونكس والأنظمة الشبيهة بيونكس، وكذلك مايكروسوفت ويندوز. مزايا ملحوظة
كتابة رمز TAB في سطر الأوامر سوف يجعل اوكتف يحاول أن يكمل كتابة اسم المتغير، الدالة أو الملف (مشابه لتكملة الاوامر في باش). اوكتف يستخم النص قبل المؤشر كمؤشر اولي على الاسم المراد اكماله.
اوكتف يحفظ الاوامر المكتبة في خزان داخلي عند تشغيله بصورة تفاعلية لكي يكون بالأمكان استرجاعها والتعديل عليها.
يتضمن اوكتف كمية محدودة من دعم تنظيم البيانات في الهياكل. مثلاً: octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string"; octave:2> x.a x.a = 1 octave:3> x.b x.b = 1 2 3 4 octave:4> x.c x.c = string
مشغلات '||' و'&&' المنطقية في اوكتف تعمل بأسلوب الدائرة القصيرة (كما في مثيلاتها في لغة سي) عكس مشغلات '|' و'&'.
تتضمن اوكتف مشغلات زيادة ونقصان مشابهة للموجودة في لغة سي وهما '++' و'--' في كلا من اشكالهم (قبل وبعد).
اوكتف يدعم شكلاً محدود من معالجة الاخطاء مبنية على نموذج 'unwind-protect' في لغة ليسب، الشكل العام لهذا النموذج يكون كما في المثال الأتي: unwind_protect
body
unwind_protect_cleanup
cleanup
end_unwind_protect
لدى اوكتف الية حقيقة لمعاملة الدوال التي تاخذ عدد غير محدد من المعطيات بدون حد أعلى واضح. يستخم المعطى الخاص المسمى function s = plus (varargin)
if (nargin==0)
s = 0;
else
s = varargin{1} + plus (varargin{2:nargin});
endif
endfunction
بالإمكان استرجاع أي عدد من القيم في دالة ما عن طريق استخدام دالة الاسترجاع الخاصة function varargout = multiassign (data)
for k=1:nargout
varargout{k} = data(:,k);
endfor
endfunction
بالأمكان تنفيذ أوامر اوكتف في برنامج مكتوب بلغة سي++ بصورة مباشرة. في شفرة مصدرية صغيرة لأستدعاء rand)[9000,1]) على سبيل المثال: #include <octave/oct.h>
...
ColumnVector NumRands(2);
NumRands(0) = 9000;
NumRands(1) = 1;
octave_value_list f_arg, f_ret;
f_arg(0) = octave_value(NumRands);
f_ret = feval("rand",f_arg,1);
Matrix unis(f_ret(0).matrix_value());
التوافق مع ماتلابتم بناء اوكتف مع مراعاة توافقه مع ماتلاب ويشارك مزايا متعددة معه، مثل:
مراجع
وصلات خارجية
|
Portal di Ensiklopedia Dunia