مقارنة لغات البرمجة (المصفوفة)

تقارن هذه المقارنة بين لغات البرمجة (المصفوفات) ميزات هياكل بيانات المصفوفات أو معالجة المصفوفات للغات برمجة الحاسوب المختلفة .

بناء الجملة

أبعاد المصفوفة

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

بعض اللغات تبدأ الفهرسة من الصفر، وبعضها من الواحد، وبعضها لا يفرض مثل هذا القيد، أو حتى يسمح بالفهرسة بواسطة أي نوع مُعدّد، وليس فقط الأعداد الصحيحة.

اللغاتمقاسأولاًآخر
آداالاسم 'الطولالاسم الأولالاسم الأخير
ALGOL 68اسم UPB - اسم LWB +1 2 اسم UPB - 2 اسم LWB +1 إلخ.اسم قاعدة العجلات الطويلة 2 اسم قاعدة العجلات الطويلة إلخ.اسم UPB

2 اسم UPB وما إلى ذلك.

APLاسم (⍴ اسم )[ فهرس ]⎕IO(⍴ الاسم )-~⎕IO (⍴ الاسم )[ الفهرس ]-~⎕IO
أوكطول1تشكيلة
سي شارب ، فيجوال بيسك (.NET) ، ويندوز باور شيل ، إف شاربالاسم.الطولname.GetLowerBound ( dimension )name.GetUpperBound ( dimension )
CFMLarrayLen( name ) name .len()1name.len ()
الفصلأقصى (شكل ( الاسم ))0أقصى (شكل ( الاسم )) - 1
لغة الشفرة الشائعة(طول الاسم )0(1- (طول الاسم ))
دطول الاسم0name .length-1 $-1
فورترانحجم ( الاسم )lbound( name )ubound( name )
يذهبطول ( الاسم )0طول ( الاسم ) - 1
هاسكلrangeSize (bounds name )fst ( اسم النطاق )snd ( اسم الحدود )
لغة ISLISP(طول الاسم )0(1- (طول الاسم ))
رمز* اسم1* اسم
كوبرا د هاكس جافا جافا سكريبت سكالاطول الاسم0طول الاسم - 1
ج# اسم0<:@# الاسم
جافا سكريبت ( ES2022 )طول الاسم0 اسم .at(0) [ 1 ]name.length - 1 name.at (-1) [ 1 ]
جولياطول ( الاسم ) حجم ( الاسم )ابدأ أولاً.(المحاور( الاسم ))end last.(axes( name ))
لغة عاميةعدد ( الاسم )1getLast( name )
LiveCodeطول ( الاسم )1 أولاً-1 الأخير
لغة لوا# اسم1 حسب الاصطلاح؛ أي عدد صحيح [ 2 ]# اسم
ماثيماتيكاالطول[ الاسم ]1 الاسم الأول-1 الاسم الأخير[ الاسم ]
MATLAB ، GNU Octaveطول ( الاسم )1نهاية
نيمالاسم.الطولname .low [ 3 ]اسم .عالي
أوبرونطول ( الاسم )0LEN( name ) - 1
أوبجكت باسكالرقم ( الاسم )0 منخفض ( الاسم )الطول ( الاسم ) - 1 الارتفاع ( الاسم )
لغة البرمجة Objective-C ( NSArray *فقط)[ عدد الأسماء ]0[ عدد الأسماء ] - 1
أوكاميلاسم طول المصفوفة0Array.length name - 1
بيرلقيمة عددية (@ الاسم )$[$# الاسم
PHPعدد ( الاسم )0عدد ( الاسم ) - 1
PL/Idim( name [,dim])lbound( name [,dim])hbound( name [,dim])
بايثونطول ( الاسم )0-1 طول ( الاسم ) - 1
Rطول ( الاسم )1طول ( الاسم )
راكو@ الاسم .العناصر0@ الاسم .نهاية
ريبول ، أحمرالطول؟ الاسمالاسم الأول /1 الاسم الأولاسم العائلة
روبيالاسم .الحجم0 الاسم الأول-1 اسم.الحجم -1 اسم.الأخير
الصدأname.len ()0name.len () - 1
دارجةطول ( الاسم )0-1 طول ( الاسم ) -1
مخطط( متجه ذو طول متجه )0(- (متجه طوله متجه ) 1)
أحاديث قصيرةحجم الاسمالاسم الأولالاسم الحجم الاسم الأخير
سويفتالاسم. العدد0الاسم. العدد - 1
يونيكون* اسم1* اسم
فيجوال بيسكالحد الأعلى ( الاسم ) - الحد الأدنى ( الاسم ) + 1LBound( name )UBound( name )
لغة وولفرامالطول[ الاسم ]1 الاسم الأول-1 الاسم الأخير[ الاسم ]
زوجوUBound( name )0UBound( name )
XPath / XQueryعدد($ الاسم )1count($ name ) last() array:size( name ) [ 4 ]

الفهرسة

تحتوي القائمة التالية على أمثلة لصيغة كيفية الوصول إلى عنصر واحد من مصفوفة.

شكلاللغات
الاسم [ الفهرس ] أو الاسم [ الفهرس 1 ، الفهرس 2 ] إلخ.ALGOL 58 ، ALGOL 60 ، ALGOL 68 ، AWK ، Julia ، Modula ، Pascal ، Object Pascal ، C# ، S-Lang [ 5 ] Icon ، Unicon
الاسم [ الفهرس ] أو الاسم [ الفهرس 1 ؛ الفهرس 2 ] إلخ. أو الفهرس الاسم أو الفهرس 1 الفهرس 2 الاسم إلخ.APL
الاسم [ الفهرس ]ActionScript ، C ، CFML ، Ch ، Cobra ، C ++ ، D ، Go ، Haxe ، Java ، JavaScript ، Lingo ، Lua ، Nim ، Objective - C NSArray *، Perl ، PHP ، Python ، R ، Ruby ، Rust ، Swift
$ name [ index ]بيرل ، [ 5 ] ويندوز باور شيل ، [ 5 ] إكس باث / إكس كويري [ 4 ]
@ الاسم [ الفهرس ]راكو
الاسم ( الفهرس ) أو الاسم ( الفهرس 1 ، الفهرس 2 ) إلخ.أدا ، ألغول دبليو ، بيسك ، كوبول ، فورتران ، آر بي جي ، جنو أوكتاف ، ماتلاب ، بي إل/آي ، سكالا ، فيجوال بيسك ، فيجوال بيسك (.NET) ، زوجو
$ name ( index )XPath / XQuery [ 4 ]
الاسم .( الفهرس )أوكاميل
الاسم .[ الفهرس ]F# ، OCaml
الاسم/الفهرسريبول ، أحمر
الاسم  ! الفهرسهاسكل
$ name  ? indexXPath / XQuery [ 4 ]
( مؤشر اسم المرجع المتجهي )مخطط
(فهرس أسماء المناطق )لغة الشفرة الشائعة
( فهرس أسماء العناصر )لغة ISLISP
الاسم [[ الفهرس ]]ماثيماتيكا ، [ 5 ] لغة وولفرام
الاسم في: الفهرسأحاديث قصيرة
[ اسم الكائن في الفهرس: الفهرس ]لغة البرمجة Objective-C ( NSArray *فقط)
فهرس { اسمج
name.item(index) or name @ index [ 6 ]إيفل

التقطيع

تحتوي القائمة التالية على أمثلة لصيغة كيفية الوصول إلى نطاق من عناصر المصفوفة.

في الجدول التالي:

  • أولًا - فهرس العنصر الأول في الشريحة
  • الأخير – فهرس العنصر الأخير في الشريحة
  • النهاية - واحد أكثر من فهرس العنصر الأخير في الشريحة
  • len – طول الشريحة (= النهاية - الأولى)
  • الخطوة – عدد عناصر المصفوفة في كل منها (الافتراضي 1)
شكلاللغات
الاسم [ الاسم الأول : الاسم الأخير ]ALGOL 68 , [ 7 ] جوليا , أيقونة , Unicon
الاسم [ الاسم الأول + ( طول الاسم ) - (عدد المدخلات والمخرجات)]APL
الاسم [ الأول : النهاية : الخطوة ]بايثون [ 8 ] [ 9 ]
الاسم [ الأول : النهاية ]يذهب
الاسم [ الاسم الأول .. الاسم الأخير ]باسكال ، أوبجكت باسكال ، دلفي ، نيم
$ name [ first..last ]ويندوز باور شيل
@ الاسم [ الاسم الأول .. الاسم الأخير ]بيرل [ 10 ]
الاسم [ الاسم الأول .. الاسم الأخير ] الاسم [ الاسم الأول ... الاسم الأخير ] الاسم [ الاسم الأول ، الطول ]روبي [ 9 ]
نسخ/تخطي جزء الاسم الطول الأولريبول ، أحمر
الاسم ( الأول .. الأخير )آدا [ 7 ]
الاسم ( الاسم الأول : الاسم الأخير )فورتران ، [ 7 ] [ 8 ] جنو أوكتاف ، ماتلاب [ 7 ] [ 10 ]
الاسم [[ الاسم الأول ;; الاسم الأخير ;; الخطوة ]]ماثيماتيكا ، [ 7 ] [ 8 ] [ 9 ] لغة وولفرام
الاسم [[ الاسم الأول : الاسم الأخير ]]S-Lang [ 7 ] [ 8 ] [ 10 ]
الاسم .[ الاسم الأول .. الخطوة .. الاسم الأخير ]فا#
name.slice ( first , end )هاكس ، جافا سكريبت ، سكالا
name.slice ( first , len )CFML
array_slice( name , first , len )PHP [ 9 ]
(الاسم الفرعي الأول النهاية )لغة الشفرة الشائعة
(الاسم الفرعي الأول النهاية )لغة ISLISP
Array.sub name first lenأوكاميل
[ name subarrayWithRange:NSMakeRange( first , len )]لغة البرمجة Objective-C ( NSArray *فقط)
( الأول ([+i.@(-~) النهاية ) { الاسمج
الاسم [ الأول ..< النهاية ] الاسم [ الأول ... الأخير ]سويفت
اسم النسخة من: الاسم الأول إلى: اسم العائلة نسخة من: الاسم الأول العدد: الطولأحاديث قصيرة
الاسم [ الأول .. النهاية ]D ، C# [ 11 ] [ 12 ]
الاسم [ الأول .. النهاية ] الاسم [ الأول ..= الأخير ]الصدأ
الاسم [ الأول : النهاية ]الكوبرا
table.move(name,first,last,1,{})Lua [ 13 ]

قائمة المراجع المتبادلة لنظام المصفوفات

لغةفهرس القاعدة الافتراضينوع الفهرس القابل للتحديد [ 14 ]مؤشر أساسي قابل للتحديدشيك ملزممتعدد الأبعادحجم ديناميكيالعمليات الموجهة
آدانوع الفهرس [ 15 ]نعمنعمتم التحققنعمinit [ 16 ]بعضها، والبعض الآخر قابل للتحديد [ 17 ]
ALGOL 681لا [ 18 ]نعميختلفنعمنعمقابل للتحديد من قبل المستخدم
APL1؟0 أو 1 [ 19 ]تم التحققنعمنعمنعم
أوك1نعم، ضمنيًالاغير خاضع للرقابةنعم، كسلسلة محددةنعم، مُعاد صياغتهلا
أساسي0؟لاتم التحققلاinit [ 16 ]؟
ج0لالا [ 20 ]غير خاضع للرقابةجزئياinit, [ 16 ] [ 21 ] heap [ 22 ]لا
الفصل0لالاتم التحققنعم، وأيضًا مصفوفة من المصفوفات [ 23 ]init, [ 16 ] [ 21 ] heap [ 22 ]نعم
سي++ [ 17 ]0لالا [ 20 ]غير خاضع للرقابةنعم، وأيضًا مصفوفة من المصفوفات [ 23 ]كومة [ 22 ]لا
سي شارب0لاجزئي [ 24 ]تم التحققنعمكومة [ 22 ] [ 25 ]نعم ( اختيار LINQ )
CFML1لالاتم التحققنعم، وأيضًا مصفوفة من المصفوفات [ 23 ]نعملا
كوبول1لا [ 26 ]لاتم التحققمصفوفة من المصفوفات [ 23 ] [ 27 ]لا [ 28 ]بعض الخصائص الجوهرية
الكوبرا0لالاتم التحققمصفوفة من المصفوفات [ 23 ]كومة؟
لغة الشفرة الشائعة0؟لاتم التحقق [ 29 ]نعمنعمنعم (خريطة أو خريطة-إلى)
د0نعم [ 30 ]لايختلف [ 31 ]نعمنعم؟
فا#0لاجزئي [ 24 ]تم التحققنعمكومة [ 22 ] [ 25 ]نعم (خريطة)
فري بيسيك0لانعمتم التحققنعمinit, [ 16 ] init [ 32 ]؟
فورتران1نعمنعميختلف [ 33 ]نعمنعمنعم
فوكس برو1؟لاتم التحققنعمنعم؟
يذهب0لالاتم التحققمصفوفة من المصفوفات [ 23 ]لا [ 34 ]لا
اختراق0نعمنعمتم التحققنعمنعمنعم
هاسكل0نعم [ 35 ]نعمتم التحققنعم، وأيضًا مصفوفة من المصفوفات [ 23 ]init [ 16 ]؟
IDL0؟لاتم التحققنعمنعمنعم
لغة ISLISP0؟لاتم التحققنعمinit [ 16 ]نعم (خريطة أو خريطة-إلى)
ج0؟لاتم التحققنعمنعمنعم
جافا [ 17 ]0لالاتم التحققمصفوفة من المصفوفات [ 23 ]init [ 16 ]؟
جافا سكريبت0لالاتم التحقق [ 36 ]مصفوفة من المصفوفات [ 23 ]نعمنعم
جوليا1نعمنعمتم التحقق (يمكن تخطيه محليًا؛ أو عالميًا بواسطة المستخدم)نعم، وكذلك مصفوفة من المصفوفاتنعمنعم
لغة عامية1؟؟غير خاضع للرقابةنعمنعمنعم
لغة لوا1؟جزئي [ 37 ]تم التحققمصفوفة من المصفوفات [ 23 ]نعم؟
ماثيماتيكا1لالاتم التحققنعمنعمنعم
MATLAB1؟لاتم التحققنعم [ 38 ]نعمنعم
نيم0نعم [ 3 ]نعماختياري [ 39 ]مصفوفة من المصفوفات [ 23 ]نعمنعم [ 40 ]
أوبرون0؟لاتم التحققنعملا؟
أوبرون-20؟لاتم التحققنعمنعم؟
أوبجيكتيف-سي [ 17 ]0لالاتم التحققمصفوفة من المصفوفات [ 23 ]نعملا
أوكاميل0لالامحدد افتراضيامصفوفة من المصفوفات [ 23 ]init [ 16 ]؟
باسكال ، أوبجكت باسكالنوع الفهرس [ 15 ]نعمنعميختلف [ 41 ]نعميختلف [ 42 ]بعض
بيرل0لانعم ( $[)تم التحقق [ 36 ]مصفوفة من المصفوفات [ 23 ]نعملا [ 43 ]
راكو0لالاتم التحقق [ 36 ]نعمنعمنعم
PHP0نعم [ 44 ]نعم [ 44 ]تم التحقق [ 44 ]نعمنعمنعم
PL/I1نعمنعمخيارينعملانعم [ 45 ]
بايثون0لالاتم التحققمصفوفة من المصفوفات [ 23 ]نعملا [ 46 ]
لعبة تقمص الأدوار1لالا؟لالا؟
R1؟لاغير خاضع للرقابةنعم، وكذلك مصفوفة من المصفوفاتنعمنعم
روبي0لالاتم التحقق [ 36 ]مصفوفة من المصفوفات [ 23 ]نعم؟
الصدأ0لالاتم التحققمصفوفة من المصفوفات [ 23 ]لا؟
ساس1لالاتم التحققمصفوفة من المصفوفات [ 23 ]init [ 31 ]؟
دارجة0؟لاتم التحققنعمنعمنعم
سكالا0لالاتم التحققمصفوفة من المصفوفات [ 23 ]init [ 16 ]نعم (خريطة)
مخطط0؟لاتم التحققمصفوفة من المصفوفات [ 23 ]init [ 16 ]نعم (خريطة)
المحادثات القصيرة [ 17 ]1؟لاتم التحققمصفوفة من المصفوفات [ 23 ]نعم [ 47 ]؟
سويفت0لالاتم التحققمصفوفة من المصفوفات [ 23 ]نعم؟
فيجوال بيسك (الكلاسيكي)0 أو 1 أو نوع الفهرس [ 48 ]لانعمتم التحققنعمنعم؟
فيجوال بيسك (.NET)0 أو نوع الفهرس [ 48 ]لاجزئي [ 24 ]تم التحققنعمنعمنعم ( اختيار LINQ )
لغة وولفرام1لالاتم التحققنعمنعمنعم
ويندوز باور شيل0لالاتم التحققنعمكومة؟
زوجو0لالاتم التحققنعمنعملا
XPath / XQuery1لالاتم التحققمصفوفة من المصفوفات [ 4 ] [ 23 ]نعمنعم

عمليات المصفوفات المتجهة

تدعم بعض لغات البرمجة المترجمة، مثل Ada و Fortran ، وبعض لغات البرمجة النصية، مثل IDL و MATLAB و S-Lang ، العمليات المتجهة على المصفوفات بشكل أصلي. على سبيل المثال، لإجراء عملية جمع عنصرًا بعنصر لمصفوفتين a و b لإنتاج مصفوفة ثالثة c ، يكفي كتابة

ج = أ + ب

إضافةً إلى دعم العمليات الحسابية والعلائقية المتجهة، تدعم هذه اللغات أيضًا الدوال الرياضية الشائعة مثل دالة الجيب. على سبيل المثال، إذا كان x عبارة عن مصفوفة، فإن

y = sin (x)

سينتج عن ذلك مصفوفة y عناصرها هي جيب القيم المقابلة للعناصر في المصفوفة x .

كما يدعم النظام عمليات الفهرسة المتجهة. على سبيل المثال،

زوجي = س ( 2 :: 2 فردي = س ( :: 2 

هذه هي الطريقة التي يمكن بها استخدام لغة فورتران لإنشاء مصفوفات من العناصر الزوجية والفردية لمصفوفة أخرى. ومن الاستخدامات الشائعة الأخرى للفهارس المتجهة عملية التصفية. لنفترض عملية قص لموجة جيبية حيث يتم ضبط السعات الأكبر من 0.5 على 0.5. باستخدام لغة S-Lang ، يمكن القيام بذلك عن طريق

y = sin(x); y[where(abs(y)>0.5)] = 0.5;

عمليات المصفوفات الرياضية

مكتبة /لغةيخلقالمحددترانسعنصرعمودصفالقيم الذاتية
APLmdimsx11x12...-.×mmm[i;j]أوijmm[;j]أو أو أوj[2]mj1mj⌷⍉mm[i;]أوim1m
فورترانm = RESHAPE([x11, x12, ...], SHAPE(m))TRANSPOSE(m)m(i,j)m(:,j)m(i,:)
الفصل [ 49 ]m = {...}determinant(m)transpose(m)m[i-1][j-1]shape(m,0)shape(m,1)eigen(output, m, NULL)
جوليا ومكتبتها القياسية LinearAlgebram=[12;34]أو
م = [ 1 2 3 4 ]
det(m)transpose(m)أو

m'للمصفوفات الحقيقية

m[i,j]m[:,j]m[i,:]eigen(m).values
لغة ماثيماتيكا / وولفرام{{x11,x12,...},...}Det[m]Transpose[m]m[[i,j]]m[[;;,j]]m[[i]]Eigenvalues[m]
MATLAB / GNU Octavem = [...]det(m)m.'m(i,j)m(:,j)m(i,:)eig(m)
NumPym = mat(...)linalg.det(m)m.Tm[i-1,j-1]m[:,j-1]m[i-1,:]linalg.eigvals(m)
Rm <- matrix(...)أوm <- array(...)det(m)t(m)m[i, j]m[, j]m[i, ]eigen(m)
دارجةm = reshape([x11, x12, ...], [new-dims])m = transpose(m)m[i,j]m[*,j]m[j,*]
SymPym = Matrix(...)m.det()m.Tm[i-1,j-1]m.col(j-1)m.row(i-1)m.eigenvals()

مراجع

  1. 1 2 "مواصفات لغة ECMAScript® 2025" .
  2. "البرمجة بلغة Lua : 11.1" . 
  3. 1 2 "دليل Nim (الجزء الأول)" .
  4. يحتوي XPath / XQuery على نوعين من المصفوفات. التسلسلات (1،2،3) التي لا يمكن تداخلها، وفي إصدار XPath/XQuery 3.1، المصفوفات array { 1،2،3 } أو [1،2،3] التي يمكن تداخلها.
  5. 1 2 3 4 5 6 7 قد يكون الفهرس رقمًا سالبًا، مما يشير إلى عدد الأماكن المقابلة قبل نهاية المصفوفة.
  6. "Eiffeldoc : ARRAY" . 
  7. 1 2 3 4 5 6 يتم أيضًا دعم وتعريف الشرائح للمصفوفات متعددة الأبعاد بشكل مشابه.
  8. 1 2 3 4 يتم دعمشرائح من هذا النوعfirst:last:step
  9. 1 2 3 4 last أو end قد يكون رقمًا سالبًا، مما يشير إلى التوقف عند عدد الأماكن المقابل قبل نهاية المصفوفة.
  10. 1 2 3 بشكل عام، بالنسبة للمصفوفات أحادية البعد، تسمح لغة بيرل ولغة S-Lang بشرائح من الشكل، حيثيمكن أن يكون نطاقًا كما هو مذكور في الحاشية 2 أو قائمة صريحة من المؤشرات، على سبيل المثال، ''، أو مزيج من الاثنين، على سبيل المثال،.array[indices]indices[0,9,3,4]A[[[0:3]],7,9,[11:2:-3]]]
  11. ميزة مقترحة في لغة C# 8.0 (اعتبارًا من 29 أغسطس 2019)
  12. "نطاقات - مقترحات لغة C# 8.0" . وثائق مايكروسوفت . مايكروسوفت . تم الاطلاع عليه بتاريخ 29 أغسطس 2019 .
  13. "دليل مرجع Lua 5.3" . www.lua.org . تم الاطلاع عليه بتاريخ 2022-04-02 .
  14. يمكن أن يكون نوع الفهرس عددًا صحيحًا أو عددًا مُعدَّدًا أو حرفًا، حسب اختيارك . للاطلاع على المصفوفات ذات أنواع الفهرس غير المضغوطة، انظر: المصفوفة الترابطية
  15. 1 2 يكون فهرس الأساس الافتراضي هو أدنى قيمة لنوع الفهرس المستخدم
  16. 1 2 3 4 5 6 7 8 9 10 11 لا يمكن اختيار الحجم إلا عند التهيئة وبعد ذلك يتم تثبيته.
  17. ١ ٢ ٣ ٤ ٥ هذه القائمة تقارن ميزات اللغات فقط. في كل لغة (حتى لغة التجميع )، من الممكن تحسين معالجة المصفوفات عبر مكتبات إضافية. تتميز هذه اللغة بتحسين معالجة المصفوفات كجزء من مكتبتها القياسية.
  18. يجب فهرسة مصفوفات ALGOL 68 (وتقطيعها) باستخدام النوع INT . ومع ذلك، يمكن استخدام دالة التجزئة لتحويل الأنواع الأخرى إلى INT . على سبيل المثال: name [ hash("string") ]
  19. يمكن أن تكون قيمة أساس الفهرسة 0 أو 1 وفقًا لمتغير النظام ⎕IO . قد تنطبق هذه القيمة على "مساحة العمل" بأكملها، أو يمكن تحديدها لوظيفة معرفة من قبل المستخدم أو لوظيفة أساسية واحدة باستخدام عامل التشغيل Variant ( ).
  20. 1 2 نظرًا لأن لغة C لا تتحقق من حدود الفهارس، يمكن تعريف مؤشر إلى داخل أي مصفوفة يعمل بشكل رمزي كمصفوفة زائفة تستوعب الفهارس السالبة أو أي أصل فهرس صحيح.
  21. يسمح معيار C99 باستخدام المصفوفات ذات الأحجام المتغيرة؛ ومع ذلك، لا يوجد تقريبًا أي مترجم متاح لدعم هذه الميزة الجديدة.
  22. ١ ٢ ٣ ٤ ٥ لا يمكن تحديد حجم الذاكرة إلا عند التهيئة، وذلك عندما يتم تخصيص الذاكرة في الكومة (heap)، على عكس تخصيصها في المكدس (stack). ولا داعي لذكر هذه الملاحظة في اللغات التي تُخصص المصفوفات دائمًا في الكومة.
  23. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 يسمح بمصفوفات من المصفوفات التي يمكن استخدامها لمحاكاة معظم جوانب المصفوفات متعددة الأبعاد - ولكن ليس جميعها .
  24. يمكن تغيير الأساس عند التهيئة باستخدام System.Array.CreateInstance ( الذي يُرجع System.Array )، ولكن ليس عند استخدام صيغة اللغة. المصفوفات ذات مؤشرات الأساس غير الصفرية ليست من نفس نوع المصفوفات ذات مؤشرات الأساس الصفرية، ولا يمكن التعامل معها باستخدام صيغة اللغة ( يجب استخدام دالتي GetValue و SetValue بدلاً من ذلك) أو تحويلها إلى نوع محدد ( T[] في C# ، أو T() في VB.NET)، مما يمنع حدوث أعطال في التعليمات البرمجية التي تفترض مؤشرات أساس صفرية.
  25. 1 2 يسمح بإنشاء مصفوفات ذات حجم ثابت في التعليمات البرمجية "غير الآمنة"، مما يسمح بتحسين التوافق مع لغات البرمجة الأخرى
  26. يمكن فهرسة مصفوفات COBOL باستخدام أنواع "INDEX"، وهي تختلف عن أنواع الأعداد الصحيحة.
  27. على الرغم من أن لغة كوبول لا تحتوي إلا على مصفوفات من المصفوفات، إلا أنه يمكن الوصول إلى عناصر المصفوفة باستخدام صيغة تشبه المصفوفات متعددة الأبعاد، حيث تقوم اللغة تلقائيًا بمطابقة الفهارس مع المصفوفات التي تحتوي على العنصر المشار إليه.
  28. توفر لغة كوبول طريقة لتحديد أن الحجم القابل للاستخدام للمصفوفة متغير، ولكن لا يمكن أن يتجاوز هذا الحجم الحد الأقصى المعلن عنه، وهو أيضًا الحجم المخصص.
  29. تسمح معظم تطبيقات لغة Common Lisp بتعطيل التحقق بشكل انتقائي
  30. المصفوفات الترابطية - لغة البرمجة D
  31. يمكن ضبط السلوك عبر مفاتيح المُصرّف. كما هو الحال في DMD 1.0، يتم التحقق من الحدود في وضع التصحيح وإلغاء التحقق منها في وضع الإصدار لتحسين الكفاءة .
  32. يدعم FreeBASIC كلاً من المصفوفات ذات الأطوال المتغيرة والمصفوفات ذات الأطوال الثابتة. تُنشأ المصفوفات المُعلنة بدون نطاق فهرس كمصفوفات ذات أطوال متغيرة، بينما تُنشأ المصفوفات ذات النطاق المُعلن كمصفوفات ذات أطوال ثابتة.
  33. توفر جميع تطبيقات فورتران تقريبًا خيارات فحص الحدود عبر مفاتيح المُصرّف. ومع ذلك، يكون فحص الحدود مُعطّلاً عادةً بشكل افتراضي لتحسين الأداء.
  34. على الرغم من أن نوع Array في لغة Golang ليس له حجم ديناميكي، إلا أن نوع البيانات Slice له حجم ديناميكي وهو أكثر شيوعًا في الاستخدام من المصفوفات.
  35. تسمح مصفوفات هاسكل ( Data.Array ) باستخدام أي نوع من أنواع Ix كنوع فهرس. لذا، يمكن تعريف نوع مخصص واستخدامه كنوع فهرس طالما أنه من أنواع Ix. كما أن مجموعات أنواع Ix هي أيضًا من أنواع Ix؛ ويُستخدم هذا عادةً لتنفيذ المصفوفات متعددة الأبعاد.
  36. في هذه اللغات ، يُمكن الوصول إلى فهرس مصفوفة أو الكتابة إليه إذا كان أكبر من أو يساوي طول المصفوفة، وستنمو المصفوفة تلقائيًا إلى ذلك الحجم. قد يبدو الأمر في البداية وكأن حدود المصفوفة غير مُدققة؛ إلا أن الحدود تُدقق لتحديد ما إذا كان ينبغي توسيع المصفوفة، ولا يوجد وصول غير آمن إلى الذاكرة كما هو الحال في لغة C.
  37. بتحديد فهرس أساسي، يمكن إنشاء مصفوفات بفهرس أساسي عشوائي. مع ذلك، افتراضيًا، لا يأخذ عامل حساب الطول في لغة Lua الفهرس الأساسي للمصفوفة في الحسبان عند حساب الطول. يمكن تغيير هذا السلوك عبر الدوال الوصفية.
  38. على الأقل بعدين (الأعداد العددية هي مصفوفات 1×1، والمتجهات هي مصفوفات 1×n أو n×1).
  39. "دليل مستخدم مُجمِّع لغة نيم" .
  40. "التحويل إلى متجه - عملية المتجهات المنطقية على نمط لغة R في لغة Nim" .
  41. تسمح العديد من التطبيقات ( Turbo Pascal و Object Pascal ( Delphi ) و Free Pascal ) بتغيير السلوك عن طريق مفاتيح المُصرّف والتوجيهات المضمنة.
  42. يختلف باختلاف التنفيذ. تسمح التطبيقات الأحدث ( فري باسكال ، أوبجكت باسكال ( دلفي )) بالمصفوفات الديناميكية القائمة على الكومة.
  43. لا تدعم أنواع بيانات المصفوفاتالقياسية في لغة بيرل العمليات المتجهة كما هو موضح هنا. ومع ذلك، يضيف ملحق لغة بيانات بيرل كائنات المصفوفات بهذه الإمكانية.
  44. ١ ٢ ٣ تُعتبر "المصفوفات" في لغة PHP مصفوفات ترابطية. يمكنك استخدام الأعداد الصحيحة والسلاسل النصية كمفاتيح (فهارس)؛ كما يمكن استخدام الأعداد العشرية كمفاتيح، ولكن يتم اقتطاعها إلى أعداد صحيحة. لا يوجد في الواقع ما يُسمى "فهرس أساسي" أو "حدود".
  45. يمكن اختيار الحجم عند تعريف المصفوفة، أو عند تخصيصها، وبعد ذلك يتم تثبيته.
  46. لا يدعم نوع المصفوفة القياسي في بايثون، ، العمليات المتجهة كما هو موضح هنا. ومع ذلك،يضيفامتداد numpy كائنات المصفوفة بهذه الإمكانية.list
  47. فئة Array ذات حجم ثابت، بينما فئة OrderedCollection ديناميكية
  48. كانت لغات البرمجة Microsoft QBASIC و QuickBASIC وVisual Basic وVBA تدعم تحديد الخيار Option Base 1 ، مما كان يجعل جميع المصفوفات في الوحدة تبدأ افتراضيًا من 1 بدلًا من 0.وقد تم إيقاف دعم الخيار Option Base في Visual Basic (.NET) . في العديد من تطبيقات Microsoft BASIC، يمكن تحديد أبعاد المصفوفات باستخدام DIMension لتحديد قيم الفهرس الدنيا والقصوى (على سبيل المثال، DIM MyArray(2 to 50) AS STRING سيبدأ الفهرس الأول من 2 بدلًا من القيمة الافتراضية).
  49. الميزات العددية للفصل