تُستخدم وسوم المحلّل لتحديد كيفية التوصل إلى الحل.
يمكن بعد ذلك استخدام هذه الوسوم من أجل:
الوسم عبارة عن سلسلة نصية بالصيغة التالية: <category>:<thing>.
ندعم أربع فئات مختلفة، مرتّبة من الأعلى إلى الأدنى مستوى:
| الفئة | الوصف | مستوى التحديد | الأمثلة |
|---|---|---|---|
paradigm |
نمط برمجي | عالي المستوى جدًا، ولا يخصّ مسارًا بعينه |
imperative, functional
|
technique |
تقنية مستخدمة | عالي المستوى، ومعظمها لا يخصّ مسارًا بعينه |
recursion, immutability
|
construct |
تركيب لغوي | كثير منها لا يخصّ مسارًا بعينه |
bitwise-and, for-loop
|
uses |
استخدام خاص بلغة بعينها، مثل الأنواع أو الطرق | منخفض المستوى، ويخصّ مسارًا بعينه |
DateTime.add_seconds, IEnumerable
|
بعض الأمثلة على الوسوم:
paradigm:functionaltechnique:recursionconstruct:bitwise-anduses:DateTime.add_secondsبينما الحرية للمسارات في وسم الحلول كما تراه مناسبًا، نوصي بمحاولة استخدام القائمة أدناه للوسوم الشائعة الاستخدام كلما أمكن. استخدام مجموعة وسوم موحّدة سيتيح لنا القيام ببعض الأشياء الرائعة، مثل الربط بين الحلول عبر المسارات.
| الوسم | الوصف |
|---|---|
paradigm:array |
يستخدم البرمجة بالمصفوفات. |
paradigm:declarative |
يستخدم البرمجة التصريحية. |
paradigm:functional |
يستخدم البرمجة الوظيفية. |
paradigm:generic |
يستخدم البرمجة العامة. |
paradigm:imperative |
يستخدم البرمجة الأمرية. |
paradigm:logic |
يستخدم البرمجة المنطقية. |
paradigm:meta |
يستخدم البرمجة الفوقية. |
paradigm:object-oriented |
يستخدم البرمجة كائنية التوجه. |
paradigm:procedural |
يستخدم البرمجة الإجرائية. |
paradigm:reflective |
يستخدم البرمجة الانعكاسية. |
paradigm:stack-oriented |
يستخدم البرمجة الموجهة بالمكدّس. |
| الوسم | الوصف |
|---|---|
technique:bit-manipulation |
يتلاعب بالبتات، عادةً عبر عوامل على مستوى البت (مثل AND أو XOR أو الإزاحة لليسار) |
technique:bit-shifting |
يزيح البتات داخل عدد |
technique:boolean-logic |
ينفّذ منطقًا قائمًا على القيم المنطقية (AND، OR، NOT) |
technique:composition |
يستخدم التركيب |
technique:concurrency |
يشغّل الكود بالتزامن |
technique:enumeration |
يُجري تعدادًا على القيم |
technique:error-handling |
يتعامل مع الأخطاء |
technique:exceptions |
يلتقط الاستثناءات أو يطرحها |
technique:function-composition |
يستخدم تركيب الدوال |
technique:generator |
يستخدم مولّدًا |
technique:higher-order-functions |
يستخدم دوال الرتبة الأعلى |
technique:immutability |
يستخدم الثبات |
technique:immutable-collection |
يستخدم مجموعة محتواها غير قابل للتغيير |
technique:inheritance |
يستخدم الوراثة |
technique:laziness |
ينتج القيم بتأخير، فقط عند الحاجة |
technique:locks |
يستخدم الأقفال للحصول على وصول حصري إلى الموارد |
technique:looping |
يستخدم الحلقات |
technique:math |
يستخدم الرياضيات |
technique:memory-management |
يدير الذاكرة |
technique:ordering |
يرتّب البيانات |
technique:parallelism |
يشغّل الكود على التوازي |
technique:parser |
يحلّل البيانات |
technique:pointers |
يستخدم المؤشرات |
technique:randomness |
يستخدم العشوائية |
technique:recursion |
يستخدم الاستدعاء الذاتي |
technique:regular-expression |
يستخدم التعبيرات النمطية |
technique:short-circuiting |
يستخدم التقييم القصير لمنع التقييم غير الضروري |
technique:sorted-collection |
يستخدم مجموعة عناصرها مرتّبة دائمًا |
technique:sorting |
يرتّب البيانات |
technique:tail-call-optimization |
يستخدم تحسين الاستدعاء الذيلّي لاستدعاء ذاتي فعّال |
technique:type-conversion |
يحوّل القيم من نوع إلى نوع آخر |
technique:unsafe |
يستخدم كودًا غير آمن (مثل الحساب على المؤشرات) |
| الوسم | الوصف |
|---|---|
construct:abstract-class |
يعرّف صنفًا مجرّدًا |
construct:abstract-method |
يعرّف طريقة مجرّدة |
construct:add-assignment |
يدمج الجمع مع الإسناد |
construct:add |
يستخدم الجمع |
construct:array |
يستخدم مصفوفة أو يعرّفها |
construct:assignment |
يُسند قيمة إلى متغير أو اسم، أو يربطها به |
construct:async-await |
يستخدم async/await
|
construct:attribute |
يضيف بيانات وصفية إلى عضو |
construct:auto-implemented-property |
يعرّف خاصية مُنفّذة تلقائيًا |
construct:big-integer |
يستخدم عددًا صحيحًا كبيرًا |
construct:binary-number |
يعرّف عددًا بالترميز الثنائي |
construct:bit-array |
يستخدم مصفوفة بتات أو يعرّفها |
construct:bitwise-and-assignment |
يدمج عملية AND على مستوى البت مع الإسناد |
construct:bitwise-and |
ينفّذ عملية AND على مستوى البت |
construct:bitwise-left-shift-assignment |
يدمج الإزاحة لليسار على مستوى البت مع الإسناد |
construct:bitwise-left-shift |
ينفّذ إزاحة لليسار على مستوى البت |
construct:bitwise-not |
ينفّذ عملية NOT على مستوى البت |
construct:bitwise-or-assignment |
يدمج عملية OR على مستوى البت مع الإسناد |
construct:bitwise-or |
ينفّذ عملية OR على مستوى البت |
construct:bitwise-right-shift-assignment |
يدمج الإزاحة لليمين على مستوى البت مع الإسناد |
construct:bitwise-right-shift |
ينفّذ إزاحة لليمين على مستوى البت |
construct:bitwise-xor-assignment |
يدمج عملية XOR على مستوى البت مع الإسناد |
construct:bitwise-xor |
ينفّذ عملية XOR على مستوى البت |
construct:block |
يعرّف كتلة تحتوي قائمة عبارات |
construct:boolean |
يعرّف قيمة منطقية أو يستخدمها |
construct:boxing |
يستخدم التغليف |
construct:break |
يخرج من الحلقة |
construct:byte |
يستخدم عددًا صحيحًا غير موقع بطول 8 بتات |
construct:catch |
يلتقط استثناءً |
construct:char |
يستخدم محرفًا |
construct:checked-arithmetic |
يستخدم حسابًا مُتحقَّقًا منه (يحمي من تجاوز الحدود) |
construct:class |
يعرّف صنفًا |
construct:collection-initializer |
يضبط قيم مجموعة عبر مُهيّئ |
construct:command |
يعرّف أمرًا |
construct:comment |
يعرّف تعليقًا |
construct:comparison-chaining |
يسلسل نداءات المقارنة |
construct:comparison |
يقارن قيمتين بترتيبهما النسبي |
construct:complex-number |
يستخدم عددًا مركّبًا |
construct:computed-string |
يعرّف سلسلة نصية محسوبة |
construct:concatenation |
يدمج القيم |
construct:conditional-access |
يصل إلى طريقة بشكل شرطي |
construct:conditional-operator |
يستخدم عاملًا شرطيًّا ثلاثيًّا |
construct:conditional |
ينفّذ الكود بشكل شرطي |
construct:constant |
يعرّف قيمة ثابتة (غير قابلة للتغيير) |
construct:constructor |
يعرّف مُنشئًا |
construct:continue |
ينتقل إلى التكرار التالي في الحلقة |
construct:conversion-operator |
يعرّف عامل تحويل |
construct:copy |
ينسخ قيمة |
construct:coroutine |
يعرّف روتينًا مشتركًا أو يستخدمه |
construct:custom-attribute |
يعرّف سمة مخصّصة |
construct:date-time |
يستخدم قيمة تمثّل اجتماع التاريخ والوقت معًا |
construct:date |
يستخدم قيمة تمثّل تاريخًا (بدون وقت) |
construct:decimal |
يستخدم عددًا عشريًّا بالفاصلة العائمة بطول 128 بت |
construct:decrement |
ينقص قيمة بمقدار واحد |
construct:default-interface-implementation |
يعرّف تنفيذًا افتراضيًّا داخل واجهة |
construct:default |
يعرّف قيمة افتراضية (مثلًا لمعامل) |
construct:destructuring |
يفكّك قيمة إلى أجزائها |
construct:dictionary-comprehension |
ينشئ قاموسًا عبر أسلوب الاستيعاب |
construct:dictionary |
يستخدم قاموسًا أو خريطة، أو يعرّفهما |
construct:discard |
يستخدم قيمة التجاهل الخاصة |
construct:divide-assignment |
يدمج القسمة مع الإسناد |
construct:divide |
يستخدم القسمة |
construct:do-while-loop |
يستخدم حلقة do-while
|
construct:double |
يستخدم عددًا بالفاصلة العائمة بطول 64 بت |
construct:else |
يعرّف فرع else
|
construct:enum |
يعرّف تعدادًا أو يستخدمه (تعداد القيم) |
construct:equality |
يقارن تساوي قيمتين |
construct:error |
يعرّف خطأً أو يستخدمه |
construct:event |
يعرّف أحداثًا أو يستخدمها |
construct:exception |
يعرّف استثناءات أو يستخدمها |
construct:explicit-conversion |
يحوّل من نوع إلى آخر بشكل صريح |
construct:explicit-import |
يستورد وظائف محدّدة فقط |
construct:exponentiation |
يحسب رفع قيمة إلى أس |
construct:expression-bodied-member |
يعرّف عضوًا بتعبير |
construct:extension-method |
يعرّف طريقة امتدادية |
construct:field-access |
يصل إلى حقل |
construct:field |
يعرّف حقلًا |
construct:finally |
يستخدم finally لضمان تشغيل كتلة كود محدّدة دائمًا |
construct:flags-enum |
يعرّف تعداد أعلام أو يستخدمه |
construct:float |
يستخدم عددًا بالفاصلة العائمة بطول 32 بت |
construct:floating-point-number |
يستخدم عددًا بالفاصلة العائمة |
construct:for-loop |
يستخدم حلقة for
|
construct:foreach |
يستخدم حلقة foreach
|
construct:function-overloading |
يستخدم التحميل الزائد للدوال |
construct:function |
يعرّف دالة |
construct:generator |
يعرّف دالة مولّد أو طريقة مولّد |
construct:generic-function |
يعرّف دالة مُعاملة بنوع واحد أو أكثر |
construct:generic-method |
يعرّف طريقة مُعاملة بنوع واحد أو أكثر |
construct:generic-type |
يعرّف نوعًا مُعاملًا بنوع واحد أو أكثر |
construct:getter |
يعرّف دالة جلب |
construct:global-function |
يعرّف دالة متاحة على المستوى العام |
construct:global-variable |
يعرّف متغيرًا متاحًا على المستوى العام |
construct:header |
يعرّف ملف ترويسة |
construct:hexadecimal-number |
يعرّف عددًا بالترميز السادس عشري |
construct:if |
يستخدم جملة شرطية if
|
construct:implicit-conversion |
يحوّل من نوع إلى آخر بشكل ضمني |
construct:implicit-loop |
يكرّر على مجموعة قيم بشكل ضمني |
construct:implicit-return |
يُرجع قيمة بشكل ضمني |
construct:import |
يستورد وظائف منفّذة في مكان آخر (مثلًا من نطاق أسماء أو وحدة) |
construct:increment |
يزيد قيمة بمقدار واحد |
construct:index-operator |
يعرّف عاملًا لفهرسة كائن |
construct:indexer |
يعرّف مُفهرِسًا أو يستخدمه |
construct:indexing |
يصل إلى قيمة عبر الفهرس |
construct:inequality |
يقارن عدم تساوي قيمتين |
construct:infix-operator |
يعرّف عاملًا بينيًّا |
construct:initialization |
يهيّئ كائنًا بعد إنشائه |
construct:initializer-list |
يهيّئ قيم حقول كائن |
construct:initializer |
يهيّئ كائنًا |
construct:instance |
ينشئ نسخة من نوع أو يستخدمها |
construct:instantiation |
ينشئ نسخة من نوع |
construct:int |
يستخدم عددًا صحيحًا موقعًا بطول 32 بت |
construct:integral-number |
يستخدم عددًا صحيحًا |
construct:interface |
يعرّف واجهة |
construct:invocation |
يستدعي طريقة أو دالة |
construct:iterator |
يعرّف دالة أو طريقة يمكن التكرار عليها |
construct:jagged-array |
يستخدم مصفوفة مسنّنة (مصفوفة من مصفوفات) |
construct:lambda |
يعرّف تعبير لامدا (ويُعرف أيضًا باسم "دالة مجهولة") |
construct:linked-list |
يستخدم قائمة مترابطة |
construct:linq |
يستخدم LINQ |
construct:list-comprehension |
يبني قائمة عبر أسلوب الاستيعاب |
construct:list |
يستخدم قائمة |
construct:local-function |
يعرّف دالة محلية |
construct:local-variable |
يعرّف متغيرًا محليًّا |
construct:lock |
يستخدم قفلًا |
construct:logical-and |
ينفّذ عملية AND منطقية |
construct:logical-not |
ينفّذ عملية NOT منطقية |
construct:logical-or |
ينفّذ عملية OR منطقية |
construct:long |
يستخدم عددًا صحيحًا موقعًا بطول 64 بت |
construct:loop |
يعرّف حلقة |
construct:macro |
يعرّف ماكرو |
construct:membership-test |
يختبر انتماء قيمة إلى قيمة أخرى |
construct:metatable |
يعرّف جدولًا فوقيًّا |
construct:method-chaining |
يسلسل عدة نداءات طرق |
construct:method-overloading |
يستخدم التحميل الزائد للطرق |
construct:method-override |
يعرّف طريقة متجاوَزة |
construct:method |
يعرّف طريقة |
construct:module |
يعرّف وحدة (تجميع للكود) |
construct:modulo-assignment |
يدمج باقي القسمة مع الإسناد |
construct:modulo |
يستخدم باقي القسمة |
construct:multi-dimensional-array |
يستخدم مصفوفة متعددة الأبعاد |
construct:multiline-string |
يعرّف سلسلة نصية متعددة الأسطر |
construct:multiple-assignment |
يُسند قيمًا متعددة دفعة واحدة |
construct:multiple-dispatch |
يستخدم الإرسال المتعدد |
construct:multiply-assignment |
يدمج الضرب مع الإسناد |
construct:multiply |
يستخدم الضرب |
construct:named-argument |
يمرّر وسيطًا بالاسم |
construct:namespace |
يعرّف نطاق أسماء (تجميع للكود) |
construct:nested-function |
يعرّف دالة متداخلة |
construct:nested-type |
يعرّف نوعًا متداخلًا |
construct:nesting |
يستخدم التداخل |
construct:nint |
يستخدم عددًا صحيحًا موقعًا خاصًّا بالمنصّة (32 أو 64 بت) |
construct:nuint |
يستخدم عددًا صحيحًا غير موقع خاصًّا بالمنصّة (32 أو 64 بت) |
construct:null |
يستخدم null/nil للتعبير عن غياب قيمة |
construct:nullability |
يتعامل مع قيم null/nil |
construct:number |
يستخدم عددًا (موقعًا أو غير موقع) |
construct:object-initializer |
يضبط قيم كائن عبر مُهيّئ |
construct:octal-number |
يعرّف عددًا بالترميز الثماني |
construct:operator-overloading |
يستخدم التحميل الزائد للعوامل |
construct:option |
يستخدم نوع خيار |
construct:optional-parameter |
يعرّف معاملًا اختياريًّا |
construct:overflow |
يستخدم تجاوز السعة الحسابية |
construct:parameter |
يعرّف معاملًا |
construct:parenthesized-expression |
يحيط تعبيرًا بالأقواس الهلالية |
construct:pattern-matching |
يستخدم مطابقة الأنماط |
construct:pattern |
يعرّف نمطًا يُستخدم في مطابقة الأنماط |
construct:pipe-backward |
يستخدم أنبوبًا معاكسًا |
construct:pipe-forward |
يستخدم أنبوبًا أماميًّا |
construct:pipeline |
يعرّف خط أنابيب |
construct:point-free |
يعرّف دوال دون الوسائط التي تعمل عليها |
construct:pointer |
يستخدم مؤشرًا |
construct:postfix-decrement |
ينقص قيمة باستخدام الترميز اللاحق |
construct:postfix-increment |
يزيد قيمة باستخدام الترميز اللاحق |
construct:prefix-decrement |
ينقص قيمة باستخدام الترميز السابق |
construct:prefix-increment |
يزيد قيمة باستخدام الترميز السابق |
construct:print |
يطبع قيمة على وحدة التحكم |
construct:property |
يعرّف خاصية (جلب/ضبط) |
construct:query-expression |
يستعلم عن البيانات عبر تعبير |
construct:queue |
يستخدم طابورًا |
construct:range |
يعرّف نطاقًا |
construct:read-only |
يعرّف قيمة للقراءة فقط |
construct:record |
يعرّف سجلًا |
construct:regular-expression |
يعرّف تعبيرًا نمطيًّا أو يستخدمه |
construct:result |
يستخدم نوع نتيجة |
construct:return-type |
يعرّف نوع إرجاع دالة أو طريقة |
construct:return |
يعود من دالة أو طريقة |
construct:sbyte |
يستخدم عددًا صحيحًا موقعًا بطول 8 بتات |
construct:scientific-notation-number |
يعرّف عددًا بالترميز العلمي |
construct:set-comprehension |
ينشئ مجموعة عبر أسلوب الاستيعاب |
construct:set |
يستخدم مجموعة |
construct:setter |
يعرّف دالة ضبط |
construct:short |
يستخدم عددًا صحيحًا موقعًا بطول 16 بت |
construct:slice |
يستخدم شريحة |
construct:stack |
يستخدم مكدّسًا |
construct:static-field |
يعرّف حقلًا ساكنًا |
construct:static-method |
يعرّف طريقة ساكنة |
construct:string-formatting |
يبني سلسلة نصية عبر سلسلة تنسيق |
construct:string-interpolation |
يعرّف سلسلة نصية مُدمَجة |
construct:string |
يعرّف سلسلة نصية |
construct:struct |
يعرّف بنية |
construct:subtract-assignment |
يدمج الطرح مع الإسناد |
construct:subtract |
يستخدم الطرح |
construct:sum-type |
يعرّف نوع مجموع |
construct:switch |
يستخدم switch
|
construct:table |
يعرّف جدولًا |
construct:template-alias |
يعرّف اسمًا مستعارًا لقالب |
construct:template-parameter |
يعرّف معامل قالب |
construct:template |
يعرّف قالبًا |
construct:throw |
يطرح استثناءً |
construct:time |
يستخدم كائنًا يمثّل الوقت |
construct:try |
يتعامل مع استثناء بشكل صريح |
construct:tuple |
يستخدم صفًا |
construct:type-alias |
يعرّف اسمًا مستعارًا لنوع |
construct:type-conversion |
يحوّل قيمة إلى نوع آخر (بتحويل قسري) |
construct:type-extension |
يمدّد نوعًا بوظائف جديدة |
construct:type-inference |
يستنتج نوع قيمة أو دالة تلقائيًّا |
construct:type-test |
يختبر ما إذا كانت قيمة من نوع محدّد |
construct:uint |
يستخدم عددًا صحيحًا غير موقع بطول 32 بت |
construct:ulong |
يستخدم عددًا صحيحًا غير موقع بطول 64 بت |
construct:unary-minus |
يستخدم سالبًا أحاديًّا |
construct:unary-plus |
يستخدم موجبًا أحاديًّا |
construct:underscored-number |
يستخدم عددًا بشرطات سفلية كفواصل بين أرقامه |
construct:union-type |
يعرّف نوع اتحاد |
construct:user-defined-exception |
يعرّف استثناءً مخصّصًا يعرّفه المستخدم |
construct:ushort |
يستخدم عددًا صحيحًا غير موقع بطول 16 بت |
construct:using-directive |
يستخدم كودًا من ملف آخر |
construct:using-statement |
يُسند قيمة ويتخلّص منها عبر جملة using |
construct:varargs |
يعرّف معاملًا يدعم تمرير صفر من القيم أو أكثر |
construct:variable |
يعرّف متغيرًا |
construct:vector |
يستخدم متجهًا |
construct:verbatim-string |
يستخدم سلسلة نصية حرفية (بدون متتاليات هروب) |
construct:virtual-method |
يعرّف طريقة ظاهرية |
construct:visibility-modifiers |
يحدّد مدى ظهور عنصر (مثل طريقة أو صنف) |
construct:while-loop |
يستخدم حلقة while
|
construct:yield |
يُسلّم قيمة في حلقة بشكل مؤجّل |
بما أن هذه الفئة خاصة بلغة بعينها، لا توجد وسوم شائعة الاستخدام هنا.