Goto - جوتو

Goto هو شكل من أشكال بيان الفرع أو قفزة في بعض الحالات مقترنة بضبط المكدس حيث ان Goto عبارة عن بيان موجود في العديد من لغات برمجة الكمبيوتر.

ما هو Goto

  • على مستوى كود الآلة a goto هو شكل من أشكال بيان الفرع أو قفزة في بعض الحالات مقترنة بضبط المكدس.
  • تدعم العديد من اللغات goto البيان ، والكثير لا.
  • و نظرية برنامج منظم أثبتت أن goto البيان ليس من الضروري أن برامج الكتابة التي يمكن التعبير عن الرسوم البيانية. 
  • مزيج من التركيبات البرمجية الثلاثة للتسلسل والاختيار والتكرار / التكرار كافية لأي حساب يمكن إجراؤه بواسطة آلة تورينج.
  • مع التنبيه بأن تكرار الكود والمتغيرات الإضافية قد تحتاج إلى إدخال.
  • في الماضي كان هناك جدل كبير في الأوساط الأكاديمية والصناعية حول مزايا استخدام goto البيانات.
  • كان استخدام goto شائعًا في السابق ولكن منذ ظهور البرمجة المنظمة في الستينيات والسبعينيات من القرن الماضي انخفض استخدامه بشكل كبير.
  • النقد الأساسي هو أن الكود الذي يستخدم عبارات goto يصعب فهمه أكثر من التركيبات البديلة.
  • يظل Goto قيد الاستخدام في بعض أنماط الاستخدام الشائعة ولكن يتم استخدام البدائل بشكل عام إذا كانت متوفرة.
  • تستمر المناقشات حول استخداماتها (المحدودة) في الأوساط الأكاديمية وصناعة البرمجيات.
  • GOTO أو GO TO أو مجموعات حالة أخرى اعتمادًا على لغة البرمجة عبارة عن بيان موجود في العديد من لغات برمجة 
  • الكمبيوتر.
  • يقوم بنقل التحكم في اتجاه واحد إلى سطر آخر من التعليمات البرمجية على النقيض من ذلك عادة ما تعيد استدعاء الوظيفة التحكم.
  • عادةً ما يتم تحديد مواقع الانتقال السريع باستخدام الملصقات على الرغم من أن بعض اللغات تستخدم أرقام الأسطر.

أنماط الاستخدام الشائعة لي Goto

بينما انخفض الاستخدام العام لـ gotos لا تزال هناك مواقف في بعض اللغات حيث يوفر goto أقصر الطرق وأكثرها مباشرة للتعبير عن منطق البرنامج بينما من الممكن التعبير عن نفس المنطق بدون gotos سيكون الرمز المكافئ أطول وغالبًا ما يصعب فهمها.

في لغات أخرى هناك بدائل منظمة لا سيما الاستثناءات والمكالمات الخلفية.

تشمل المواقف التي غالبًا ما يكون فيها الانتقال مفيدًا:

  • لجعل الشفرة أكثر قابلية للقراءة وأسهل في المتابعة.
  • لعمل برامج أصغر ، والتخلص من تكرار الكود.
  • قم بتنفيذ آلة الحالة المحدودة باستخدام جدول انتقال الحالة والانتقال للتبديل بين الحالات في غياب حذف استدعاء الذيل لا سيما في كود C الذي تم إنشاؤه تلقائيًا.
  • على سبيل المثال الانتقال إلى محلل LR الأساسي.
  • تنفيذ استراحة متعددة المستويات والاستمرار إذا لم يتم دعمها بشكل مباشر في اللغة هذا مصطلح شائع.
  • بالرغم من أن Java تحتفظ بالكلمة الأساسية goto إلا أنها لا تنفذها بالفعل.
  • بدلاً من ذلك تنفذ Java عبارات الفاصل المسماة وعبارات المتابعة المسماة.
  • وفقًا لوثائق Java كان استخدام gotos لفواصل متعددة المستويات هو الاستخدام الأكثر شيوعًا (90٪) لـ gotos.
  • لم تكن Java هي اللغة الأولى التي تتبع هذا النهج حظر الانتقال.
  • ولكن توفير فواصل متعددة المستويات – سبقتها لغة برمجة BLISS (بشكل أكثر دقة نسخة BLISS-11 منها) في هذا الصدد.
  • بدائل عبارات الفاصل أو المتابعة (إعادة المحاولة) أحادية المستوى عندما قد يؤثر الإدخال المحتمل للحلقات الإضافية بشكل غير صحيح على تدفق التحكم.
  • تم ملاحظة هذه الممارسة في كود Netbsd. 
  • معالجة الخطأ (في حالة عدم وجود استثناءات) خاصة رمز التنظيف مثل إلغاء تخصيص المورد.
  • تقدم لغة ++ C بديلاً لعبارة goto لحالة الاستخدام هذه وهي: Resource Acquisition Is Initialization (RAII) من خلال استخدام المدمرات أو استخدام استثناءات try and catch المستخدمة في معالجة الاستثناءات.setjmp و longjmp هما بديلان آخران ، ويتمتعان بميزة القدرة على فك جزء من مكدس الاستدعاءات.
  • ظهرت المكدس ، على سبيل المثال ، Algol ، PL / I.

استخدمات اخري

  • هذه الاستخدامات شائعة نسبيًا في لغة C ولكنها أقل شيوعًا في لغة C ++ أو اللغات الأخرى ذات الميزات عالية المستوى.
  • ومع ذلك ، فإن طرح استثناء والتقاطه داخل دالة يمكن أن يكون غير فعال بشكل غير عادي في بعض اللغات.
  • وخير مثال على ذلك هو Objective-C ، حيث يعد goto بديلاً أسرع بكثير.
  • استخدام آخر لتعليمات goto هو تعديل التعليمات البرمجية القديمة التي تم تحليل عواملها بشكل سيئ.
  • حيث يتطلب تجنب الأمر goto إعادة هيكلة مكثفة أو تكرار الكود.
  • على سبيل المثال نظرًا لوظيفة كبيرة حيث يكون رمزًا معينًا فقط مهمًا فإن تعليمة goto تسمح للمرء بالقفز إلى أو من الكود ذي الصلة فقط دون تعديل الوظيفة. 
  • يعتبر هذا الاستخدام رائحة كود لكنه يجد استخدامًا عرضيًا.
Other shops
1زليون - 1zillion6th Street - متجر 6ذا استريتAdidas-اديداسAliexpress - علي اكسبريسAmerican Eagle - امريكان ايجلAppSumo - ابسوموAstroLabs - استرولابBabyshop - بيبيشوبBait Al Kandora - بيت الكندوراBanggood - بانجودBath & Body Works - باث اند بديوركBloomingdales - بلومينغديلزBonanza - بونزاBrands For Less - براندزفورليسCharterClick - كارتركليكCoggles - جوجلزCotton On - كوتونوانCurrys PC World - كريس بسي ورلدDaily Mealz - دلي ميلزDhgate - ديهجيتDresslily - درسليEarly Bird - ايرلي بيردEat Easy - ايت ايزيEDX - ايدكسEmirates Holidays - امرات هوليديزeRomman - ايروميننExpandcart - اكسباند كارتFaces - فيسيسFarfetch - موقع فارفيتشFeel Unique - فيل يونيكFerns & Petals - فيرنس اند بيتلسFiverr - فيفيرFlyin - فلاينFOREO - فوريForzieri - فوريزرFrench Fragrance - فرينش فراجرانسFresh To Home - فريش تو هومG2A - جي 2 ايGap - جابGeekbuying - جيك باينجGoto - جوتوGroupon - جروبونH&M - اتش اند ام هومHarvey Nichols - هارفي نيكولاسHome Away - هوم اويHostinger - هوستنجرHotels.com - هوتلز.كومiHerb - اي هيربIpsos - ايبسوسJamalon - جاملونJenn Ardor - جين اردورJohrh - جوهراJoi Gifts - جوي جفتزKaizer Leather - كايزر ليزرKandmore - كاندموريKenzwoman - كنز ومنKkday - ككديKlook - كلوكKnawat - كينواتLensfit - لينسفيتLevel Shoes - ليفيل شوزيزLifestyle - ليف استيليLook Fantastic - لوك فانتستكLovely Wholesale - لوفلي هوليسليLuvyle - لافليMakeup Box - ميك اب بوكسMamas & Papas - مامز اند بيببزMax Fashion - ماكس فاشونMetro Brazil - مترو برازيلMezashop - ميزا شوبMicrosoft - ميكروسوفتMothercare - موقع مذركيرMr Porter - مستر بورترMy Protein - ماي بروتينNamshi - موقع نمشيNayomi - نعوميNEAT Shop - نيت شوبnew look ksa - نيولوكNewChic - نيوشيكNike - نيكNoon - نونNorton - نورتونOSN - شو تايمOud Milano - اود ميلانوOunass - موقع اناسOurShopee - اور شوبيPAT PAT - بات باتPottery Barn - بوتري برينPrintiano - برينتانوQ8 Trade - كيو8 تريدQuality Food - كولتي فودR&B - آر أند بيRed Sea - ريد سيRehlat - موقع رحلاتRental Cars - رينتل كارزRivoli Shop - ريفولي شوبRosegal - روزغالSearush - سيروشSharaf DG - شرف دي جيShein - موقع شي انShutterstock - موقع شترستوكSimply Be - سيمبلي بيSoukare - سوكاريSplash- سبلاشSprii - اسبريSsense - سيسينسStarzly - استرزليSteve Madden - موقع ستيف مادنStockX - استوكسSTYLI - استيليSwiss Arabian Perfumes - سوز اربين بريفوموTaksim Pazar - تكسيم بازارThe Body Shop - ذا بدي شوبThe Book Depository - ذا بوك ديبوستوريThe Hut - ذا هوتThe Outnet - ذا أوت نتThe Plush Posh - ذا بلش بوشThe Princeton Review - ذا برينستون رفيوTommy Hilfiger - تومي هليفجيرTOPMAN - توب مانTopshop - توب شوبTrade360 - تريد360Travelstart - ترفل استارTrip.com - تريب.كومTRUST ZONE VPN - تروست زون في بي انUbuy - موقع يوبايUdemy - موقع يوديميUFX - يو اف اكسVeepn - في بي انViator - فايتورVictoria's Secret - فيكتوريس سيكرتVip Brands - في اي بي براندزVoga Closet - فوغا كلوسيتVoyagin - فيوياجينVtamino - فيتامينوWalk London - ولك لندنWallis - وليسWALMART - ولمارتWest Elm - ويست الميناXcite - اكس ستيYOOX - يوكسZaful - ذافولZavvi - ذافيامازون Amazon
Logo
Enable registration in settings - general