Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز

ٿي سگهي ٿو، Eclipse ڪافي عرصي کان ڪنهن خاص تعارف جي ضرورت ناهي. ڪيترائي ماڻهو Eclipse جاوا ڊولپمينٽ ٽولز جي مهرباني Eclipse کان واقف آهن (جي ڊي ٽي). اهو مشهور اوپن سورس جاوا IDE آهي جنهن کي اڪثر ڊولپرز لفظ ”Eclipse“ سان ڳنڍيندا آهن. جڏهن ته، Eclipse ٻنهي ترقياتي اوزارن کي ضم ڪرڻ لاءِ هڪ وسيع پليٽ فارم آهي (Eclipse پليٽ فارم)، ۽ ان جي بنياد تي ٺهيل ڪيترن ئي IDEs، بشمول JDT. Eclipse ٻنهي Eclipse پروجيڪٽ آهي، هڪ اعليٰ سطحي پروجيڪٽ جيڪو Eclipse پليٽ فارم ۽ JDT جي ترقي کي همٿائي ٿو، ۽ Eclipse SDK، ان ترقيءَ جو حاصل ڪيل نتيجو. آخرڪار، Eclipse هڪ اوپن سورس فائونڊيشن آهي جنهن ۾ پروجيڪٽ جي هڪ وڏي برادري آهي، جيڪي سڀئي جاوا ۾ لکيل نه آهن يا ترقياتي اوزار سان لاڳاپيل آهن (مثال طور، منصوبا Eclipse IoT и Eclipse سائنس). Eclipse جي دنيا تمام متنوع آهي.

هن آرٽيڪل ۾، جيڪو فطرت ۾ هڪ جائزو آهي، اسان ايڪليپس آرڪيٽيڪچر جي ڪجهه بنيادي ڳالهين کي ڏسڻ جي ڪوشش ڪنداسين جيئن هڪ پليٽ فارم جي طور تي انٽيگريٽيڊ ڊولپمينٽ اوزارن جي تعمير لاءِ ۽ هڪ ابتدائي خيال ڏينداسين Eclipse اجزاء جو جيڪو ٽيڪنالاجي جو بنياد بڻجي ٿو. پليٽ فارم "نئين ترتيب ڏيڻ وارو" 1C: انٽرپرائز. 1C: انٽرپرائز ڊولپمينٽ جا اوزار. يقينن، اهڙو جائزو ناگزير طور تي گهڻو ڪري سطحي ۽ بلڪه محدود هوندو، جنهن ۾ شامل آهي ڇو ته اسان نه صرف ايڪليپس ڊولپرز تي ٽارگيٽ سامعين جي طور تي ڌيان ڏئي رهيا آهيون. بهرحال، اسان کي اميد آهي ته اڃا به تجربا Eclipse ڊولپرز مضمون ۾ دلچسپ معلومات ڳولڻ جي قابل هوندا. مثال طور، اسان هڪ "گرھڻ جي راز" جي باري ۾ ڳالهائينداسين، هڪ نسبتا نئين ۽ گهٽ ڄاڻايل پروجيڪٽ. Eclipse handly، جيڪو 1C پاران قائم ۽ سپورٽ ڪيو ويو.
Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز

Eclipse آرڪيٽيڪچر جو تعارف

اچو ته پھريون مثال استعمال ڪندي Eclipse فن تعمير جي ڪجھ عام پهلوئن تي نظر رکون Eclipse Java ڊولپمينٽ جا اوزار (جي ڊي ٽي). مثال طور JDT جو انتخاب حادثاتي نه آهي. Eclipse ۾ ظاهر ٿيڻ لاءِ هي پهريون مربوط ترقي وارو ماحول آهي. ٻيا *DT Eclipse پروجيڪٽ، جهڙوڪ Eclipse C/C++ ڊولپمينٽ ٽولنگ (CDT)، بعد ۾ ٺاهيا ويا ۽ JDT کان بنيادي اڏاوتي اصولن ۽ انفرادي سورس ڪوڊ جا ٽڪرا قرض ورتو. JDT ۾ رکيل آرڪيٽيڪچر جا بنيادي اصول اڄ تائين Eclipse پليٽ فارم جي چوٽي تي ٺهيل ڪنهن به IDE لاءِ لاڳاپيل آهن، بشمول 1C:Enterprise Development Tools.

سڀ کان پهريان، اهو ياد رکڻ گهرجي ته Eclipse هڪ صاف صاف آرڪيٽيڪچرل ليئرنگ جي خاصيت آهي، خاص پروگرامنگ ٻولين کي سپورٽ ڪرڻ لاء ٺهيل فنڪشنلٽي کان ٻولي-آزاد ڪارڪردگي جي الڳ ٿيڻ سان، ۽ لاڳاپيل اجزاء کان UI-آزاد "بنيادي" اجزاء جي الڳ ٿيڻ سان. سپورٽ يوزر انٽرفيس سان.

اهڙيءَ طرح، Eclipse پليٽ فارم هڪ عام، ٻولي-آزاد انفراسٽرڪچر جي وضاحت ڪري ٿو، ۽ جاوا ڊولپمينٽ ٽولز هڪ مڪمل خصوصيت وارو Java IDE Eclipse ۾ شامل ڪري ٿو. ٻئي Eclipse پليٽ فارم ۽ JDT ڪيترن ئي حصن تي مشتمل آهن، جن مان هر هڪ UI-آزاد ”ڪور“ يا UI پرت سان تعلق رکي ٿو (شڪل 1).

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 1. Eclipse پليٽ فارم ۽ JDT

اچو ته Eclipse پليٽ فارم جي مکيه حصن کي لسٽ ڪريون:

  • رتييم - وضاحت ڪري ٿو پلگ ان انفراسٽرڪچر. Eclipse هڪ ماڊلر فن تعمير جي خاصيت آهي. لازمي طور تي، Eclipse "Extension Points" ۽ "extensions" جو مجموعو آهي.
  • ڪم واري جڳهه - هڪ يا وڌيڪ منصوبن کي منظم ڪري ٿو. هڪ پروجيڪٽ فولڊر ۽ فائلن تي مشتمل آهي جيڪي سڌو سنئون فائل سسٽم ڏانهن نقشا آهن.
  • معياري ويجيٽ ٽول ڪٽ (SWT) - آپريٽنگ سسٽم سان ضم ٿيل بنيادي يوزر انٽرفيس عناصر مهيا ڪري ٿي.
  • JFace - SWT جي چوٽي تي ٺهيل UI فريم ورڪ جو تعداد مهيا ڪري ٿو.
  • ڪمبينڪ - Eclipse UI paradigm جي وضاحت ڪري ٿو: ايڊيٽرن، نظريا، نقطه نظر.

اهو ضرور چيو وڃي ٿو ته Eclipse پليٽ فارم انٽيگريٽيڊ ڊولپمينٽ ٽولز جي تعمير لاءِ ٻيا به ڪيترائي ڪارآمد جزا مهيا ڪري ٿو، جن ۾ ڊيبگ، موازنہ، ڳولا ۽ ٽيم شامل آهن. JFace Text جو خاص ذڪر ڪيو وڃي - ماخذ ڪوڊ جي "سمارٽ ايڊيٽرن" جي تعمير جو بنياد. بدقسمتي سان، انهن اجزاء جو هڪ سرسري امتحان، گڏوگڏ UI پرت جي اجزاء، هن مضمون جي دائري ۾ ممڪن ناهي، تنهنڪري هن حصي جي باقي حصي ۾ اسان پاڻ کي محدود ڪنداسين "بنيادي" اجزاء جو جائزو وٺڻ لاء. Eclipse پليٽ فارم ۽ JDT.

بنيادي رن ٽائم

Eclipse پلگ ان انفراسٽرڪچر تي ٻڌل آهي او ايس جي ۽ پروجيڪٽ پاران مهيا ڪيل Eclipse Equinox. هر Eclipse پلگ ان هڪ OSGi بنڊل آهي. OSGi وضاحت بيان ڪري ٿو، خاص طور تي، ورزن ۽ انحصار جي حل لاء ميڪانيزم. انهن معياري ميڪانيزم جي علاوه، Equinox تصور متعارف ڪرايو توسيع پوائنٽس. هر پلگ ان پنهنجي ايڪسٽينشن پوائنٽس جي وضاحت ڪري سگهي ٿي، ۽ ساڳي يا ٻئي پلگ ان جي وضاحت ڪيل ايڪسٽينشن پوائنٽس کي استعمال ڪندي سسٽم ۾ اضافي ڪارڪردگي ("ايسٽٽينشن") پڻ متعارف ڪرائي سگهي ٿي. OSGi ۽ Equinox ميڪانيزم جي ڪا به تفصيلي وضاحت هن مضمون جي دائري کان ٻاهر آهي. اچو ته صرف اهو نوٽ ڪريون ته Eclipse ۾ modularization ڪل آهي (ڪنهن به سب سسٽم، بشمول Runtime، هڪ يا وڌيڪ پلگ ان تي مشتمل آهي)، ۽ Eclipse ۾ لڳ ڀڳ هر شيءِ هڪ ايڪسٽينشن آهي. ان کان علاوه، اهي اصول Eclipse آرڪيٽيڪچر ۾ شامل ڪيا ويا هئا OSGi جي تعارف کان گهڻو اڳ (ان وقت انهن پنهنجي ٽيڪنالاجي استعمال ڪئي، گهڻو ڪري OSGi سان ملندڙ جلندڙ).

بنيادي ڪم جي جڳهه

Eclipse پليٽ فارم جي چوٽي تي ٺهيل تقريبن ڪو به مربوط ترقياتي ماحول Eclipse ورڪ اسپيس سان ڪم ڪري ٿو. اهو ڪم اسپيس آهي جنهن ۾ عام طور تي IDE ۾ ٺاهيل ايپليڪيشن جو سورس ڪوڊ شامل هوندو آهي. ڪم اسپيس نقشا سڌو فائل سسٽم ڏانهن ۽ منصوبن تي مشتمل آهن جن ۾ فولڊر ۽ فائلون شامل آهن. اهي پروجيڪٽ، فولڊر، ۽ فائلون سڏيندا آهن وسيلا ڪم جي جڳهه. Eclipse ۾ ڪم اسپيس تي عمل درآمد فائل سسٽم جي سلسلي ۾ هڪ ڪيش جي طور تي ڪم ڪري ٿو، جيڪو اهو ممڪن بڻائي ٿو ته وسيلن جي وڻ جي منتقلي کي تيز ڪرڻ. اضافي طور تي، ڪم اسپيس اضافي خدمتون مهيا ڪري ٿي، بشمول وسيلن جي تبديلين لاء نوٽيفڪيشن ميڪانيزم и وڌندڙ بلڊر انفراسٽرڪچر.

بنيادي وسيلن جو حصو (org.eclipse.core.resources پلگ ان) ڪم اسپيس ۽ ان جي وسيلن کي سپورٽ ڪرڻ جو ذميوار آهي. خاص طور تي، هي حصو فارم ۾ ورڪ اسپيس تائين پروگراماتي رسائي فراهم ڪري ٿو وسيلن جا ماڊل. ھن نموني سان مؤثر طريقي سان ڪم ڪرڻ لاء، گراهڪن کي ھڪڙي سادي طريقي جي ضرورت آھي ھڪڙي وسيلن جي لنڪ پيش ڪرڻ لاء. انهي حالت ۾، اهو لازمي هوندو ته اعتراض کي لڪائڻ لاء جيڪو سڌو سنئون ماڊل ۾ وسيلن جي حالت کي ڪلائنٽ جي رسائي کان محفوظ ڪري ٿو. ٻي صورت ۾، مثال طور، فائل کي حذف ڪرڻ جي صورت ۾، ڪلائنٽ هڪ اعتراض کي جاري رکي سگهي ٿو جيڪو هاڻي ماڊل ۾ ناهي، ايندڙ مسئلن سان. Eclipse هن مسئلي کي حل ڪري ٿو ڪجھه استعمال ڪندي منهن ڏيڻ وسيلو. هينڊل هڪ ڪنجي طور ڪم ڪري ٿو (اهو صرف ڪم اسپيس ۾ وسيلن ڏانهن رستو ڄاڻي ٿو) ۽ مڪمل طور تي اندروني ماڊل اعتراض تائين رسائي کي ڪنٽرول ڪري ٿو، جيڪو سڌو سنئون وسيلن جي حالت بابت معلومات محفوظ ڪري ٿو. هي ڊزائن نموني جي مختلف قسم جي آهي هٿ/ جسم.

چانور. شڪل 2 بيان ڪري ٿو هينڊل/جسم جي محاوري کي جيئن ريسورس ماڊل تي لاڳو ڪيو ويو آهي. IRResource انٽرفيس هڪ وسيلن جي هينڊل جي نمائندگي ڪري ٿو ۽ هڪ API آهي، ريسورس ڪلاس جي برعڪس، جيڪو هن انٽرفيس کي لاڳو ڪري ٿو، ۽ ResourceInfo ڪلاس، جيڪو جسم جي نمائندگي ڪري ٿو، جيڪي APIs نه آهن. اسان زور ڀريو ٿا ته هينڊل صرف ڪم اسپيس روٽ سان لاڳاپيل وسيلن ڏانهن رستو ڄاڻي ٿو ۽ وسيلن جي معلومات جي لنڪ تي مشتمل ناهي. وسيلن جي معلومات شيون هڪ نام نهاد "عنصر وڻ" ٺاهيندا آهن. هي ڊيٽا جي جوڙجڪ مڪمل طور تي ياداشت ۾ مادي آهي. وسيلن جي معلومات جو مثال ڳولڻ لاءِ هينڊل سان ملندڙ، عنصر جو وڻ ان هينڊل ۾ محفوظ ڪيل رستي جي مطابق گذريو ويو آهي.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 2. IRsource ۽ ResourceInfo

جيئن اسان بعد ۾ ڏسنداسين، وسيلن جي ماڊل جي بنيادي ڊيزائن (اسان شايد ان کي هينڊل-بنياد سڏين ٿا) استعمال ڪيو ويو آهي Eclipse ۾ ٻين ماڊل لاء پڻ. هينئر لاءِ، اچو ته هن ڊزائن جي ڪجهه مخصوص خاصيتن جي فهرست ڏيون:

  • هينڊل هڪ قيمتي شئي آهي. قدر واريون شيون ناقابل بدلائي شيون آهن جن جي برابري جي سڃاڻپ تي ٻڌل ناهي. اهڙيون شيون محفوظ طور تي استعمال ڪري سگھجن ٿيون ڪنٽينرز ۾ ڪنجي طور. هينڊل جا ڪيترائي مثال ساڳئي وسيلن جو حوالو ڏئي سگھن ٿا. انھن جو مقابلو ڪرڻ لاءِ، توھان کي استعمال ڪرڻ جي ضرورت آھي equals (Object) طريقو.
  • ھينڊل ھڪڙي وسيلن جي رويي کي بيان ڪري ٿو، پر وسيلن جي حالت بابت معلومات تي مشتمل نه آھي (صرف ڊيٽا اھو ذخيرو ڪري ٿو "ڪجھ"، وسيلن جو رستو).
  • هينڊل شايد هڪ وسيلو ڏانهن اشارو ڪري سگهي ٿو جيڪو موجود ناهي (يا اهو وسيلو جيڪو اڃا تائين نه ٺاهيو ويو آهي، يا هڪ وسيلو جيڪو اڳ ۾ ئي ختم ڪيو ويو آهي). وسيلن جي موجودگي کي IResource.exists() طريقو استعمال ڪندي چيڪ ڪري سگھجي ٿو.
  • ڪجھ عملن تي عمل ڪري سگھجن ٿا صرف انفارميشن جي بنياد تي جيڪو ھينڊل ۾ محفوظ ٿيل آھي (نام نهاد ھينڊل صرف آپريشن). مثال آهن IResource.getParent(), getFullPath(), وغيره. اهڙي آپريشن کي ڪامياب ڪرڻ لاءِ وسيلن جو موجود هجڻ ضروري ناهي. آپريشنز جن کي ڪامياب ٿيڻ لاءِ وسيلا موجود هجڻ جي ضرورت آهي جيڪڏهن وسيلو موجود نه هجي ته هڪ CoreException اڇلائي.

Eclipse ڪم اسپيس وسيلن جي تبديلين کي اطلاع ڏيڻ لاءِ هڪ موثر ميکانيزم مهيا ڪري ٿو (شڪل 3). وسيلا تبديل ٿي سگهن ٿا يا ته Eclipse IDE اندر ڪيل عملن جي نتيجي ۾ يا فائيل سسٽم سان هم وقت سازي جي نتيجي ۾. ٻنهي صورتن ۾، گراهڪ جيڪي نوٽيفڪيشن جي رڪنيت حاصل ڪن ٿا انهن کي "وسيع ڊيلٽا" جي صورت ۾ تبديلين بابت تفصيلي ڄاڻ ڏني وئي آهي. هڪ ڊيلٽا ڪم اسپيس ريسورس (ذيلي) وڻ جي ٻن رياستن جي وچ ۾ تبديلين کي بيان ڪري ٿو ۽ پاڻ هڪ وڻ آهي، جنهن جو هر نوڊ هڪ وسيلن ۾ تبديلي کي بيان ڪري ٿو ۽ ايندڙ سطح تي ڊيلٽا جي هڪ فهرست تي مشتمل آهي جيڪو ٻارن جي وسيلن ۾ تبديلين کي بيان ڪري ٿو.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 3. IResourceChangeEvent ۽ IResourceDelta

وسيلن جي ڊيلٽا تي ٻڌل نوٽيفڪيشن ميڪانيزم هيٺ ڏنل خاصيتون آهن:

  • ھڪڙي تبديلي ۽ گھڻن تبديلين کي ھڪڙي ساخت جي استعمال سان بيان ڪيو ويو آھي، ڇاڪاڻ⁠تہ ڊيلٽا ٺھيل آھي ريڪرسيو مرکب جي اصول کي استعمال ڪندي. سبسڪرائبر گراهڪ ڊيلٽا جي وڻ ذريعي ٻيهر نزول استعمال ڪندي وسيلن جي تبديلي جي اطلاعن تي عمل ڪري سگهن ٿا.
  • ڊيلٽا وسيلن ۾ تبديلين بابت مڪمل معلومات تي مشتمل آهي، بشمول ان جي حرڪت ۽/يا ان سان لاڳاپيل ”مارڪرز“ ۾ تبديليون (مثال طور، تاليف جي غلطين کي نشانن جي طور تي پيش ڪيو ويو آهي).
  • جيئن ته وسيلن جا حوالا هينڊل ذريعي ڪيا ويا آهن، ڊيلٽا قدرتي طور تي ريموٽ وسيلن جو حوالو ڏئي سگهي ٿو.

جيئن اسان جلد ئي ڏسنداسين، ريسورس ماڊل جي ڊيزائن جا مکيه جزا تبديليءَ جي نوٽيفڪيشن ميڪانيزم پڻ لاڳاپيل آهن ٻين هينڊل تي ٻڌل ماڊلز لاءِ.

جي ڊي ٽي ڪور

Eclipse Workspace Resource ماڊل هڪ بنيادي ٻولي-agnostic ماڊل آهي. JDT ڪور جزو (plugin org.eclipse.jdt.core) هڪ API مهيا ڪري ٿو جاوا جي نقطه نظر کان ڪم اسپيس جي جوڙجڪ کي نيويگيٽ ڪرڻ ۽ تجزيو ڪرڻ لاءِ، جنهن کي ”جاوا ماڊل“ (جاوا ماڊل). هي API وضاحت ڪئي وئي آهي جاوا عناصر جي لحاظ سان، جيئن ته بنيادي وسيلن جي ماڊل API جي مخالفت ڪئي وئي آهي، جيڪا فولڊر ۽ فائلن جي اصطلاحن ۾ بيان ڪئي وئي آهي. جاوا عنصر وڻ جي مکيه انٽرفيس تصوير ۾ ڏيکاريل آهن. 4.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 4. جاوا ماڊل عناصر

جاوا ماڊل ساڳيو هينڊل/جسم محاورو استعمال ڪري ٿو جيئن وسيلن جي ماڊل (شڪل 5). IJavaElement ھينڊل آھي، ۽ JavaElementInfo جسم جو ڪردار ادا ڪري ٿو. IJavaElement انٽرفيس ھڪڙو پروٽوڪول بيان ڪري ٿو جيڪو سڀني جاوا عناصر لاء عام آھي. ان جا ڪجھ طريقا صرف ھينڊل آھن: getElementName(), getParent(), وغيره. JavaElementInfo اعتراض لاڳاپيل عنصر جي حالت کي محفوظ ڪري ٿو: ان جي جوڙجڪ ۽ خاصيتون.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 5. IJavaElement ۽ JavaElementInfo

جاوا ماڊل ريسورس ماڊل جي مقابلي ۾ بنيادي هينڊل/جسم ڊيزائن جي عمل ۾ ڪجهه اختلاف رکي ٿو. جيئن مٿي ڄاڻايل آهي، وسيلن جي ماڊل ۾، عنصر وڻ، جن جا نوڊس وسيلن جي معلومات شيون آهن، مڪمل طور تي ياداشت ۾ شامل آهن. پر جاوا ماڊل ۾ وسيلن جي وڻ جي ڀيٽ ۾ عناصرن جو وڏو تعداد ٿي سگھي ٿو، ڇاڪاڻ ته اھو پڻ .java ۽ .class فائلن جي اندروني ساخت جي نمائندگي ڪري ٿو: قسم، فيلڊ، ۽ طريقا.

ميموري ۾ عناصر جي پوري وڻ کي مڪمل طور تي مادي ڪرڻ کان بچڻ لاء، جاوا ماڊل تي عمل درآمد عنصر جي معلومات جي محدود سائيز LRU ڪيش کي استعمال ڪري ٿو، جتي اهم IJavaElement کي سنڀاليندو آهي. عنصر جي معلومات شين جي طلب تي ٺاهيا ويا آهن جيئن عنصر وڻ کي نيويگيٽ ڪيو ويو آهي. انهي صورت ۾، گهٽ ۾ گهٽ استعمال ٿيل شيون ڪيش مان ڪڍيا ويا آهن، ۽ ماڊل جي ياداشت جي استعمال کي مخصوص ڪيش سائيز تائين محدود رهي ٿو. هي هينڊل تي ٻڌل ڊيزائن جو هڪ ٻيو فائدو آهي، جيڪو مڪمل طور تي ڪلائنٽ ڪوڊ مان اهڙي عمل درآمد جي تفصيل کي لڪائيندو آهي.

جاوا عناصر ۾ تبديلين کي اطلاع ڏيڻ جو ميکانيزم عام طور تي مٿي ذڪر ڪيل ڪم اسپيس وسيلن ۾ تبديلين کي ٽريڪ ڪرڻ جي ميڪانيزم سان ملندڙ جلندڙ آهي. هڪ ڪلائنٽ جيڪو جاوا ماڊل ۾ تبديلين جي نگراني ڪرڻ چاهي ٿو نوٽيفڪيشنز جي رڪنيت حاصل ڪري ٿو، جيڪي هڪ ElementChangedEvent اعتراض جي طور تي پيش ڪيا ويا آهن جنهن ۾ IJavaElementDelta (شڪل 6) شامل آهي.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 6. ElementChangedEvent ۽ IJavaElementDelta

جاوا ماڊل ۾ ميٿڊ باڊيز يا نالي جي ريزوليوشن بابت معلومات نه هوندي آهي، تنهنڪري جاوا ۾ لکيل ڪوڊ جي تفصيلي تجزيي لاءِ، JDT ڪور هڪ اضافي (نان هينڊل-بنياد) ماڊل مهيا ڪري ٿو: تجريدي نحو جو وڻ (خلاصي نحو جو وڻ، AST). AST ذريعو متن کي پارس ڪرڻ جو نتيجو پيش ڪري ٿو. AST نوڊس ماخذ ماڊل جي ڍانچي جي عناصر سان ملن ٿا (اعلان، آپريٽرز، اظهار، وغيره.) ۽ انهي سان لاڳاپيل عنصر جي همراهن جي باري ۾ معلومات تي مشتمل آهي ماخذ متن ۾، انهي سان گڏ (هڪ اختيار جي طور تي) نالي جي قرارداد بابت معلومات. نالي سان ڳنڍڻ جي شڪل بوندنگ. بائنڊنگ شيون آهن جيڪي نامزد ٿيل ادارن جي نمائندگي ڪن ٿيون، جهڙوڪ قسم، طريقا، ۽ متغير، مرتب ڪندڙ کي ڄاڻن ٿا. AST نوڊس جي برعڪس، جيڪي هڪ وڻ ٺاهيندا آهن، بائنڊنگس ڪراس ريفرنسنگ جي حمايت ڪن ٿا ۽ عام طور تي گراف ٺاهيندا آهن. خلاصو ڪلاس ASTNode سڀني AST نوڊس لاءِ عام بيس ڪلاس آھي. ASTNode ذيلي ڪلاس جاوا ٻولي جي مخصوص نحوي تعميرات سان ملن ٿا.

ڇاڪاڻ ته نحو جا وڻ وڏي مقدار ۾ ميموري استعمال ڪري سگھن ٿا، JDT فعال ايڊيٽر لاءِ صرف هڪ AST ڪيش ڪري ٿو. جاوا ماڊل جي برعڪس، AST کي عام طور تي "وچولي"، "عارضي" ماڊل جي طور تي ڏٺو ويندو آهي، جن جي ميمبرن کي ڪلائنٽ طرفان حوالو نه ڏنو وڃي آپريشن جي حوالي کان ٻاهر جيڪو AST جي تخليق جو سبب بڻيو.

درج ٿيل ٽي ماڊل (جاوا ماڊل، اي ايس ٽي، بائنڊنگز) گڏجي JDT ۾ "ذهانت واري ترقي جا اوزار" جي تعمير لاء بنياد ٺاهيندا آهن، جن ۾ هڪ طاقتور جاوا ايڊيٽر شامل آهن مختلف "مددگارن" سان، پروسيسنگ سورس ڪوڊ لاءِ مختلف ڪارناما (بشمول درآمد جي فهرست کي ترتيب ڏيڻ. ڪسٽمائيز انداز جي مطابق نالا ۽ فارميٽنگ)، ڳولا ۽ ريفيڪٽرنگ جا اوزار. انهي صورت ۾، جاوا ماڊل هڪ خاص ڪردار ادا ڪري ٿو، ڇاڪاڻ ته اهو ئي آهي جيڪو استعمال ڪيو ويندو آهي بصري نمائندگي جي بنياد تي ايپليڪيشن جي جوڙجڪ جي ترقي يافته (مثال طور، پيڪيج ايڪسپلورر، آئوٽ لائن، ڳولا، ڪال هيئرارڪي، ۽ قسم جي درجه بندي).

Eclipse اجزاء 1C ۾ استعمال ڪيا ويا: انٽرپرائز ڊولپمينٽ ٽولز

تصوير ۾. شڪل 7 Eclipse اجزاء ڏيکاري ٿو جيڪي 1C لاءِ ٽيڪنالاجي پليٽ فارم جو بنياد بڻجن ٿا: انٽرپرائز ڊولپمينٽ ٽولز.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 7. Eclipse 1C لاءِ پليٽ فارم طور: انٽرپرائز ڊولپمينٽ ٽولز

Eclipse پليٽ فارم بنيادي ڍانچي فراهم ڪري ٿي. اسان پوئين حصي ۾ هن انفراسٽرڪچر جي ڪجهه حصن تي غور ڪيو.

Eclipse ماڊلنگ فريم ورڪ (ايم ايف) منظم ڪيل ڊيٽا جي ماڊلنگ جو هڪ عام وسيلو مهيا ڪري ٿو. EMF Eclipse پليٽ فارم سان ضم ٿيل آهي، پر باقاعده جاوا ايپليڪيشنن ۾ الڳ الڳ استعمال ڪري سگهجي ٿو. گهڻو ڪري، نئين Eclipse ڊولپرز اڳ ۾ ئي EMF سان چڱي طرح واقف آهن، جيتوڻيڪ اهي اڃا تائين مڪمل طور تي Eclipse پليٽ فارم جي پيچيدگين کي سمجهي نه سگھندا آهن. اهڙين مستند مقبوليت جي سببن مان هڪ آفاقي ڊيزائن آهي، جنهن ۾ شامل آهي، ٻين شين جي وچ ۾، هڪ متحد ميٽا-سطح API، جيڪو توهان کي ڪنهن به EMF ماڊل سان عام طريقي سان ڪم ڪرڻ جي اجازت ڏئي ٿو. اي ايم ايف پاران مهيا ڪيل ماڊل شين لاءِ بنيادي عمل ۽ ميٽا ماڊل جي بنياد تي ماڊل ڪوڊ ٺاهڻ لاءِ سبسسٽم خاص طور تي ترقي جي رفتار کي وڌائي ٿو ۽ غلطين جو تعداد گھٽائي ٿو. EMF ۾ ماڊلز کي ترتيب ڏيڻ، ماڊل ۾ تبديلين کي ٽريڪ ڪرڻ، ۽ گهڻو ڪجهه ڪرڻ لاءِ ميکانيزم پڻ شامل آهي.

ڪنهن به واقعي عام-مقصد واري اوزار وانگر، EMF ماڊلنگ جي مسئلن جي وسيع رينج کي حل ڪرڻ لاءِ موزون آهي، پر ماڊل جي ڪجهه طبقن (مثال طور، هينڊل تي ٻڌل ماڊل جيڪي مٿي بيان ڪيا ويا آهن) شايد وڌيڪ خاص ماڊلنگ اوزارن جي ضرورت هجي. اي ايم ايف بابت ڳالهائڻ هڪ بي شڪر ڪم آهي، خاص طور تي هڪ مضمون جي محدود حدن ۾، ڇاڪاڻ ته هي هڪ الڳ ڪتاب جو موضوع آهي، ۽ هڪ تمام گهڻو آهي. اچو ته صرف ياد رکون ته اي ايم ايف جي تحت عام ڪرڻ جي اعلي معيار واري نظام کي ماڊلنگ لاء وقف ڪيل منصوبن جي مڪمل رينج جي پيدائش جي اجازت ڏني وئي، جيڪي اعلي سطحي منصوبي ۾ شامل آهن. Eclipse ماڊلنگ پاڻ EMF سان گڏ. هڪ اهڙو منصوبو آهي Eclipse Xtext.

Eclipse Xtext "ٽيڪسٽ ماڊلنگ" انفراسٽرڪچر مهيا ڪري ٿو. Xtext استعمال ڪري ٿو اين ٽي ايل آر ماخذ متن ۽ EMF کي پارس ڪرڻ لاءِ نتيجي ۾ آيل ASG جي نمائندگي ڪرڻ لاءِ (تخريطي معنيٰ وارو گراف، جيڪو بنيادي طور تي AST ۽ بائنڊنگز جو مجموعو آهي)، جنهن کي ”سيمينٽڪ ماڊل“ به سڏيو وڃي ٿو. Xtext پاران ماڊل ڪيل ٻولي جو گرامر Xtext جي پنهنجي ٻولي ۾ بيان ڪيو ويو آهي. اهو توهان کي اجازت ڏئي ٿو نه صرف ANTLR لاءِ گرامر جي وضاحت پيدا ڪرڻ، پر پڻ حاصل ڪرڻ جي لاءِ هڪ AST سيريلائيزيشن ميڪانيزم (يعني Xtext ٻنهي کي پارسر ۽ هڪ غير پارسر مهيا ڪري ٿو)، هڪ حوالي سان اشارو، ۽ ٻين ٻولين جا ڪيترائي جزا. ٻئي طرف، Xtext ۾ استعمال ٿيندڙ گرامر ٻولي، ANTLR ۾ استعمال ٿيندڙ گرامر ٻولي جي ڀيٽ ۾ گھٽ لچڪدار آھي. تنهن ڪري، ڪڏهن ڪڏهن اهو ضروري آهي ته لاڳو ٿيل ٻولي کي Xtext ڏانهن "مڻ"، جيڪو عام طور تي ڪو مسئلو ناهي جيڪڏهن اسان ڳالهائي رهيا آهيون ٻولي شروع کان ترقي ڪئي پئي وڃي، پر اڳ ۾ ئي قائم ڪيل نحو سان ٻولين لاء ناقابل قبول ٿي سگهي ٿي. ان جي باوجود، Xtext هن وقت Eclipse ۾ سڀ کان وڌيڪ پختو، خصوصيت سان مالا مال ۽ ورسٽائل اوزار آهي پروگرامنگ ٻولين جي تعمير ۽ انهن لاءِ ڊولپمينٽ اوزار. خاص طور تي، اهو تيز رفتار پروٽوٽائپنگ لاء هڪ مثالي اوزار آهي ڊومين مخصوص ٻوليون (ڊومين جي مخصوص ٻولي، ڊي ايس ايل). ANTLR ۽ EMF جي بنياد تي مٿي بيان ڪيل ”ٻولي جي بنيادي“ کان علاوه، Xtext ڪيترائي مفيد اعليٰ سطحي جزا مهيا ڪري ٿو، بشمول انڊيڪسنگ ميڪانيزم، واڌارو تعمير، هڪ ”سمارٽ ايڊيٽر“، ۽ گهڻو ڪجهه، پر ان کان سواءِ هينڊل- ٻوليءَ جا ماڊل. EMF وانگر، Xtext هڪ الڳ ڪتاب جي لائق هڪ موضوع آهي، ۽ اسان هن وقت ان جي سڀني صلاحيتن بابت مختصر طور تي ڳالهائي سگهون ٿا.

1C:انٽرپرائز ڊولپمينٽ ٽولز فعال طور تي استعمال ڪن ٿا ٻئي EMF پاڻ ۽ ٻيا Eclipse Modeling Projects. خاص طور تي، Xtext اهڙي 1C لاءِ ڊولپمينٽ ٽولز جي بنيادن مان هڪ آهي: انٽرپرائز ٻوليون جيئن بلٽ ان پروگرامنگ ٻولي ۽ سوال جي ٻولي. انهن ڊولپمينٽ ٽولز لاءِ هڪ ٻيو بنياد Eclipse Handly پروجيڪٽ آهي، جنهن تي اسان وڌيڪ تفصيل سان بحث ڪنداسين (Eclipse اجزاء جي فهرست ڏنل آهي، اهو اڃا تائين گهٽ ۾ گهٽ ڄاڻايل آهي).

Eclipse handly1 ۾ 2014C پاران Eclipse فائونڊيشن لاءِ ابتدائي ڪوڊ تعاون جي نتيجي ۾ Eclipse ٽيڪنالاجي جي اعليٰ سطحي منصوبي جو هڪ ذيلي منصوبو سامهون آيو. ان کان پوء، 1C منصوبي جي ترقي جي حمايت جاري رکي ٿو: هٿ سان ڪم ڪندڙ ڪمپني جا ملازم آهن. پروجيڪٽ ننڍڙو آهي، پر اهو Eclipse ۾ هڪ بلڪه منفرد جڳهه تي قبضو ڪري ٿو: ان جو بنيادي مقصد هٿيارن تي ٻڌل ماڊل جي ترقي جي حمايت ڪرڻ آهي.

هينڊل تي ٻڌل ماڊل جا بنيادي اڏاوت جا اصول، جيئن ته هينڊل/باڊي آئيڊيم، مٿي بيان ڪيا ويا آهن وسيلن جي ماڊل ۽ جاوا ماڊل کي مثال طور استعمال ڪندي. اهو پڻ نوٽ ڪيو ويو آهي ته ٻئي وسيلا ماڊل ۽ جاوا ماڊل ايڪليپس جاوا ڊولپمينٽ اوزار (JDT) لاء اهم بنياد آهن. ۽ جيئن ته تقريبن سڀني *DT Eclipse پروجيڪٽس جو هڪ آرڪيٽيڪچر JDT سان ملندڙ جلندڙ آهي، اهو چوڻ ۾ وڏو مبالغہ نه ٿيندو ته هينڊل بيسڊ ماڊل ڪيترن ئي کي هيٺ آڻيندا آهن، جيڪڏهن نه سڀئي IDEs Eclipse پليٽ فارم جي چوٽي تي ٺهيل آهن. مثال طور، Eclipse C/C++ ڊولپمينٽ ٽولنگ (CDT) وٽ هينڊل تي ٻڌل C/C++ ماڊل آهي جيڪو CDT فن تعمير ۾ ساڳيو ڪردار ادا ڪري ٿو جيئن جاوا ماڊل JDT ۾ ڪندو آهي.

Handly کان اڳ، Eclipse خاص لئبرريون پيش نه ڪنديون ھيون ته ھينڊل جي بنياد تي ٻوليءَ جا ماڊل ٺاھڻ لاءِ. ماڊل جيڪي في الحال موجود آهن خاص طور تي جاوا ماڊل ڪوڊ (اڪا ڪاپي/پيسٽ) کي سڌو سنئون ترتيب ڏيڻ سان ٺاهيا ويا آهن. ڪيسن ۾ جتي اها اجازت ڏئي ٿي Eclipse پبلڪ لائسنس (EPL). (ظاهر آهي، اهو عام طور تي هڪ قانوني مسئلو ناهي، چئو، Eclipse پروجيڪٽ پاڻ لاء، پر بند ذريعن جي شين لاء نه.) ان جي موروثي بي ترتيبي کان علاوه، هي ٽيڪنڪ معروف مسئلا متعارف ڪرايو آهي: ڪوڊ نقل متعارف ڪرايو جڏهن غلطين کي ترتيب ڏيڻ، وغيره ڇا خراب آهي ته نتيجو ماڊل "پنهنجو پاڻ ۾ شيون" رهي ٿو ۽ متحد ٿيڻ جي صلاحيت جو فائدو نه وٺن. پر عام تصورن ۽ پروٽوڪولن کي الڳ ڪرڻ سان ھينڊل بيسڊ لينگويج ماڊلز کي انھن سان گڏ ڪم ڪرڻ لاءِ وري استعمال لائق اجزا ٺاھي سگھي ٿو، جھڙو ئي EMF جي صورت ۾ ٿيو آھي.

اهو نه آهي ته Eclipse انهن مسئلن کي سمجهي نه سگهيو. واپس 2005 ۾ مارٽن ايسچلمنسي ڊي ٽي پروٽوٽائپ کي ترقي ڪرڻ جي تجربي جو خلاصو، دليل ڏنو ٻوليءَ جي ماڊلز لاءِ هڪ عام انفراسٽرڪچر ٺاهڻ جي ضرورت آهي، جنهن ۾ هينڊل بيسڊ ماڊل شامل آهن. پر، جيئن اڪثر ٿئي ٿو، اعليٰ ترجيحي ڪمن جي ڪري، انهن خيالن تي عمل ڪڏهن به ان جي آس پاس نه ٿي سگهيو. ان کان علاوه، فيڪٽريائيزيشن * ڊي ٽي ڪوڊ اڃا تائين Eclipse ۾ ترقي يافته عنوانن مان هڪ آهي.

هڪ خاص معنى ۾، هينڊلي پروجيڪٽ کي EMF جي لڳ ڀڳ ساڳئي مسئلن کي حل ڪرڻ لاءِ ٺاهيو ويو آهي، پر هينڊل-بنياد ماڊلز، ۽ بنيادي طور تي ٻولي وارا (يعني، ڪجهه پروگرامنگ ٻولي جي ساخت جي عناصرن جي نمائندگي ڪن ٿا). هينڊلي ڊزائين ڪرڻ وقت مقرر ڪيل مکيه مقصد هيٺ ڏنل آهن:

  • موضوع جي علائقي جي مکيه خلاصن جي سڃاڻپ.
  • ڪوشش کي گهٽائڻ ۽ ڪوڊ جي ٻيهر استعمال ذريعي هينڊل-بنياد ٻولي ماڊل جي عمل درآمد جي معيار کي بهتر ڪرڻ.
  • نتيجن جي ماڊلز کي هڪ متحد ميٽا-سطح API مهيا ڪرڻ، عام IDE اجزاء ٺاهڻ کي ممڪن بڻائي ٿو جيڪي ٻوليء جي هينڊل-بنياد ماڊل سان ڪم ڪن ٿيون.
  • لچڪدار ۽ اسڪاليبلٽي.
  • Xtext سان انضمام (هڪ الڳ پرت ۾).

عام تصورن ۽ پروٽوڪولن کي اجاگر ڪرڻ لاءِ، ٻوليءَ جي ھٿ تي ٻڌل ماڊلز جي موجوده عملن جو تجزيو ڪيو ويو. Handly پاران مهيا ڪيل مکيه انٽرفيس ۽ بنيادي عملن کي تصوير ۾ ڏيکاريو ويو آهي. 8.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 8. عام انٽرفيس ۽ هٿرادو عناصر جا بنيادي عمل

IElement انٽرفيس هڪ عنصر جي هينڊل جي نمائندگي ڪري ٿو ۽ سڀني هٿن جي بنياد تي ماڊل جي عناصر لاء عام آهي. خلاصو طبقو عنصر عام ٿيل هينڊل/جسم ميڪانيزم کي لاڳو ڪري ٿو (تصوير 9).

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 9. آئي ايليمينٽ ۽ عام هينڊل/جسم تي عملدرآمد

اضافي طور تي، هٿ سان ماڊل عناصر ۾ تبديلين جي باري ۾ اطلاع ڏيڻ لاء هڪ عام ميڪانيزم مهيا ڪري ٿو (تصوير 10). جئين توهان ڏسي سگهو ٿا، اهو وسيع طور تي وسيلا ماڊل ۽ جاوا ماڊل ۾ لاڳو ڪيل نوٽيفڪيشن ميڪانيزم سان ملندڙ جلندڙ آهي، ۽ IElementDelta استعمال ڪري ٿو عنصر تبديلي جي معلومات جي گڏيل نمائندگي مهيا ڪرڻ لاء.

Eclipse 1C لاءِ ٽيڪنالاجي پليٽ فارم جي طور تي: انٽرپرائز ڊولپمينٽ ٽولز
چانور. 10. هينڊلي نوٽيفڪيشن ميڪنزم جا عام انٽرفيس ۽ بنيادي عمل

مٿي ذڪر ڪيل هٿرادو حصو (تصوير 9 ۽ 10) تقريبن ڪنهن به هينڊل-بنياد ماڊل جي نمائندگي ڪرڻ لاءِ استعمال ڪري سگهجي ٿو. ٺاھڻ لاءِ لساني ماڊلز، پروجيڪٽ اضافي ڪارڪردگي پيش ڪري ٿو - خاص طور تي، عام انٽرفيس ۽ بنيادي عملن لاء ماخذ متن جي جوڙجڪ جي عناصر لاء، جنهن کي سڏيو ويندو آهي. ماخذ عناصر (تصوير 8). ISourceFile انٽرفيس ھڪڙو ذريعو فائل جي نمائندگي ڪري ٿو، ۽ ISourceConstruct ھڪڙي عنصر کي ماخذ فائل ۾ نمائندگي ڪري ٿو. خلاصو طبقن SourceFile ۽ SourceConstruct عام ميڪانيزم کي لاڳو ڪن ٿا ماخذ فائلن ۽ انهن جي عناصرن سان ڪم ڪرڻ ۾ مدد لاءِ، مثال طور، ٽيڪسٽ بفرز سان ڪم ڪرڻ، ماخذ متن ۾ عنصر جي همراهن کي پابند ڪرڻ، ڪم ڪندڙ ڪاپي بفر جي موجوده مواد سان ماڊل کي ملائڻ. وغيره انهن ميکانيزم کي لاڳو ڪرڻ عام طور تي ڪافي چيلنج هوندو آهي، ۽ هينڊلي اعليٰ معيار جي بنيادن تي عملدرآمد مهيا ڪندي هينڊل-بنياد ٻولي ماڊلز کي ترقي ڪرڻ جي ڪوشش کي گهٽائي سگھي ٿو.

مٿي ڏنل بنيادي ميکانيزم کان علاوه، هٿ سان ٽيڪسٽ بفرز ۽ سنيپ شاٽس لاءِ هڪ انفراسٽرڪچر مهيا ڪري ٿو، سورس ڪوڊ ايڊيٽر سان انضمام لاءِ سپورٽ (بشمول Xtext ايڊيٽر سان آئوٽ آف دي باڪس انٽيگريشن)، ۽ گڏوگڏ ڪجهه عام UI اجزاء جيڪي ماخذ ڪوڊ ايڊيٽرن سان ڪم ڪريو. ھٿ سان ماڊل جھڙوڪ آئوٽ لائن فريم ورڪ. ان جي صلاحيتن کي واضع ڪرڻ لاء، پروجيڪٽ ڪيترن ئي مثالن کي مهيا ڪري ٿو، جن ۾ جاوا ماڊل جي هٿ سان عمل درآمد شامل آهن. (JDT ۾ جاوا ماڊل جي مڪمل عمل درآمد جي مقابلي ۾، هي ماڊل عمدي طور تي وڌيڪ وضاحت لاء ڪجهه آسان آهي.)

جيئن اڳ ۾ نوٽ ڪيو ويو آهي، هينڊلي جي شروعاتي ڊيزائن ۽ بعد ۾ ترقي جي دوران هڪ اهم ڌيان هو ۽ جاري رهي ٿو اسڪالبل ۽ لچڪ تي.

اصول ۾، هينڊل-بنياد ماڊل تمام چڱي طرح "ڊزائن جي ذريعي" پيماني تي. مثال طور، هينڊل/جسم جو محاورو توهان کي اجازت ڏئي ٿو ته هڪ ماڊل طرفان استعمال ڪيل ياداشت جي مقدار کي محدود ڪري. پر اتي پڻ nuances آهن. اهڙيءَ طرح، جڏهن هٿ سان اسڪاليبلٽي جي جاچ ڪئي وئي، نوٽيفڪيشن ميڪنزم جي عمل ۾ هڪ مسئلو دريافت ڪيو ويو - جڏهن عناصر جو هڪ وڏو تعداد تبديل ڪيو ويو، ڊيلٽا جي تعمير ۾ تمام گهڻو وقت ورتو ويو. اهو ظاهر ٿيو ته ساڳيو مسئلو JDT جاوا ماڊل ۾ موجود هو، جنهن مان لاڳاپيل ڪوڊ هڪ ڀيرو ٺاهيل هو. اسان هينڊلي ۾ بگ کي درست ڪيو ۽ JDT لاءِ ساڳيو پيچ تيار ڪيو، جيڪو شڪرگذاريءَ سان مليو. هي صرف هڪ مثال آهي جتي هٿ سان متعارف ڪرائڻ موجوده ماڊل جي عملن ۾ ممڪن طور تي ڪارائتو ٿي سگهي ٿو، ڇاڪاڻ ته هن صورت ۾ اهڙي بگ کي صرف هڪ جاء تي مقرر ڪري سگهجي ٿو.

ھٿ سان موجوده ماڊل تي عمل درآمد کي ٽيڪنيڪل طور تي ممڪن بڻائڻ لاءِ، لئبرري کي لازمي لچڪ آھي. بنيادي مسئلو API ماڊل ۾ پسمانده مطابقت برقرار رکڻ آهي. ۾ اهو مسئلو حل ڪيو ويو هٿ سان 0.5 واضح طور تي ماڊل-مخصوص API کي الڳ ڪرڻ سان، ڊولپر پاران بيان ڪيل ۽ مڪمل طور تي ڪنٽرول، لائبريري پاران مهيا ڪيل متحد ميٽا-سطح API کان. اهو نه رڳو ٽيڪنيڪل طور تي ممڪن بڻائي ٿو هٿ سان موجوده عملن ۾ لاڳو ڪرڻ، پر نئين ماڊل ڊولپر کي پڻ اهم آزادي ڏئي ٿي جڏهن API کي ڊزائين ڪندي.

لچڪداريءَ جا ٻيا به پهلو آهن. مثال طور، Handly ماڊل جي جوڙجڪ تي لڳ ڀڳ ڪا به پابندي نه لڳائيندو آهي ۽ عام مقصد ۽ ڊومين جي مخصوص ٻولين کي ماڊل ڪرڻ لاءِ استعمال ڪري سگهجي ٿو. جڏهن ماخذ فائل جي ڍانچي کي ٺاهيندي، هٿ سان AST نمائندگي جي ڪنهن خاص شڪل کي بيان نٿو ڪري ۽، اصول ۾، خود هڪ AST جي موجودگي جي ضرورت به ناهي، اهڙيء طرح تقريبن ڪنهن به پارسنگ ميڪانيزم سان مطابقت کي يقيني بڻائي ٿي. آخرڪار، هٿ سان Eclipse ورڪ اسپيس سان مڪمل انضمام جي حمايت ڪري ٿو، پر ان سان گڏ انضمام جي مهرباني سان سڌو فائيل سسٽم سان پڻ ڪم ڪري سگهي ٿو. Eclipse فائل سسٽم (اي ايف ايس).

موجوده ورزن هٿ سان 0.6 ڊسمبر 2016 ۾ ٻاهر آيو. ان حقيقت جي باوجود ته پروجيڪٽ في الحال انڪوبيشن جي حالت ۾ آهي ۽ API اڃا تائين حتمي طور تي مقرر نه ڪيو ويو آهي، هٿ سان اڳ ۾ ئي ٻن وڏن تجارتي شين ۾ استعمال ڪيو ويو آهي جيڪي "ابتدائي اختيار ڪندڙ" طور ڪم ڪرڻ جو خطرو ورتو، ۽، مون کي ضرور چوڻ گهرجي، اڃان تائين افسوس نه ڪريو.

جيئن مٿي ڄاڻايل آهي، انهن شين مان هڪ آهي 1C:انٽرپرائز ڊولپمينٽ ٽولز، جتي هينڊلي شروع کان ئي استعمال ڪيو ويندو آهي ماڊل عناصر جي اعليٰ سطحي ڍانچي جي اهڙي 1C:انٽرپرائز ٻولين جي طور تي بلٽ ان پروگرامنگ ٻولي ۽ سوال جي ٻولي . ٻيو پراڊڪٽ عام عوام کي گهٽ ڄاڻ آهي. هي ڪوڊاسپ اسٽوڊيو, ايپليڪيشن-مخصوص هدايتون-سيٽ پروسيسر (ASIP) لاءِ هڪ مربوط ڊزائين ماحول، جيڪو ٻنهي چيڪ ڪمپني ڪوڊاسپ جي اندر ۽ ان جي گراهڪن طرفان استعمال ڪيو ويو، بشمول AMD, سراسري, موبائل, سگا ڊيزائن. Codasip 2015 کان وٺي پيداوار ۾ Handly استعمال ڪري رھيو آھي، ورزن Handly 0.2 سان شروع ٿي. Codasip Studio جو تازو رليز ورزن 0.5 استعمال ڪري ٿو، جيڪو جون 2016 ۾ جاري ڪيو ويو. Ondřej Ilčík، جيڪو ڪوڊاسپ ۾ IDE ڊولپمينٽ جي اڳواڻي ڪري ٿو، منصوبي سان رابطي ۾ آهي، "ٽين ڌر اختيار ڪندڙ" جي طرفان اهم موٽ فراهم ڪري ٿو. هو اڃا به ڪجهه مفت وقت ڳولڻ جي قابل هو سڌو سنئون منصوبي جي ترقي ۾ حصو وٺڻ لاء، هڪ UI پرت (~ 4000 لائنون ڪوڊ) لاڳو ڪرڻ لاء، هڪ جاوا ماڊل، هڪ هٿ واري مثال لاء. وڌيڪ تفصيلي ڄاڻ پهرين هٿ جي استعمال بابت Handly by adopters صفحي تي ملي سگهي ٿي ڪامياب ڪهاڻيون پروجيڪٽ.

اسان اميد ٿا ڪريون ته ورجن 1.0 جي رليز ٿيڻ کان پوءِ API استحڪام جي ضمانت سان ۽ پروجيڪٽ انڪيوبيشن اسٽيٽ کي ڇڏي، Handly وٽ نوان اپنائڻ وارا هوندا. ساڳئي وقت ۾، پروجيڪٽ API کي جانچڻ ۽ وڌيڪ بهتر ڪرڻ جاري رکي ٿو، هر سال ٻه "وڏي" رليز جاري ڪري ٿو - جون ۾ (ساڳي تاريخ هڪ ئي وقت Eclipse رليز) ۽ ڊسمبر ۾، هڪ پيش گوئي شيڊول مهيا ڪري ٿو جنهن تي اپنائڻ وارا ڀروسو ڪري سگهن ٿا. اسان اهو پڻ شامل ڪري سگھون ٿا ته پروجيڪٽ جي "بگ ريٽ" مسلسل گهٽ سطح تي رهي ٿي ۽ Handly پهرين ورزن کان وٺي ابتدائي اپنائڻ وارن جي شين ۾ قابل اعتماد ڪم ڪري رهيو آهي. Eclipse Handly کي وڌيڪ ڳولڻ لاءِ، توھان استعمال ڪري سگھو ٿا شروعاتي سبق и اڏاوتي جائزو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو