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
1Zillion6th StreetAdidas-اديداسAliexpressAmerican EagleAppSumoAstroLabsBabyshopBait Al KandoraBanggoodBath & Body WorksBloomingdalesBonanzaBrands For LessCharterClickCogglesCotton OnCurrys PC WorldDaily MealzDhgateDresslilyEarly BirdEat EasyEDXEmirates HolidayseRommanExpandcartFacesFarfetchFeel UniqueFerns & PetalsFiverrFlyinFOREOForzieriFrench FragranceFresh To HomeG2AGapGeekbuyingGotoGrouponH&MHarvey NicholsHome AwayHostingerHotels.comiHerbIpsosJamalonJenn ArdorJohrhJoi GiftsKaizer LeatherKandmoreKenzwomanKkdayKlookKnawatLensfitLevel ShoesLifestyleLookFantasticLovely WholesaleLuvyleMakeup BoxMamas & PapasMax FashionMetro BrazilMezashopMicrosoftMothercareMr PorterMy ProteinNamshiNayomiNEAT ShopNew LookNewChicNikeNoonNortonOSNOud MilanoOunassOurShopeePAT PATPottery BarnPrintianoQ8 TradeQuality FoodR&BRed SeaRehlatRental CarsRivoli ShopRosegalSearushSharaf DGSheinShutterstockSimply BeSoukareSplashSpriiSsenseStarzlySteve MaddenStockXSTYLISwiss Arabian PerfumesTaksim PazarThe Body ShopThe Book DepositoryThe HutThe OutnetThe Plush PoshThe Princeton ReviewTommy HilfigerTOPMANTopshopTrade360TravelstartTrip.comTRUST ZONE VPNUbuyUdemyUFXVeepnViatorVictoria's SecretVip BrandsVoga ClosetVoyaginVtaminoWalk LondonWallisWALMARTWest ElmXciteYOOXZafulZavviامازون Amazon
عرب كوبونز
Logo
Enable registration in settings - general