CALM/arwiki huggingface dataset:
تشمل إصابات الحلق:
تؤثر ظروف العمل عادةً على الأفراد الذين تتطلب مهنتهم استخدامًا مكثفًا أو مفرطًا للأحبال الصوتية. تشمل بعض الأمثلة مذيعي الأخبار والتلفزيون، ومضيفي الراديو، والمطربين أو الممثلين. قد يكون المعلمون أيضًا عرضة لمتلازمة بوغارت باكال اعتمادًا على درجة صوتهم ومقدار حديثهم بشكل عام.
عادةً ما يتعافى المصابون بمتلازمة بوغارت باكال والذين لا يعانون من حالة مرضية كامنة من خلال العلاج الصوتي. يمكن أن يؤدي عدم علاج اضطرابات الصوت التوترية العضلية إلى مزيد من الاضطرابات طويلة الأمد التي تتطلب أشكالًا إضافية من العلاج. عادةً ما يتعافى المصابون بمتلازمة بوغارت باكال والذين لا يعانون من حالة مرضية كامنة من خلال العلاج الصوتي. (الجملة مكررة في بداية الفقرة)
يمكن أن تحدث متلازمة بوغارت باكال في أي عمر. يُرجح أن تصيب أصحاب المهن التي تتطب أداءً صوتيًا، أي المطربين والممثلين والمدرسين ومذيعي الراديو والتلفاز. تعد النساء أكثر عرضة من الرجال لتطوير متلازمة بوغارت باكال بسبب ميلهن إلى خفض أصواتهن في بيئة العمل. تنتشر هذه المتلازمة بين أصحاب ال40-50 عامًا لأن الأحبال الصوتية تصبح ضعيفة ضمن هذه الفئة العمرية. تنتشر الاضطرابات الصوتية بين نحو 10% من السكان وتتراوح من اضطرابات الصوت التوترية العضلية إلى اضطرابات النطق واللغة.
علي بن عبد العزيز الشبل عالم دين سعودي، اسمه علي بن عبد العزيز بن علي الشبل، وهو ابن الشيخ عبد العزيز الشبل الذي كان يعمل مدرسا في الحرم النبوي في المدينة المنورة، تحصل الشبل على البكالوريوس من جامعة الإمام محمد بن سعود الإسلامية قسم العقيدة كلية أصول الدين عام 1411 هـ، ثم تحصل على الماجستير من الجامعة نفسها عام 1418 هـ، وبعدها على دكتوراه ومن الجامعة نفسها عام 1422 هـ، يعمل الشبل أستاذا مشاركا بكلية أصول الدين قسم العقيدة بجامعة الإمام محمد بن سعود الإسلامية بالرياض.
درس الشبل على مجموعة من العلماء كان أبرزهم:
مما ألفه علي الشبل مايلي من مؤلفات:
وقد قام بتحقيق عدد من الكتب منها:
أبو العباس أحمد بن محمد بن مسروق الطوسي، أحد علماء أهل السنة والجماعة ومن أعلام التصوف السني في القرن الثالث الهجري، وصفه بأنه «من قدماء مشايخ القوم وجلّتهم»، ووصفه الذهبي بـ «الشيخ الزاهد الجليل الإمام شيخ الصوفية». أصله من أهل طوس وسكن بغداد وصحب الحارث المحاسبي، والسري السقطي، ومحمد بن منصور الطوسي، ومحمد بن الحسين البُرجلاني. أسند الحديث، فروى عن علي بن الجعد، وخلف بن هشام، وأحمد بن حنبل، وعلي بن المديني، ومن بعدهم. وروى عنه: أبو بكر الشافعي، وجعفر الخلدي، وحبيب القزاز، ومخلد الباقرحي، وابن عبيد العسكري، وأبو بكر الإسماعيلي، وآخرون.
يُروى أن الجنيد قد رأى في منامه رؤيا يقول فيها: «فرأيت قومُا من الأبدال في المنام فقلت: ببغداد أحد من الأولياء؟ قالوا: نعم، أبو العباس بن مسروق، فقلت متعجبًا: أبو العباس بن مسروق؟ فقالوا: نعم أبو العباس بن مسروق من أهل الأنس بالله عز وجل».
توفي أبو العباس بن مسروق يوم الأحد 10 صفر سنة 298 هـ وقيل 299 هـ ودفن في مقابر باب حرب وبلغ أربعًا وثمانين سنة.
سلسلة ميلينيوم (بالإنجليزية: Millennium) هي سلسلة من روايات الجريمة الأكثر مبيعاً والحائزة على عدة جوائز للكاتب السويدي ستيج لارسون .الشخصيتان الأساسيتان في الروايات هما ليزبيث سالاندر ،وهي امرأة ذكية غريبة الأطوار عندها القدرة على اختراق أجهزة الكمبيوتر، غير اجتماعية وتمتلك ذاكرة صورية، وميكائيل بلومكفيست وهو صحفي استقصائي وناشر لمجلة تسمى ميلينيوم وله تاريخ يشبه تاريخ لارسون.
كان لارسون يخطط لكتابة عشرة أجزاء من هذه السلسلة، لكنه أكمل ثلاثة فقط قبل وفاته المفاجئة في عام 2004. وقد نُشرت الروايات الثلاثة جميعها بعد وفاته : الفتاة ذات وشم التنين في عام 2005 ، والفتاة التي لعبت بالنار في عام 2006 ، والفتاة التي ركلت عش الدبابير في عام 2007. طُبعت روايات لارسون في الأصل باللغة السويدية من قبل دار نورستيدس فورلاج للنشر، أما الطبعات الإنجليزية فقد نُشرت من قبل دار كويركوس للنشر في المملكة المتحدة ودار ألفريد أ. كنوبف للنشر في الولايات المتحدة حيث قام بترجمتها من السويدية ستيفن "ريج كيلاند" تي موراي. ومنذ ذلك الحين، استمرت ترجمة الرواية من قبل العديد من دور النشر في أكثر من 50 دولة. وبحلول مارس 2015 كان قد بيع نحو 80 مليون نسخة من الروايات الثلاثة الأولى في جميع أنحاء العالم.
في عام 2013 ، كلفت دار نورستيدس فورلاج للنشر الكاتب والصحفي الجنائي السويدي ديفيد لاجيررانتز بمواصلة كتابة سلسلة ميلينيوم باستخدام نفس الشخصيات التي ابتدعها لارسون. نُشرت رواية لاجيررانتز الأولى في السلسلة بعنوان الفتاة في شبكة العنكبوت في عام 2015. وتبع ذلك رواية آخرى بعنوان الفتاة التي تأخذ عينا مقابل عين في عام 2017. ونشرت روايته الثالثة الفتاة التي عاشت مرتين في أغسطس عام 2019. ومع صدور الروايتين الأولى والثانية لـ ديفيد لاجيررانتز، بيع من سلسلة ميلينيوم بحلول مايو 2019 أكثر من 100 مليون نسخة حول العالم، مما يجعلها واحدة من أفضل الروايات مبيعًا في التاريخ.
ذكر العديد من أصدقاء لارسون بعد وفاته إن شخصية ليزبيث سالاندر (الشخصية الأساسية في رواياته) نشأت من حادثة شاهد فيها لارسون (الذي كان مراهق في حينها) ثلاثة من أصدقائه يغتصبون بشكل جماعي فتاة يعرفها اسمها ليزبيث ولم يفعل لارسون شيئًا للدفاع عن الفتاة. بعد أيام وبعد أن شعر بالذنب، توسل إليها لكي تسامحه على ما فعل إلا أنها رفضت. قال لارسون إن الحادث ظل يطارده لسنوات بعد ذلك، ودفعه جزئيًا لخلق شخصية باسمها والتي كانت أيضًا إحدى الناجيات من الاغتصاب في رواياته. تم التشكيك في صحة هذه القصة بعد أن صرح أحد أصدقاء لارسون لمجلة رولينغ ستون أن لارسون أخبره أنه سمع القصة من شخص ما وأعاد سردها على أنها حصلت معه.
في المقابلة التلفزيونية الوحيدة التي تحدث فيها عن سلسلة الروايات، ذكر لارسون أنه ابتدع شخصية ليزبيث من الشخصية الكرتونية بيبي ذات الجورب الطويل حيث كان يتخيلها كفتاة بالغة. مصدر آخر للإلهام كان ابنة أخت لارسون "تيريز" التي كانت مراهقة متمردة، وغالبًا ما كانت ترتدي الملابس السوداء وتضع مساحيق التجميل وأخبرته عدة مرات أنها تريد الحصول على وشم على شكل تنين. كان لارسون يراسلها غالبًا بالبريد الإلكتروني أثناء كتابته للروايات ليسألها عن حياتها وكيف سيكون رد فعلها في مواقف معينة.
محرر جديد.
في ديسمبر عام 2013 ، أعلنت دار نورستيدس فورلاج للنشر أن الرواية الرابعة من سلسلة ميلينيوم سيتم نشرها في أغسطس 2015 وسيقوم ديفيد لاجيررانتز بكتابتها، وهو كاتب سويدي مشهور ويُعرف بأنه كاتب سيرة لاعب كرة القدم السويدي زلاتان إبراهيموفيتش. وقد أعربت إيفا غابريلسون (صديقة ستيج لارسون) عن رفضها لهذه الفكرة، لأن الروايات التي لم تُنشر بعد كانت لا تزال بحوزتها. كان عنوان الرواية باللغة السويدية هو"Det som inte dödar oss" والذي يترجم حرفيا إلى الإنجليزية بـ " الذي لا يقتلنا". ومثل الروايات السابقة، فقد نُشرت الترجمة الإنجليزية بواسطة دار كوركيس للنشر وكانت بعنوان "الفتاة في شبكة العنكبوت" وصدرت الرواية باللغة الإنجليزية في المملكة المتحدة في 27 أغسطس وفي الولايات المتحدة في 1 سبتمبر 2015.
أما الرواية الخامسة من السلسلة فنشرت في سبتمبر 2017 وكانت أيضا من تأليف ديفيد لاجيررانتز. كان عنوان الرواية باللغة السويدية " Mannen som sökte sin skugga والذي يترجم حرفيا إلى الإنجليزية : الفتاة التي تأخذ عينا مقابل عين .
في عام 2017 ، صرح ديفيد لاجيررانتز بأنه سيكتب رواية واحدة أخرى فقط من هذه السلسلة . وفي 22 أغسطس عام 2019 قام لاجيررانتز بنشر الرواية السادسة والأخيرة من السلسلة وكانت بعنون " الفتاة التي عاشت مرتين"
أعمال لارسون الغير منشورة.
كتب لارسون مخطوطة غير مكتملة لرواية أخرى في السلسلة قبل وفاته المفاجئة في نوفمبر 2004. تحتفظ صديقته إيفا غابريلسون بالمخطوطة على جهاز كمبيوتر محمول، لكنها لا تملك حقوق الاحتفاظ بأعمال لارسون. في الوقع لم يتزوج لارسون أبدًا صديقته إيفا غابريلسون لأنه أراد أن يحميها من الأشخاص الذين كان يحقق معهم في حياته (النازيون الجدد والعنصريون السويديون) . كتب لارسون وصية ولكن لم يكن عليها شهود مما جعلها باطلة بحسب القانون السويدي. وبالتالي، فإن عائلته هي فقط من ترثه ولها حقوق نشر أعماله. من المحتمل أيضًا وجود مخطوطات لرواية خامسة وسادسة من السلسلة.
في عام 2010 ، عرض صديق لارسون جون هنري هولمبرج على وكالة أسوشيتد برس رسائل بريد إلكتروني تلقاها من لارسون قبل وقت قصير من وفاته ذُكر فيها أن لارسون يخطط لكتابة رواية آخرى في السلسلة. كتب لارسون في واحدة من رسائل البريد الإلكتروني: "تم تحديد قطعة الأرض على بعد 120 كيلومترًا شمال ميناء ساكس ، في جزيرة بانكس في شهر سبتمبر ... وفقًا للملخص يجب أن تكون 440 صفحة."
وصفت إيفا غابريلسون المخطوطة التي بحوزتها على أنها تحتوي ما يقرب من 200 صفحة وعنوانها "انتقام الآلهة" وهي مكتملة بنسبة 30٪ ولا تستحق النشر بشكلها الحالي. في عام 2011 ، قالت إيفا غابريلسون : "لقد عَرضت ذات مرة أن أنهيها، ولكنني لا أمتلك الحقوق القانونية للقيام بذلك، ولم يرغبوا في إعطائي هذه الحقوق، لذلك أعتقد أننا يجب أن نكون جميعًا سعداء بوجود ثلاثة روايات فقط". وقبل أشهر فقط، قال زميل لارسون السابق كوردو باكسي إن إيفا غابريلسون قد عرضت عليه المخطوطة هو ووالد لارسون بعد وقت قصير من وفاة لارسون وأن المخطوطة كانت تحتوي على 260 صفحة في ذلك الوقت ومكتملة بنسبة 70٪ . ووصف المخطوطة بأنها الخامسة في السلسلة التي تدور أحداثها "بين أيرلندا والسويد والولايات المتحدة" وتظهر فيها شخصية "كاميلا" الشقيقة التوأم لـ ليزبيث سالاندر . كان كوردو باكسي معارضا لقيام شخص آخر بإكمال كتابة الرواية معتقدا بأن الكاتب لن يكون قادرا على اتباع نفس أسلوب وطريقة ستيج لارسون.
حصلت الرواية الأولى على جائزة جلاس كي السويدية في عام 2006 ، وفي نفس العام فازت الرواية الثانية بجائزة أفضل رواية جريمة سويدية، وفي عام 2008 فازت الرواية الثالثة أيضًا بجائزة جلاس كي. في عام 2012 في اليابان ، تم تصنيف سلسلة ميلينيوم في المرتبة الثانية عشرة كأفضل سلسة ألغاز. بحلول مايو 2010 ، تم بيع 27 مليون نسخة من الرواية في جميع أنحاء العالم، وهو الرقم الذي وصل إلى أكثر من 46 مليونًا خلال الأشهر الخمسة اللاحقة ، وإلى 65 مليونًا في ديسمبر 2011. في يوليو 2010 ، أصبح لارسون أول مؤلف يبيع مليون نسخة إلكترونية من عمله على أمازون كيندل. ووصلت المبيعات إلى 75 مليون نسخة في جميع أنحاء خمسين دولة بحلول ديسمبر 2013 ، و 80 مليونًا بحلول مارس 2015. أما الرواية الأولى والثانية التي كتبها ديفيد لاجيررانتز فقد حققت مبيعات تجاوزت مليون نسخة في 47 دولة بحلول مايو 2019 ، مما زاد إجمالي مبيعات سلسلة ميلينيوم إلى أكثر من 100 مليون نسخة حول العالم.
أفلام مقتبسة من السلسلة.
أفلام أمريكية.
تعاونت شركات و مترو غولدوين ماير مع شركة كولومبيا بيكتشرز لإنتاج فيلم باللغة الإنجليزية من الرواية الأولى (الفتاة ذات وشم التنين). كتب سيناريو الفيلم ستيفن زيليان وهو من أخراج ديفيد فينشر وإنتاج سكوت رودين وبطولة دانيال كريغ (بدور ميكائيل بلومكفيست) وروني مارا (بدور ليزبيث سالاندر).
في 4 نوفمبر 2015 ، أُعلن أن فيلما عن رواية (الفتاة في شبكة العنكبوت ) قيد الإعداد وأن كريج ومارا لن يشاركا في بطولة الفيلم . أنتج الفيلم في النهاية وكان من إخراج فيدي ألفاريز وبطولة النجمة كلير فوي بدور سالاندر وسفيرير جودناسون بدور بلومكفيست.
علم الأحياء الدقيقة الطبي يعدّ فرع من فروع الطب والأحياء الدقيقة التي تتعامل مع الأحياء الدقيقة والتي تتضمن البكتيريا والفيروسات والطفيليات والفطريات التي تكون مهمة طبياً ولها القدرة على احداث الأمراض في الكائن البشري. آلية حدوث المرض وانتشار المرض تكون لها صلة بدراسة علم المناعة وعلم الأمراض. في المختبرات الطبية، يكون أخصائي الأحياء الدقيقة يعمل أيضاً في قسم الطفيليات. النظام يتضمن اربع نقاط رئيسية من الأنشطة:
بالإضافة لهذه الأنشطة، يكون للأخصائيين أيضاً دور في التعليم والبحث.
لمعرفة طبيعة الميكروبات الممرِضة، تم تطوير علم الامصال. عبر تطور التطعيمات ضد الكائنات الغازية للجسم كشلل الأطفال والسل..
تعليم الأحياء الدقيقة السريرية.
يمكن للأطباء أن يشاركوا في زمالة تدريب الأحياء الدقيقة الطبية التي تكون معتمدة بواسطة Accreditation Council for Graduate Medical Education (ACGME) بعد إكمال التدريب في علم الأمراض. أما الأشخاص غير الأطباء فيمكنهم الدخول في برنامج Committee on Postgraduate Educational Programs (CPEP). وهنالك 12 مستشفى في الولايات المتحدة توفر التدريب :-
وفقاً لـ Accreditation Council for Graduate Medical Education (ACGME) ,جامعة بنسيلفينا لم تعد تقدم هذا التدريب. وجامعة شيكاغو تقدم هذا التدريب الآن. ولكنه غير متوفر على شبكة الإنترنت.
هذا التدريب يتضمن علم الأمراض السريري والتي يتم اختياره مع نهاية أول سنتين.
المحلل اللغوي LL LL parser
محلل LL هو محلل من أعلى إلى أسفل تصميم أعلى أسفل وأسفل أعلى لمجموعة فرعية من قواعد السياق الحرcontext-free grammar]]s]] فإنه يقوم بتحليل المدخلات من اليسار إلى اليمين، ويبني الاستخلاص أقصى اليسار من الجملة (وبالتالي محلل LL، مقارنة مع محللLR). فئة القواعد التي تحلل على النحو هذا يقال عليه قواعد LL.
ما تبقى من هذه المقالة يصف نوع الجدول الذي يستند إليه المحلل، والبديل هو محلل نزول تكراريالترميز التكراري النموذجي الذي يتم ترميزه عادة باليد (وإن لم يكن دائما، وانظر على سبيل المثال ANTLR لـ (*)LL مولد محلل نزول تكراري).
ويسمى محلل LL محلل (k) LL إذا كان يستخدم الرموز K للاستباق عند تحليل الجملة. إذا كان هذا المحلل موجود لقواعد معينة، ويمكنه تحليل جمل هذه القواعد بدون تراجع فهو يسمى قواعد LL(k). اللغة التي لديها قواعد LL(k) تسمى لغة LL(k). وهناك لغات LL(k+n) التي ليست لغات LL(k). [1] والنتيجة لذلك هو أن ليس كل لغات السياق الحر هي لغات LL(k).
قواعد [[LL (1) LL(grammars شعبية جدا لأن المحلل LL المقابل يحتاج فقط لإلقاء نظرة على الرمز التالي لاتخاذ قرارات التحليل. الغات التي تستند إلى قواعد مع قيمة مرتفعة من k اعتبرت تقليديا [who?] [من?] صعبة التحليل، رغم أن هذا يعتبر نوعا ما غير صحيح الآن، نظرا لتوافر والتوسع في نطاق الاستخدام [citation needed] لمولدات المحلل الذي يدعم قواعد LL(k) لـ k الأعتباطى.
ويسمى محلل LL محلل (*)LL محلل إذا لم يقتصر على الرموز K للاستباق، ولكن يمكنه اتخاذ قرارات التحليل عن طريق التعرف على ما إذا كانت الرموز التالية تنتمي إلى لغة عادية (على سبيل المثال عن طريق استخدام أوتوماتيكية محدودة القطعية.
و هناك خلاف بين "المدرسة الأوروبية" لتصميم اللغة، والذين يفضلون الاستناد على قواعد LL، وبين " مدرسة الولايات المتحدة "، الذين يفضلون في الغالب الاستناد على قواعد [[LR. [[citation needed]] وهذا يرجع إلى حد كبير لتقاليد التدريس وتفاصيل وصف أساليب وأدوات في بعض الكتب المدرسية ؛ التأثير الآخر قد يكون نيكلاوس ويرث في أي تي أتش زيوريخ في سويسرا، الذي بحوه وصف عدد من الطرق لتحسين لغات ومترجمينLL(1)..
المحلل يعمل على سلاسل من قواعد السياق الحر[[قواعد خالية من السياق]].
المحلل يتكون من
المحلل يطبق الحكم الذي يجده في الجدول عن طريق مطابقة الرمز أعلى المكدس (صف) مع الرمز الحالي في تدفق المدخلات (العمود).
عندما يبدأ محلل، المكدس يحتوي بالفعل على رمزين :
[ S, $ ]
حيث '$' هو محطة طرفية خاصة للإشارة إلى أسفل المكدس ونهاية تدفق المدخلات، و'S' هو رمز البداية للقاعدة. المحلل سوف يحاول إعادة كتابة محتويات هذا المكدس على ما يراه على تدفق المدخلات. ومع ذلك، فإنه يحتفظ فقط في مكدس على ما هو ما زال بحاجة إلى إعادة صياغة.
لتفسير كيف يعمل، سوف ننظر للقاعدة الصغيرة التالية :
ونقوم بتحليل المدخلات التالية :
جدول التحليل لهذه القواعد تبدو على النحو التالي :
(لاحظ أن هناك أيضا عمود للمحطة الطرفية الخاصة، الممثلة هنا بـ $، التي تستخدم لتشير إلى نهاية تدفق المدخلات.)
خطوات التحليل.
في كل خطوة، المحلل يقرأ الرمز المتاحة التالي من تدفق المدخلات، وأعلى رمز من المكدس. إذا كان رمز المدخلات والرمز أعلى المكدس متطابقان، محلل سوف يتجاهلهم على حد سواء، ويبقي على الرموز التي لا متطابقة في تدفق المدخلات وعلى المكدس.
وهكذا، في الخطوة الأولى، المحلل يقرأ رمز الإدخال ')' والرمز أعلى المكدس'S'. تعليمات جدول التحليل تأتي من العمود الذي على رأسه رمز الإدخال ')' والصف الذي على رأسه المكدس الذي أعلاه 'S'؛ هذه الخلية تحتوي '2"الذي يوجه المحلل لتطبيق القاعدة (2) ويجب على المحلل إعادة كتابة. 'S' إلى '(S + F)' على المكدس ويكتب القاعدة رقم 2 على المخرجات والمكدس سوف يصبح هكذا :
[ (, S, +, F, ), $ ]
حيث الرمز '(' من تدفق المدخلات لم يتطابق مع الرمز الأعلى، 'S'، من المكدس، لم يتم إزالته، ويبقى الرمز المتاح المقبل في المدخلات للخطوة التالية.
في الخطوة الثانية، المحلل يزيل ')' من تدفق مدخلاته ومن المكدس، نظرا لأنها متطابقة يصبح المكدس الآن :
[ S, +, F, ), $ ]
الآن المحلل عنده 'a' على تدفق مدخلاته و's' في أعلى المكدس. جدول التحليل يرشد إلى تطبيق القاعدة (1) من قواعد اللغة وكتابة القاعدة رقم 1 إلى تدفق الإخراج. المكدس يصبح :
[ F, +, F, ), $ ]
الآن المحلل عنده 'a' على تدفق مدخلاته و'f' في أعلى المكدس. جدول التحليل يرشد إلى تطبيق القاعدة (3) من قواعد اللغة وكتابة القاعدة رقم 3 إلى تدفق الإخراج. المكدس يصبح ::
[ a, +, F, ), $ ]
في الخطوتان المقبلتان المحلل يقرأ 'a' و'+ من jدفق المدخلات و، نظرا لأنهما متطابقان فالبندين التاليين على المكدس، يزيلهما أيضاً من المكدس وهذا ينتج:
[ F, ), $ ]
في الخطوات الثلاث القادمة سوف يقوم المحلل باستبدال ' F' على مكدس بـ ' a' ،و يكتب القاعدة رقم 3 إلى تدفق الإخراج وإزالة 'a' و')' من كلا من المكدس وتدفق المدخلات. وبذلك ينتهي المحلل بـ '$' على حد سواء في مكدس وتدفق المدخلات.
في هذه الحالة المحلل سوف يقوم بعمل التقرير إلى أنه وافق على سلسلة المدخلات ويكتب القائمة التالية من عدد القواعد إلى تدفق الإخراج :
هذا في الواقع هو قائمة من القواعد للاستخلاص أقصى اليسار[[قواعد خالية من السياق]] من سلسلة المدخلات، والتي هي كالتالي:
تنفيذ المحلل في C++.
ما يلي يتبع تنفيذ C++ على أساس جدول محلل LL للغة في المثال التالي :
enum Symbols {
// the symbols:
// Terminal symbols:
TS_L_PARENS, // (
TS_R_PARENS, //)
TS_A, // a
TS_PLUS, // +
TS_EOS, // $, in this case corresponds to '\0'
TS_INVALID, // invalid token
// Non-terminal symbols:
NTS_S, // S
NTS_F
Converts a valid token to the corresponding terminal symbol
enum Symbols lexer(char c)
switch(c)
case '(':
return TS_L_PARENS;
case ')':
return TS_R_PARENS;
case 'a':
return TS_A;
case '+':
return TS_PLUS;
case '\0': // this will act as the $ terminal symbol
return TS_EOS;
default:
return TS_INVALID;
if (argc &lt; 2)
cout « "usage:\n\tll '(a+a)'" « endl;
map&lt; enum Symbols, map&lt;enum Symbols, int&gt; &gt; table; // LL parser table, maps &lt; non-terminal, terminal&gt; pair to action
stack&lt;enum Symbols&gt; ss; // symbol stack
char *p; // input buffer
// initialize the symbols stack
ss.push(TS_EOS); // terminal, $
ss.push(NTS_S); // non-terminal, S
// initialize the symbol stream cursor
p = &amp;argv[1][0];
// setup the parsing table
table[NTS_S][TS_L_PARENS] = 2; table[NTS_S][TS_A] = 1;
table[NTS_F][TS_A] = 3;
while(ss.size() &gt; 0)
if(lexer(*p) == ss.top())
cout « "Matched symbols: " « lexer(*p) « endl;
ss.pop();
cout « "Rule " « table[ss.top()][lexer(*p)] « endl;
switch(table[ss.top()][lexer(*p)])
case 1: // 1. S → F
ss.push(NTS_F); // F
case 2: // 2. S → (S + F)
ss.push(TS_R_PARENS); //)
ss.push(TS_PLUS); // +
ss.push(NTS_S); // S
ss.push(TS_L_PARENS); // (
case 3: // 3. F → a
ss.push(TS_A); // a
cout « "parsing table defaulted" « endl;
cout « "finished parsing" « endl;
وكما يتبين من المثال أن المحلل اللغوي ينفذ ثلاثة أنواع من الخطوات اعتمادا على ما إذا كان الجزء العلوي من المكدس محطة غير طرفية أو طرفية أو رمز خاص $ :
وتتكرر هذه الخطوات حتى يتوقف المحلل، وبعد ذلك سوف تكون النتيجة إما أن تحليل المدخلات تم ويكتب الاستنتاج أقصى اليسار إلى تدفق الإخراج أو سيفيد أن هناك خطأ حدث.
بناء جدول المحلل LL(1).
من أجل ملء جدول التحليل، يجب علينا ان نقرر القاعدة التي يجب أن يختارها المحلل إذا رأى المحطة الغير طرفية A أعى المكدس من ورمزa على تدفق المدخلات. فمن السهل أن نرى أن هذه القاعدة ينبغي أن تكون على شكل A → w واللغة الموافقة ل w يجب أن يكون لديها على الأقل سلسلة واحدة تبدءا من a لهذا الغرض نحدد أول مجموعة من w، كتبت هنا Fi(w)، كمجموعة من المحطات الطرفية التي يمكن العثور عليها في بداية أي سلسلة فيw، بإضافة ε إذا كانت السلسلة الفارغة أيضا تنتمي إلى w يعطى القواعد مع الأحكام A1 → w1..., An → wn، يمكننا حساب Fi(wi) وFi(Ai) لكل قاعدة كما يلي:
1. نبدأ كلFi(wi) وFi(Ai) مع المجموعة الفارغة
2. نضيف Fi(wi) على Fi(Ai) لأي حكم Ai → wi، حيث Fi يتم تعريفها على النحو التالي :
o Fi(a w') = { a } for every terminal a لكل محطة طرفية
o Fi(A w') = Fi(A) for every nonterminal A with ε not in Fi(A) لكل محطة طرفية a مع ε ليست في
o Fi(A w') = Fi(A) \ { ε } ∪ Fi(w') for every nonterminal A with ε in Fi(A) لكل محطة غير طرفية aمع ε في
3. أضف Fi(wi) إلى Fi(Ai) لكل قاعدة Ai → wi
4. كرر الخطوات 2 و3 حتى كافة مجموعات Fi تبقى متساوية.
وللأسف، فإن المجموعات الأولى ليست كافية لحساب جدول التحليل، لأن الجزء اليمين w من القاعدة قد يكتب أخيراً لسلسلة فارغة. لذلك فإن المحلل ينبغي أن يستخدم القاعدة A → w إذا ε في Fi(w) وترا على تدفق الإدخال الرمز الذي يمكن أن يتبع a ولذلك نحن بحاجة أيضا المجموعة التابعة لـ A، تكتب هنا Fo(A)، التي تعرف على أنها مجموعة من المحطات الطرفية a ومن هذا القبيل هناك سلسلة من الرموز αAaβ التي يمكن استخلاصها من رمز البداية. ويمكن أن يتم احتساب المجموعات التابعة للمحطات الغير طرفية في القواعد على النحو التالي :
1. نبدأ كل Fo(Ai) مع المجموعة الفارغة
2. إذا كان هناك قاعدة للنموذج Aj → wAiw'، إذا
* إذا كانت المحطة الطرفية a في Fi(w')، قم بإضافة a إلى Fo(Ai)
* إذا كانت ε في Fi(w')، قم بإضافة a إلى Fo(Ai)
3. كرر الخطوة 2 حتى كل مجموعات Fo تبقى متساوية.
الآن يمكن أن نحدد بالضبط أي القواعد التي سوف ترد في جدول التحليل. إذا T[A, a] تشير إلى الدخول في الجدول لمحطة غير طرفية A وطرفية a، إذا
T[A،a]يحتوي على مادة A → w إذا وفقط إذا كانت
a في Fi(w) أو
ε في Fi(w) وFo(A)
إذا كان الجدول يحتوي على قاعدة واحدة على أكثر في كل خلية من خلاياه، إذا المحلل سوف يعرف دائما أي قاعدة يجب أن يستخدمها وبالتالي يمكن تحليل السلاسل بدون تراجع. في هذه الحالة على وجه التحديد القاعدة تسمى قاعدة LL(1).
بناء جدول تحليل LL(k).
حتى منتصف التسعينات، وكان يعتقد على نطاق واسع أن LL(k) تحليل لـ (k &gt; 1) كان غير عملياً [citation needed]، إذ أن جدول التحليل سيكون حجمه هائل في k في أسوأ الأحوال. وهذا المفهوم تغيير تدريجيا بعد إصدار PCCTS في حوالي عام 1992، عندما اتضح أنه يمكن تحليل العديد من لغات البرمجة بكفاءة من خلال المحلل LL(k) من دون التسبب في أعمال أسوأ الحالات للمحلل اللغوي. وعلاوة على ذلك، في بعض حالات تحليل LL مجدية حتى مع الاستباق غير المحدود. على النقيض من ذلك، مولدات المحلل التقليدي، مثل [[ياك (برنامج)|yacc]] يستخدم جدول تحليل LALR(1) لبناء محلل LR المقيد مع استباق رمز ثابت واحد.
التعارضات.
كما هو موضح في المقدمة، [[محللات]](1) LL تتعرف على اللغات ذات قواعد(1) LL، والتي هي حالة خاصة من قواعد السياق الحر (CFG's)؛ محللات(1) LL لا يمكن أن تتعرف على كل لغات السياق الحر. لغات(1) LLهي بالضبط تلك التي يتم التعرف عليها بتأكيدية التشغيل الذاتي التنازلى deterministic pushdown automata الذي يقتصر على حالة واحدة. من أجل [[CFG]] أن تكون قاعدة (1) LL، يجب أن لا تنشأ تعارضات معينة، التي وصفناها في هذا القسم.
لتكونA محطة غير طرفية. أولاً A (تعرف لتكون) مجموعة من المحطات الطرفية التي يمكن أن تظهر في المركز الأول لأي سلسلة مستمدة من A. يتبع (A) الاتحاد الفوقي أولاً (B) حيث B هي أي محطة غير طرفية التي تليA مباشرة في الجانب الأيمن من قاعدة الإنتاج.
التعارضات LL(1).
هناك 3 أنواع من تعارضات LL(1) :
أول مجموعات من تقاطع محطتين غير طرفيتين مختلفتين.
المجموعة الأولى والمجموعة التابعة للقواعد المتداخلة. مع ابسيلون في المجموعة الأولى وهو غير معروف أي بديل تختار.
مثال على تعارض LL(1):
S -&gt; A 'a' 'b'
A -&gt; 'a' | epsilon
المجموعة الأولى من A الآن { 'a' epsilon } والمجموعة التابعة { 'a' }.
و التكرار من اليسار سوف يسبب تعارض أول / أول مع جميع البدائل.
E -&gt; E '+' term | alt1 | alt2
الحلول لتعارضات LL(1).
عامل يسار مشترك يكون خارج الحسبان مثل 3x + 3y = 3(x+y).
A -&gt; X | X Y Z
يصبح
A -&gt; X B
B -&gt; Y Z | ε
يمكن تطبيقه عندما يبدأ بديلين بنفس الرمز مثل تعارض أول/أول
استبدال قاعدة مكان قاعدة أخرى لإزالة غير مباشرة أو تعارض الأولى / التالي. لاحظ أن هذا قد يؤدي إلى تعارض الأول/ أول.
مثال بسيط لإزالة التكرار من اليسار قاعدة الإنتاج التالية تركت التكرار على E
E -&gt; E '+' T
-&gt; T
هذه القاعدة ليست سوى مجموعة من الـ T منفصلة بـ '+' في شكل تعبير عادي T ('+' T)* لذا يمكن إعادة كتابة الحكم هكذا
E -&gt; T Z
Z -&gt; '+' T Z
-&gt; ε
الآن لا يوجد أي تكرار من اليسار ولا تعارضات على أي من القواعد.
ومع ذلك، ليس كل CFGs لديها قواعد مساوية لـقواعد LL(k)، على سبيل المثال :
S -&gt; A | B
A -&gt; 'a' A 'b' | ε
B -&gt; 'a' B 'b' 'b' | ε
ويمكن أن نتبين أن ليس هناك أي قاعدة LL(k)، تقبل اللغة المولدة بهذه القاعدة.
[[تصنيف:توزيع الخوارزميات]]
[[تصنيف:علم الحاسوب]]
[[تصنيف:نظرية المترجم]]
يعد GQM، وهو اسم تاجي لمصطلحات "goal. question, metric" أي (الهدف، السؤال، المقياس)، عبارة عن توجه خاص بمقاييس البرامج قام بالترويج له فيكتور باسيلي في جامعة ماريلاند ، كوليدج بارك ومعمل هندسة البرامج في مركز جودارد لأبحاث الفضاء في وكالة ناسا بعد الإشراف على أطروحة الدكتوراة المقدمة من د. ديفيد م ويس. وكانت أعمال د. ويس مستوحاة من أعمال ألبرت إندريس في شركة IBM بألمانيا.
يُحدد توجه GQM طراز القياس على ثلاثة مستويات:
يتم تعريف الهدف لأي أمر لعدة أسباب، فيما يتعلق بطرز متنوعة من الجودة، ومن عدة وجهات نظر، وفيما يتعلق ببيئة معينة.
يتم استخدام مجموعة من الأسئلة لتحديد الالطرز لهدف الدراسة ثم تركز على هذا الهدف لتحديد خصائص التقييم أو إنجاز هدف معين.
ترتبط مجموعة من المقاييس، استنادًا إلى الطرز، بكل سؤال لتتم الإجابة عليه بطريقة قابلة للقياس.
تصف المستندات المفتوحة في العادة التوجه GQM في عملية سداسية الخطوات تدور الثلاث خطوات الأولى منها حول استخدام الأهداف التجارية للدفع باتجاه تحديد المقاييس الصحيحة بينما تدور الثلاث خطوات الأخيرة حول جمع بيانات القياس وتحقيق الاستخدام الفعال لنتائج القياس لدفع عملية اتخاذ القرار والتحسينات. وقد وصف باسيلي عملية GQM سداسية الخطوات على النحو التالي:
تعد قوالب GQM طريقة منظمة لتحديد الأهداف. ويشتمل قالب GQM على الحقول التالية:
إليك مثال على تطبيق قالب GQM للتعبير عن هدف دراسة هندسة البرامج:
يتمثل الغرض من هذه الدراسة في تحديد خصائص تأثير برمجة النظير على جهد المبرمج وجودة البرنامج من وجهة نظر مديري البرامج في سياق شركة تطوير شبكات صغيرة.
على الرغم من أن التوجه GQM قد خدم صناعة البرامج على نحو جيد لعقود، إلا أنه لم يقدم دعمًا واضحًا لدمج طراز قياس البرنامج مع عناصر المؤسسة الأكبر، مثل إستراتيجيات وأهداف الشركة على مستوى أعلى. وكان فيكتور باسيلي قد وضع إستراتيجيات GQM+]]
برفقة مجموعة من الباحثين من معهد فراونهوفر وذلك استنادًا إلى نموذج مقياس سؤال الأهداف كما يضيف القدرة على إنشاء برامج قياس لضمان المحاذاة بين أهداف وإستراتيجيات الأعمال والأهداف الخاصة بالبرامج وأهداف القياس.
تأسست بلدية الطائف عام 1357 هـ، وتتلخص أعمال البلدية كافة في القيام بأعمال النظافة للمحافظة والقرى والمراكز التابعة لها، إلى جانب الرقابة الصحية والفنية على كافة المطاعم والمحلات التجارية والمباني تحت الإنشاء ومشروعات الطرق التابعة للبلدية ومتابعة المقاولين الميدانين، بالإضافة إلى فتح واستحداث الطرق والشوارع وسفلتتها وإنارتها وتشجيرها وتجميلها وإنشاء الحدائق وتنسيقها لمرتاديها.