فاصل

في مجال الحوسبة ، الفاصل هو حرف أو سلسلة من الأحرف تُستخدم لتحديد الحدود بين مناطق منفصلة ومستقلة في البيانات ، مثل ملف نصي أو تدفق بيانات . [ 1 ] [ 2 ] وللتوضيح، يمكن الإشارة إلى حدود البيانات بوسائل أخرى. على سبيل المثال، يشير الترميز التصريحي إلى طول الحقل من بدايته بدلاً من الاعتماد على الفواصل. [ 3 ]
في الرياضيات ، تُستخدم الفواصل غالبًا لتحديد نطاق عملية ما في تعبير لفظي ، ويمكن أن تظهر كرموز معزولة (مثل النقطتين في "") وكزوج من الرموز المتقابلة (مثل الأقواس الزاوية في).
أمثلة
تُستخدم الفواصل لأغراض متنوعة. توضح الأمثلة التالية جزءًا صغيرًا من استخداماتها.
بيانات جدولية
غالبًا ما تُفصل البيانات الجدولية ، المنظمة في صفوف وأعمدة ، بفواصل . يفصل فاصل الحقول أعمدة الصف، حيث يتوافق كل عمود مع حقل في ذلك الصف، بينما يفصل فاصل السجلات الصفوف، حيث يتوافق كل صف مع سجل. [ 4 ] يستخدم تنسيق القيم المفصولة بفواصل (CSV) الشائع الاستخدام الفاصلة لفصل الحقول، وسطرًا جديدًا لفصل السجلات. تمثل بيانات CSV التالية ثلاثة سجلات، كل منها يحتوي على أربعة حقول. السطر الأول هو بيانات وصفية تُسمي الحقول.
الاسم الأول، اسم العائلة، العمر، الراتب نانسي دافوليو، 33 عامًا، 30000 دولار إيرين بوراكوفا، 28 عامًا، 25250 دولارًا توني، رافائيل، 35 عامًا، 28700 دولارًا
تُعد بيانات CSV مثالاً على قاعدة بيانات الملفات المسطحة .
محددات الأقواس
تُستخدم فواصل الأقواس، والتي تُسمى أيضًا فواصل الكتل أو فواصل المناطق أو الفواصل المتوازنة، لتحديد بداية ونهاية منطقة نصية. [ 5 ] [ 6 ] ومن فواصل الأقواس الشائعة الاستخدام: [ 7 ]
| المحددات | وصف |
|---|---|
() | الأقواس ؛ يُشار إلى كود Lisp على أنه يمكن التعرف عليه من خلال استخدامه للأقواس [ 8 ] |
{} | الأقواس المعقوفة؛ وتسمى أيضًا الأقواس المعقوفة [ 9 ] |
[] | الأقواس المربعة؛ تُستخدم عادةً للدلالة على رمز سفلي |
<> | الأقواس الزاوية [ 10 ] |
"" | علامة اقتباس مزدوجة ؛ تُستخدم عادةً للدلالة على سلسلة نصية حرفية [ 11 ] |
'' | علامة اقتباس مفردة؛ تستخدم عادة للدلالة على سلسلة نصية حرفية أو حرف حرفي [ 11 ] |
<??> | يستخدم في لغة XML للدلالة على تعليمات المعالجة [ 12 ] |
/**/ | يستخدم في العديد من لغات البرمجة للدلالة على التعليق [ 13 ] |
<!----> | يُستخدم في SGML و HTML و XML للدلالة على تعليق |
<%%> | يستخدم في بعض قوالب الويب لتحديد حدود اللغة [ 14 ] |
تصادم الفاصل
يُشير مصطلح "تصادم المحددات" إلى أحد قيود استخدام المحددات. فعندما تحتوي معلومات المحتوى على محدد، تفشل معالجة البيانات لأن المحدد المُضمّن يُفسَّر بشكل خاطئ على أنه حدّ للبيانات، ما لم تُتخذ إجراءات لمنع هذا التصادم. [ 4 ] [ 15 ] في لغة XML، على سبيل المثال، قد يحدث التصادم عندما يحتوي المحتوى على قوس زاوي (< أو >).
قد يؤدي كل فاصل في تنسيق البيانات إلى حدوث تعارض. ففي ملفات CSV، على سبيل المثال، قد يحدث تعارض بين الحقول عندما يحتوي حقل ما على فاصلة (مثلاً: salary = "$30,000")، وقد يحدث تعارض بين فواصل السجلات عندما يحتوي حقل ما على سطر جديد. ويحدث كلا النوعين من التعارض بشكل متكرر في بيانات CSV.
قد يسعى مستخدم خبيث إلى استغلال تضارب الفواصل. وبالتالي، يُمكن أن يُشكّل تضارب الفواصل مصدرًا للثغرات الأمنية واستغلالها . ومن الأمثلة المعروفة على ذلك حقن SQL وهجمات البرمجة النصية عبر المواقع في سياق SQL و HTML على التوالي.
الحلول
تم ابتكار طرق متعددة لتجنب الاصطدام.
التعتيم
إن استخدام فاصل من غير المرجح ظهوره في المحتوى هو أسلوب ارتجالي ذو نتائج محدودة. فهو يتطلب معرفة مسبقة بالمحتوى المتوقع، وتخمين ما لن يظهر فيه، ولا يوفر حماية كافية ضد التداخلات الخبيثة.
شخصيات التحكم
إذا كان المحتوى مقيدًا من احتواء أحرف تحكم (وهو أمر شائع)، فإن استخدام أحرف التحكم كفواصل يمنع حدوث تضارب في الفواصل قد يحدث عند استخدام فواصل أخرى غير أحرف التحكم. [ 16 ] صُممت مجموعة أحرف ASCII مع مراعاة ذلك، حيث وفرت أحرفًا غير قابلة للطباعة يمكن استخدامها كفواصل في النطاق من 28 إلى 31. وفي وقت لاحق، اعتمد Unicode نفس نقاط الترميز.
| الاسم الشائع | ASCII (عشري) | اسم ASCII | اسم يونيكود | يستخدم |
|---|---|---|---|---|
| فاصل الملفات | 28 | ␜ | فاصل المعلومات الرابع | نهاية الملف أو بين مجموعة من الملفات |
| فاصل المجموعة | 29 | ␝ | فاصل المعلومات الثالث | بين أقسام البيانات؛ غير مطلوب في ملفات البيانات البسيطة |
| فاصل السجلات | 30 | ␞ | فاصل المعلومات الثاني | نهاية سجل أو صف |
| فاصل الوحدات | 31 | ␟ | فاصل المعلومات الأول | بين حقول السجل، أو بين عناصر الصف |
تسلسل الهروب
إحدى الطرق الشائعة لتجنب تداخل الفواصل هي استخدام تسلسل الهروب . يشير وجود حرف أو سلسلة أحرف قابلة للطباعة قبل حرف يُفترض أن يُشير إلى فاصل، إلى أن حرف الفاصل لا يُعتبر فاصلاً. على الرغم من فعالية هذه التقنية، إلا أنها تنطوي على عيوب، منها:
- قد يكون من الصعب قراءة المحتوى عندما يحتوي على العديد من تسلسلات الهروب، وهي مشكلة يشار إليها باسم متلازمة عود الأسنان المائل (بسبب استخدام \ للهروب من / في التعبيرات النمطية في لغة بيرل ، مما يؤدي إلى تسلسلات مثل "\/\/")؛
- يصبح تحليل البيانات صعباً باستخدام التعبيرات النمطية
- يتطلب الأمر طريقة للهروب من تسلسل الهروب (طريقة لاستخدام تسلسل الهروب كمحتوى)
- قد يكون تسلسل الهروب غامضًا بالنسبة لأولئك غير الملمين بالتركيب النحوي [ 17 ]
- لا توفر هذه الطريقة الحماية من هجمات الحقن.
ترميز عالي المستوى
تسمح بعض الأنظمة بتمثيل أي حرف كسلسلة من الأحرف. وهذا يُمكّن من ترميز النص الذي يُعتبر فاصلاً في الأصل ضمن المحتوى بشكل غير مباشر، وبالتالي منع تضارب الفواصل. ومن عيوب هذه الطريقة صعوبة قراءة رموز الأحرف وفهمها وحفظها.
على سبيل المثال، تسمح لغة بيرل بترميز الحرف باستخدام التسلسل \x##حيث يمثل ## القيمة العددية لرمز الحرف. يوضح المثال التالي كيفية \x22استخدام تسلسل علامات الاقتباس المزدوجة ( ) لمنع حدوث تعارض مع الفاصل الذي يحدد بداية ونهاية سلسلة نصية حرفية .
اطبع "قالت نانسي "مرحباً بالعالم!" للجمهور. "ينتج نفس الناتج كما يلي:
اطبع "قالت نانسي "مرحباً بالعالم!" للجمهور." ; ### استخدم حرف الهروبمحددات الاقتباس المزدوجة
على عكس تسلسلات الهروب وأحرف الهروب، توفر المحددات المزدوجة طريقة أخرى لتجنب تعارض المحددات. تسمح بعض اللغات، على سبيل المثال، باستخدام علامة اقتباس مفردة (') أو علامة اقتباس مزدوجة (") لتحديد سلسلة نصية حرفية. على سبيل المثال، في لغة بيرل :
اطبع: "قالت نانسي "مرحباً بالعالم!" للجمهور. "يُنتج هذا الأسلوب المخرجات المطلوبة دون الحاجة إلى استخدام علامات الهروب. إلا أنه لا ينجح إلا عندما لا يحتوي النص على كلا النوعين من علامات الاقتباس.
علامات اقتباس إضافية
على عكس تسلسلات الهروب وأحرف الهروب، توفر فواصل الحشو طريقة أخرى لتجنب تعارض الفواصل. على سبيل المثال، يستخدم Visual Basic علامات الاقتباس المزدوجة كفواصل. وهذا يشبه الهروب من الفاصل.
اطبع: "قالت نانسي للجمهور: "مرحباً بالعالم!"".يُنتج هذا الأمر المخرجات المطلوبة دون الحاجة إلى استخدام علامات الهروب. ولكن، كما هو الحال مع استخدام علامات الهروب العادية، قد يصبح الأمر مُربكًا عند استخدام العديد من علامات الاقتباس. سيبدو الكود الخاص بطباعة الكود المصدري أعلاه أكثر تعقيدًا:
اطبع "اطبع ""قالت نانسي """""مرحباً بالعالم!"""" للجمهور."""محددات اقتباس بديلة قابلة للتكوين
على عكس المحددات المزدوجة، فإن المحددات المتعددة أكثر مرونة في تجنب تضارب المحددات. [ 7 ] : 63
على سبيل المثال، في لغة بيرل :
اطبع qq^نانسي لا تريد أن تقول "مرحباً بالعالم!" بعد الآن.^ ; اطبع qq@نانسي لا تريد أن تقول "مرحباً بالعالم!" بعد الآن.@ ; اطبع qq(نانسي لا تريد أن تقول "مرحباً بالعالم!" بعد الآن.) ;تُنتج جميعها المخرجات المطلوبة باستخدام عوامل الاقتباس ، التي تسمح لأي حرف مناسب بالعمل كفاصل. على الرغم من أن هذه الطريقة أكثر مرونة، إلا أن قلة من اللغات تدعمها. بيرل وروبي مثالان على ذلك. [ 7 ] : 62 [ 18 ]
حدود المحتوى
يُعدّ حدّ المحتوى نوعًا خاصًا من الفواصل، مصمم خصيصًا لمنع تداخل الفواصل. ويعمل هذا الحدّ من خلال السماح للكاتب بتحديد سلسلة من الأحرف تضمن دائمًا الإشارة إلى حدّ فاصل بين أجزاء الرسالة متعددة الأجزاء، دون أي تفسير آخر محتمل. [ 19 ]
غالبًا ما يُولَّد الفاصل من سلسلة عشوائية من الأحرف، والتي من غير المرجح إحصائيًا ظهورها في المحتوى. وقد يتبع ذلك علامة تعريفية مثل مُعرِّف فريد عالمي (UUID) أو طابع زمني أو أي علامة مميزة أخرى. بدلاً من ذلك، يمكن فحص المحتوى للتأكد من عدم ظهور الفاصل في النص. وهذا قد يسمح بأن يكون الفاصل أقصر أو أبسط، مما يزيد من سهولة قراءة المستند. ( انظر على سبيل المثال ، MIME ، مستندات Here ).
المسافات البيضاء أو المسافة البادئة
تسمح بعض لغات البرمجة والحاسوب باستخدام فواصل المسافات البيضاء أو المسافة البادئة كوسيلة لتحديد الحدود بين المناطق المستقلة في النص. [ 20 ]
بناء جملة التعبير النمطي
عند تحديد تعبير نمطي ، يمكن أيضًا استخدام محددات بديلة لتبسيط بناء الجملة لعمليات المطابقة والاستبدال في لغة بيرل . [ 21 ]
على سبيل المثال، يمكن تحديد عملية مطابقة بسيطة في لغة بيرل باستخدام الصيغة التالية:
$string1 = 'قالت نانسي "مرحباً بالعالم!" للجمهور.' ; # تحديد سلسلة نصية مستهدفة print $string1 =~ m/[aeiou]+/ ; # مطابقة حرف علة واحد أو أكثرتتميز الصيغة بالمرونة الكافية لتحديد عمليات المطابقة باستخدام محددات بديلة، مما يسهل تجنب تضارب المحددات:
$string1 = 'قالت نانسي أن "http://Hello/World.htm" ليس عنوانًا صالحًا.' ; # السلسلة المستهدفة print $string1 =~ m@http://@ ; # المطابقة باستخدام فاصل تعبير نمطي بديل print $string1 =~ m{http://} ; # نفس السابق، ولكن بفاصل مختلف print $string1 =~ m!http://! ; # نفس السابق، ولكن بفاصل مختلف.هذه الوثيقة
تسمح وثيقة "هنا" بإدراج محتوى عشوائي بتحديد تسلسل نهاية خاص. تدعم العديد من لغات البرمجة هذه الخاصية ، بما في ذلك PHP و Bourneshell و Ruby و Perl . تبدأ وثيقة "هنا" بوصف تسلسل النهاية، وتستمر حتى يظهر هذا التسلسل في بداية سطر جديد. [ 22 ] إذا كان المحتوى معروفًا، فإن هذه التقنية تتجنب تعارض الفواصل، إذ يمكن اختيار تسلسل نهاية غير موجود في المحتوى.
مثال بلغة بيرل:
print << ENDOFHEREDOC ; من الصعب جدًا ترميز سلسلة نصية تحتوي على "أحرف معينة".قد تتسبب الأسطر الجديدة والفواصل والأحرف الأخرى في حدوث تعارضات في الفواصل. ENDOFHEREDOCهذا الكود يطبع:
من الصعب جداً ترميز سلسلة نصية تحتوي على "أحرف معينة". يمكن أن تتسبب الأسطر الجديدة والفواصل والأحرف الأخرى في حدوث تعارضات في المحددات.
درع ASCII
على الرغم من أن تقنية ASCII armoring تُستخدم بشكل أساسي كآلية لترميز البيانات الثنائية، إلا أنها تُعدّ تقنية برمجة وإدارة أنظمة تُساعد أيضًا على تجنب تعارض الفواصل في بعض الحالات. [ 23 ] [ 24 ] هذه التقنية أكثر تعقيدًا من العديد من تقنيات تجنب التعارض الأخرى، ولذلك فهي أقل ملاءمة للتطبيقات الصغيرة وتنسيقات البيانات البسيطة. تستخدم هذه التقنية نظام ترميز خاص، مثل base64 ، لضمان عدم ظهور الفواصل أو الأحرف المهمة الأخرى في البيانات المُرسلة. كما أنها تمنع الهروب متعدد الطبقات ، أي بالنسبة لعلامات الاقتباس المزدوجة .
تُستخدم هذه التقنية، على سبيل المثال، في ASP.NET ، وهي مرتبطة ارتباطًا وثيقًا بمكون VIEWSTATE في هذا النظام. [ 25 ] يمنع هذا تضارب الفواصل ويضمن عدم ظهور أحرف غير متوافقة داخل كود HTML، بغض النظر عن الأحرف الموجودة في النص الأصلي (بعد فك تشفيره). [ 25 ] يوضح المثال التالي كيفية عمل هذه التقنية.
يُظهر جزء الكود التالي وسم HTML يحتوي على قيمة VIEWSTATE تتضمن علامات اقتباس مزدوجة - وهي أحرف غير متوافقة مع محددات وسم HTML. الكود غير صالح وسيفشل.
<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:Nancy doesn't say " Hello World!" anymore." />لتخزين نص عشوائي في سمة HTML، يمكن استخدام كيانات HTML" . في هذه الحالة ، يرمز إلى علامة الاقتباس المزدوجة.
<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:Nancy doesn't say "Hello World!" anymore." />بدلاً من ذلك، يمكن استخدام أي ترميز لا يتضمن أحرفًا لها معنى خاص في السياق، مثل base64:
<input type= "hidden" name= "__VIEWSTATE" value= "Qm9va1RpdGxlOk5hbmN5IGRvZXNuJ3Qgc2F5ICJIZWxsbyBXb3JsZCEiIGFueW1vcmUu" />أو ترميز النسبة المئوية :
<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:Nancy%20doesn%27t%20say%20%22Hello%20World!%22%20anymore." />انظر أيضاً
- CDATA – فاصل الأقسام في لغات الترميز SGML و XML
- الفاصلة العشرية – الرمز العددي
- القيم المفصولة بفواصل - تنسيق نصي للإشارة إلى البيانات الجدولية
- تسلسل الهروب – سلسلة من الأحرف ذات معنى خاص
- سطر جديد – أحرف خاصة في الحوسبة تشير إلى نهاية سطر من النص
- السلسلة النصية الحرفية - سلسلة من الأحرف المحددة التي تمثل سلسلة نصية في الكود
- القيم المفصولة بعلامات الجدولة – تنسيق نصي للبيانات الجدولية باستخدام علامة جدولة بين الحقول
مراجع
- ↑ "التعريف: فاصل" . المعيار الفيدرالي 1037C - الاتصالات: مسرد مصطلحات الاتصالات . مؤرشف من الأصل بتاريخ 2013-03-05 . تم الاطلاع عليه بتاريخ 2019-11-25 .
- ↑ "ما هو الفاصل؟" . www.computerhope.com . مؤرشف من الأصل بتاريخ 16-11-2020 . تم الاطلاع عليه بتاريخ 09-08-2020 .
- ↑ روهل، جيفري س. (1973). البرمجة بلغة فورتران . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-7190-0555-8.وصف الطريقة باستخدام تدوين هوليريث في لغة برمجة فورتران.
- 1 2 دي مور، جورج ج. (1993). التقدم في التقييس في المعلوماتية الصحية . دار نشر IOS. ISBN 90-5199-114-2.ص 141
- ↑ فريدل، جيفري إي إف (2002). إتقان التعابير النمطية: تقنيات فعّالة للغة بيرل وأدوات أخرى . أورايلي. رقم ISBN 0-596-00289-0.ص 319
- ↑ سكوت، مايكل لي (1999). براغماتية لغات البرمجة . مورغان كوفمان. ISBN 1-55860-442-1.
- 1 2 3 وال، لاري ؛ أوروانت، جون (يوليو 2000). برمجة بيرل ( الطبعة الثالثة). أورايلي. ISBN 0-596-00027-8.
- ↑ كوفمان، مات (2000). الاستدلال بمساعدة الحاسوب: مدخل . سبرينغر. ISBN 0-7923-7744-3.ص 3
- ↑ ماير، مارك (2005). استكشافات في علوم الحاسوب . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-7637-3832-7.يشير إلى لغات البرمجة على نمط لغة C والتي تتميز بشكل بارز باستخدام الأقواس المعقوفة والفواصل المنقوطة.
- ↑ ديليجان، روبرت (1998). الحوسبة في عصر الويب . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-306-45972-6.يصف هذا النص قواعد اللغة والفواصل المستخدمة في لغة HTML.
- 1 2 شوارتز، راندال (2005). تعلم لغة بيرل . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-596-10105-3.يصف هذا النص السلاسل النصية الحرفية .
- ↑ وات، أندرو (2003). سامز: تعلم لغة XML بنفسك في 10 دقائق . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-672-32471-0.يصف تعليمات معالجة XML. ص 21.
- ↑ كابريرا، هارولد (2002). لغة سي شارب لمبرمجي جافا . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. رقم ISBN 978-1-931836-54-8.يصف التعليقات ذات السطر الواحد والتعليقات متعددة الأسطر. ص 72.
- ↑ "مواصفات صفحات خادم جاكرتا، الإصدار 4.0" . GitHub . مؤرشف من الأصل بتاريخ 10 فبراير 2023. تم الاطلاع عليه بتاريخ 10 فبراير 2023 .
- ↑ فريدل، جيفري (2006). إتقان التعابير النمطية . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-596-52812-6.وصف حلول لمشاكل الفواصل المضمنة، ص 472.
- ↑ "تنسيقات ملفات النصوص - نص مفصول بـ ASCII - ليس نصًا مفصولًا بـ CSV أو TAB" . تم الاطلاع عليه بتاريخ 28-04-2026 .
- ↑ كاهريل، بيتر (2006). أتمتة برنامج InDesign باستخدام التعابير النمطية . أورايلي. ص 11. ISBN 0-596-52937-6.
- ^ يوكيهيرو ماتسوموتو (2001). روبي باختصار . أورايلي. رقم ISBN 0-596-00214-9.في لغة روبي، يُشار إلى هذه السلاسل بسلاسل محددة عامة . ص 11
- ↑ دليل بروتوكولات الشبكة . شركة جافين تكنولوجيز، 2005. رقم ISBN 0-9740945-2-8.ص 26
- ↑ اللغويات الحاسوبية ومعالجة النصوص الذكية . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. 2001. ISBN 978-3-540-41687-6.يصف فواصل المسافات البيضاء. ص 258.
- ↑ فريدل، جيفري (2006). إتقان التعابير النمطية . أكسفورد، أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-0-596-52812-6.الصفحة 472.
- ↑ "عوامل بيرل والأسبقية" . مؤرشف من الأصل بتاريخ 17-07-2012 . تم الاطلاع عليه بتاريخ 11-11-2011 .
- ↑ ري، مان (2003). أمن الإنترنت: مبادئ التشفير والخوارزميات والبروتوكولات . جون وايلي وأولاده. ISBN 0-470-85285-2.(مثال على استخدام تقنية ASCII في تطبيقات التشفير)
- ↑ غروس، كريستيان (2005). المصادر المفتوحة لمسؤولي أنظمة ويندوز . تشارلز ريفر ميديا. ISBN 1-58450-347-5.(مثال على استخدام تقنية ASCII في تطبيقات التشفير)
- 1 2 كالاني، أميت (2004). تطوير وتنفيذ تطبيقات الويب باستخدام Visual C# . NET وVisual Studio . NET . Que. ISBN 0-7897-2901-6.(يصف استخدام ترميز Base64 و VIEWSTATE داخل كود مصدر HTML)
روابط خارجية
- لغات الترميز
- مطابقة الأنماط
- بنى البرمجة
- السلاسل النصية (علوم الحاسوب)
