سلسلة فارغة
في نظرية اللغة الرسمية ، السلسلة الفارغة ، والمعروفة أيضًا بالكلمة الفارغة أو السلسلة الصفرية ، هي السلسلة الفريدة ذات الطول صفر.
النظرية الرسمية
بشكل رسمي، السلسلة هي تسلسل محدود ومرتب من الأحرف ، مثل الحروف والأرقام والمسافات. السلسلة الفارغة هي حالة خاصة يكون فيها طول التسلسل صفرًا، أي لا تحتوي على أي رموز. توجد سلسلة فارغة واحدة فقط، لأن الاختلاف بين سلسلتين يكمن في اختلاف طولهما أو تسلسل رموزهما. في المعالجات الرسمية، [ 1 ] يُرمز للسلسلة الفارغة بالرمز ε، أو أحيانًا Λ أو λ .
لا ينبغي الخلط بين السلسلة الفارغة واللغة الفارغة ∅ ، وهي لغة رسمية (أي مجموعة من السلاسل) لا تحتوي على أي سلاسل، ولا حتى السلسلة الفارغة.
للسلسلة الفارغة عدة خصائص:
- |ε| = 0. طول السلسلة يساوي صفرًا.
- ε ⋅ s = s ⋅ ε = s. السلسلة الفارغة هي العنصر المحايد لعملية الربط . تشكل مجموعة جميع السلاسل شبه زمرة حرة بالنسبة إلى ⋅ و ε.
- ε R = ε. عكس السلسلة الفارغة ينتج عنه السلسلة الفارغة، لذا فإن السلسلة الفارغة هي سلسلة متناظرة .
- العبارات التي تتعلق بجميع الأحرف في سلسلة نصية تكون صحيحة بشكل فارغ .
- تسبق السلسلة الفارغة أي سلسلة أخرى وفقًا للترتيب المعجمي ، لأنها أقصر السلاسل على الإطلاق. [ 2 ]
في القواعد النحوية الخالية من السياق ، تُعرف قاعدة الإنتاج التي تسمح للرمز بإنتاج السلسلة الفارغة باسم إنتاج ε، ويقال أن الرمز "قابل للإلغاء".
يُستخدم في لغات البرمجة
في معظم لغات البرمجة ، يشير مصطلح "سلسلة نصية" غالبًا إلى مثيلات نوع بيانات معين ، وبالتالي فهي مفهوم مختلف عن المفهوم النظري الرسمي. تُخزَّن هذه السلاسل النصية عادةً في عناوين (مواقع) ذاكرة مختلفة، وبالتالي تتمتع بهوية مميزة. لذا، قد تُخزَّن ممثلات السلسلة النصية الرسمية نفسها (مثل السلسلة الفارغة) في موقعين أو أكثر في الذاكرة، ويمكن اعتبارها أسماءً للسلسلة الفارغة الرسمية.
بهذه الطريقة، قد يكون هناك عدة نسخ من السلسلة الفارغة في الذاكرة، على عكس التعريف النظري الرسمي الذي ينص على وجود سلسلة فارغة واحدة فقط. ومع ذلك، فإن "دالة مقارنة السلاسل" تشير إلى أن جميع هذه النسخ متساوية.
حتى السلسلة النصية التي طولها صفر قد تتطلب مساحة تخزين، وذلك بحسب التنسيق المستخدم. في معظم لغات البرمجة، تُفرّق السلسلة النصية الفارغة عن المرجع الفارغ (أو المؤشر الفارغ) لأن المرجع الفارغ لا يشير إلى أي سلسلة نصية على الإطلاق، ولا حتى إلى السلسلة النصية الفارغة. السلسلة النصية الفارغة هي سلسلة نصية صحيحة، وتعمل عليها معظم عمليات السلاسل النصية. تتعامل بعض اللغات مع بعض أو كل ما يلي بطرق مماثلة: السلاسل النصية الفارغة، والمراجع الفارغة، والعدد الصحيح 0، والعدد العشري 0، والقيمة المنطقية false ، وحرف ASCII NUL ، أو غيرها من القيم المماثلة.
عادةً ما يتم تمثيل السلسلة الفارغة بطريقة مشابهة للسلاسل الأخرى. في التطبيقات التي تستخدم حرف إنهاء السلسلة ( السلاسل المنتهية بـ null أو أسطر النص العادي)، يُشار إلى السلسلة الفارغة باستخدام حرف الإنهاء مباشرةً.
توجد وظائف أو طرق أو وحدات ماكرو أو مصطلحات مختلفة للتحقق مما إذا كانت السلسلة فارغة في لغات مختلفة.
| تمثيل λ | لغات البرمجة |
|---|---|
"" | C ، C# ، C++ ، Go ، Haskell ، Java ، JavaScript ، Julia ، Lua ، M ، Objective-C (كسلسلة نصية C)، OCaml ، Perl ، PHP ، PowerShell ، Python ، Ruby ، Scala ، Standard ML ، Swift ، Tcl ، Visual Basic .NET |
'' | APL ، دلفي ، جافا سكريبت ، لوا ، ماتلاب ، باسكال ، بيرل ، PHP ، باور شيل ، بايثون ، R ، روبي ، سمول توك ، SQL |
character(0) | R [ 3 ] |
{'\0'} | C ، C++ ، Objective-C (كسلسلة نصية بلغة C) |
new String()(من java.lang.Stringأو System.String) | جافا ، سي شارب |
string()(من std::string) | لغة سي++ |
""s | لغة C++ (منذ معيار 2014 ) |
@"" | لغة أوبجكتيف سي (ككائن ثابت NSString) |
[NSString string] | Objective-C (ككائن جديد NSString) |
q(), qq() | بيرل |
str()[ 4 ]""""""r""u"" | بايثون |
%{}%() | روبي |
String::new()(من std::string::String) [ 5 ] | الصدأ |
String.Empty(من System.String) | لغة سي شارب ، لغة فيجوال بيسك دوت نت |
String.make 0 '-' | أوكاميل |
{} | تي سي إل |
[[]] | لغة لوا |
“”
| باور شيل |
.byte 0
| A64 |
تمثيلات السلسلة الفارغة
السلسلة الفارغة هي تمثيل صحيح نحويًا للصفر في الترميز الموضعي (بأي أساس)، ولا تحتوي على أصفار بادئة . ولأن السلسلة الفارغة لا تملك تمثيلًا بصريًا قياسيًا خارج نظرية اللغات الرسمية، يُمثَّل العدد صفر تقليديًا برقم عشري واحد هو 0 .
منطقة الذاكرة المملوءة بالأصفار، والتي يتم تفسيرها على أنها سلسلة منتهية بـ null ، هي سلسلة فارغة.
تظهر الأسطر الفارغة من النص كسلسلة نصية فارغة. قد يحدث هذا نتيجة وجود سطرين متتاليين في نهاية كل سطر ، كما هو شائع في ملفات النصوص . يُستخدم هذا أحيانًا في معالجة النصوص لفصل الفقرات ، كما هو الحال في ميدياويكي .
انظر أيضاً
مراجع
- ↑ كوركوران، جون؛ فرانك، ويليام؛ مالوني، مايكل (1974). "نظرية الأوتار". مجلة المنطق الرمزي . 39 (4): 625-637 . doi : 10.2307/2272846 . JSTOR 2272846. S2CID 2168826 .
- ↑ "ملاحظات محاضرة CSE1002 - المعجمية" (ملف PDF) . مؤرشف من النسخة الأصلية (PDF) بتاريخ 29-12-2009 . تم الاطلاع عليه بتاريخ 27-03-2010 .
- ↑ هناك طريقتان لإنشاء "سلاسل نصية فارغة" في لغة R؛ الطريقة الأخرى مذكورة هنا على أنها
"".character(0)تقوم بإنشاء متجهات أحرف فارغة، والتي ستخرج 0 عند عدها. - ↑ هناك طريقة أخرى لإنشاء سلسلة فارغة وهي ضرب سلسلة في 0 أو عدد صحيح سالب.
- ↑ "String in std::string - Rust" . doc.rust-lang.org . تم الاطلاع عليه بتاريخ 30-11-2022 .
- ↑ " حول_قواعد_الاقتباس - باور شيل" . مايكروسوفت ليرن . مؤرشف من الأصل بتاريخ 14 أغسطس 2025. تم الاطلاع عليه بتاريخ 26 أغسطس 2025.
يتعامل باور شيل مع علامات الاقتباس الذكية، والتي تُسمى أيضًا علامات الاقتباس المطبعية أو المائلة، كعلامات اقتباس عادية للسلاسل النصية. لا تستخدم علامات الاقتباس الذكية لتضمين السلاسل النصية.
- ↑ تعمل جميع علامات الاقتباس "الذكية" كعلامات افتتاح وإغلاق في أي تركيبة، باستثناء أنه يجب إقران العلامات المفردة بعلامات مفردة، والعلامات المزدوجة بعلامات مزدوجة. على سبيل المثال،
"Hello, world„هذا صحيح. لا يتم دعم علامات غيليميه. لاحظ أن علامة الاقتباس المفردة المنخفضة على النمط الألماني المذكورة هنا هي U+201A ، علامة اقتباس مفردة منخفضة-9 ؛ الحرف المشابه U+002C ، فاصلة، لا يعمل كعلامة اقتباس. توصي وثائق PowerShell الرسمية باستخدام علامات الاقتباس المستقيمة. [ 6 ]
- اللغات الرسمية
- السلاسل النصية (علوم الحاسوب)
- صفر (علم اللغة)
