ááááŁáľáŁ
á áá
á¨áááá ááŁáĽá ááľáĽáŁ á ááłááľ á¨áááśá˝ á ááá´áá¸á áĽááśášá á¨á°ááá á¨áááľ ááłáŞáŤáá˝á áááááŁáľ áĽáá° ááľá¨á ááá¨áľ áĽááááŤáá áĽá á¨á´áááá ááľá¨á áá°á¨áľ á¨áááá ᨠEclipse áááá˝á áááť ááłáĽ áááľá áľ áĽááááŤááᢠá á˛áľ á áá
áâ 1Cᥠáľáá
áľáŁ
ᨠEclipse áĽá ááá ááá˘áŤ
á ááááŞáŤ ááłáá á áá áá á¨áááśá˝ á ááá´áá¸á á ááłááľ á á ááá áá˝áłáá˝á áĽáááá¨áľ
á ááááŞáŤ á°á¨á, áááśá˝ á áľááá ááá˝ á áá á¨ááá ááá á á°áááś á¨ááłáá áááá áἠááŁá áááŁá, ááá-áááá°á á°ááŁáŤáááľ á¨á°áá°á á¨ááŽááŤá ááááá˝á ááá°áá á¨á°áá°ááá á°ááŁá á ááá¨áľ áĽá á UI áááá°á "áŽá" (áŽá) ááá¨áľ. á¨á°á áá áľáá áá á á°áŤáŤá áááá˝ ááľáĽ áŤá áááá˝.á áááá˝.
áááłáᣠEclipse Platform á¨ááŤáŁ á¨ááá ááť á¨áá áá á¨á° áááľá áááááᣠáĽá á¨á፠áááá áť ááłáŞáŤáá˝ áá áŁá ᪠áŤáá Java IDE áá° áááśá˝ áá¨ááŤáᢠáááąá Eclipse Platform áĽá JDT á¨á ááŤáł á áŤááľ á¨á°á አáá¸áᣠáĽáŤááłááąá UI-dependent "core" ááá UI layer (áľáĽá 1) ááá˘
áŠá. 1. Eclipse Platform áĽá JDT
á¨áááśá˝ ááľá¨á áá áá áááá˝á áĽááá¨ááŤáá-
- á ááľ - á¨á°á°áŞáá áá á¨á° áááľ ááááťáᢠáááśá˝ ááąá á ááá´áá¸á á ááᢠá áá°á¨áą áááśá˝ á¨"á¤ááľá´áá˝á ááĽáŚá˝" áĽá "á áĽáŤáá˝" áľáĽáľáĽ ááá˘
- á¨áĽáŤ áŚáł - á ááľ ááá á¨á፠á áá ááŽáááśá˝á áŤáľá°áłáľáŤá. ááŽáááą á ááĽáł áá° á¨ááá áľáááą á¨ááŤáłáŠ áá á°áŽá˝á áĽá áááá˝á áŤáŤáľáłáá˘
- áá°á á áááĽá ááŁáŞáŤ áľáĽáľáĽ (SWT) - á¨áľááá° áááá áá á¨á°áááą áá°á¨áłá á¨á°á áá á áááá˝ áááá˝á áŤáááŁá.
- JFace - á SWT áá á¨á°ááᥠá¨á°ááŤáŠ á¨UI ááááá˝á áŤáááŁáá˘
- á¨ááľáŞáŤ áŚáł - ᨠEclipse UI ááłáá áááááᥠá áááá˝áŁ áĽááłáá˝áŁ á áááŤá¨áśá˝á˘
áĽá áááá á ááĽá Eclipse Platform á¨á°ááá á¨áááľ ááłáŞáŤáá˝á áááááŁáľ ááá˝ áĽá á áá á áŤááľá áŤáááŁá, á¨ááá á ááŤá¨á áá¨á, áááłá°á, ááá áĽá áĄáľá áááá áłá. á á°á¨ááŞá JFace á˝ááá ááĽááľ á ááĽá - á¨ááá áŽáľ "áľáááľ á ááłá˘áá˝á" áááááŁáľ áá á¨áľá˘ áĽáá° á áááłá°á áá á¨áĽááá á áááá˝ á áá áááá áĽá áĽáá˛áá á¨áŠá áá á ááĽááĽá á áŤá á áá á˝áá áááá ááľáĽ á¨áááťá áá ᣠáľáááá á áá ááá á á°áá¨á ááá ááľáĽ á¨áááśášá áá âááâ áááá˝ áááááá áĽáŤáłá˝áá áĽáááľáŁááᢠááľá¨á áĽá JDT.
áá á ááľ áá
Eclipse Plugin Framework á¨á°áá°á¨á°á ááá˘
áá á¨áľáŤ áŚáł
á áááśá˝ áááľááá áá á¨á°ááᣠááááá IDE á¨áá áá°á ᨠEclipse á¨áľáŤ áŚáł áá áá°áŤáᢠáĽááá áá á IDE ááľáĽ áĽá¨á°ááᣠáŤááá á¨áá°áá áŞáŤáá á¨ááá áŽáľ á¨áŤáá á¨áľáŤ áŚáł ááᢠá¨áľáŤ áŚáł áŤááłáá˝ á ááĽáł áá° á¨ááá áľáááą áĽá á áááá˝á áĽá áááá˝á áŤáŤá°áą ááŽáááśá˝á áŤáŤáľáłá. áĽááá
ááŽáááśá˝áŁ áá
á°áŽá˝ áĽá áááá˝ á°á áá°ááᢠááĽáśá˝ á¨áľáŤ áŚáł. á Eclipse ááľáĽ áŤáá á¨áľáŤ áŚáł áľáá ፠á¨ááá áľáááą áá á á°áŤáŤá áĽáá° áá¸á፠áá áŤááááá, áá
á á¨áá ááá˝á ááťááá á áĽá
á ááŤááĽá áá˝áá. á á°á¨ááŞá, á¨áľáŤ áŚáłá á¨áᎠá ááŤáł á°á¨á᪠á áááááśá˝á áá°áŁá
á¨áŽá áŞáśááľ á áŤá (org.eclipse.core.resources plugin) á¨áľáŤ áŚáłáá áĽá ááĽáśášá á¨áá°áá áááááľ á áá áľá˘ á á°ááá áá
á áŤá á á
áš ááľáĽ áá° áĽáŤ áŚáłá á¨ááŽááŤá ááłá¨áťá áá°áŁá á¨ááĽá¨áľ áá´áá˝. á¨áá
áá´á áá áá¤áłá á áá ááአáááľáŤáľ á°áá áá˝ áá° ááĽáľ á¨áááľáľ á áááá á¨ááááá áľ ááá ááááľ áŤáľáááá¸ááᢠá á°ááłáłá áá á á ááłáŤá ááľáĽ áŤááá á¨ááĽá¨áąá áááł á ááĽáł á¨ááŤá¨áá˝áá ááá á¨á°áá á á°á°áŤá˝ááľ áá°á á
áĽáŠ áááá. áŤáá áá፠ᣠáááłá ᣠáááá áá°á¨á ᣠá°áá áá á á ááłáŤá ááľáĽ á¨áááá ááá á¨áá¨á°ááľ á˝ááŽá˝ áá ááŤáá áááĽá áá˝ááᢠáááśá˝ á¨ááŁááľá á áá áá áá
áá á˝áá áááłá ááŤáŁ ááá. áĽááłá áĽáá° ááá áá áŤááááá (á áĽáŤ áŚáłá ááľáĽ áá° ááĽáą á¨áááľá°áá ááááľ áĽáť áá á¨ááŤááá) áĽá áľá ááĽáą áááł áá¨áá á ááĽáł á¨ááŤá¨áá˝ á¨ááľáŁá áá´á áááá áá á áá áááŁá áŤá. áá
ááľá á¨áľááá°-áĽááľ ááŠááľ áá
áŠá. 2 á¨áááľá/á¨á°áááľ ááἠá ááĽáľ áá´á áá áĽáá°á°á°áá ᨠáŤáłáŤáᢠá¨á ááŞáśááľ á áááá˝ á¨ááĽáľ áĽááłá ááááá áĽá á¤áá á áááŁáá á á áááá˝ á¨áá°áá á¨á á¨áá¨á ááá áĽá á áŤáá á¨ááááá á¨ResourceInfo ááá á á°áá¨áŁ á¤áá á áŤáááᢠáĽááłá á¨áľáŤ áŚáł áľá á ááá áá° ááĽáą á¨áááľá°áá ááááľ á¨ááŤáá áĽá áá° áááá፠áá¨á á¨áááľáľ á ááá áĽáá°ááá á á áá¨á áĽááááááᢠá¨ááá áá¨á áĽááá˝ "á¤ááááľ áá" á ááŁá á¨ááłáááľá ááá°ááłá. áá á¨ááἠááá á á áá á°á¨ áľááľáł ááľáĽ áá á áá á°á ááˇá. á¨á ááłááľ áĽááł áá á¨ááááľ á¨ááá áá¨áá áááááľáŁ á¨ááĽá áá á¨áá°áááá á áĽááłá ááľáĽ á á°á¨áḠááááľ ááá˘
áŠá. 2. IResource áĽá ResourceInfo
á áá áĽáá°ááá¨á, á¨áááá áá´á áá°á¨áłá ááľá (á áĽá áá á¨á°áá°á¨á° áĽáá áá áŠáľ áá˝áá) á Eclipse áĽá áááá˝ áá´áá˝ áĽá á áá áááá. áĽáľá¨ááŤá áľá¨áľ á¨áá ááľá á ááłááľ áአáŁá áŞáŤáľ áĽáá á á.
- áĽááł áá áŤáá ááá ááᢠá¨áĽá´áľ áĽááá˝ áĽáŠáááłá¸á á ááááľ áá áŤáá°áá°á¨á° á¨ááááᥠáááŽá˝ áá¸áᢠáĽáá°ááá áŤá áááŽá˝ á á°á áá ááŤáŁáá˝ ááľáĽ áĽáá° ááá á á°á á ááŤáááá áá˝áá. á ááŤáł á¨ááŤáŁ ááłááá˝ á ááľ á áááľ ááĽáľá ááŤááááą áá˝ááᢠáĽááąá áááááá áĽáŠá (ááá) áá´á áá ááá˘
- Handle á¨ááĽáąá áŁá ᪠ááááá, ááá áá áľá ááĽáą áááł áá¨á á ááŤáá (áŤá¨ááťá áĽá¸áá ááἠ"ááá" áá, áá° ááĽáą á¨áááľá°á ááááľ).
- áĽááł á¨áááá ááĽáľ (áá áĽáľáŤáá áŤáá°áá ᨠááĽáľáŁ ááá á áľááľá á¨á°á°á¨á ááĽáľ) ááŤááááľ áá˝ááᢠá¨ááĽá¨áśá˝ ááá IResource.exists() áá´á á áá áá áá¨ááἠááťááá˘
- á ááłááľ ááááá˝ á ááŤáŁá ááľáĽ á á°á¨áá¸á áá¨á áá áĽáť áá°áá አáá˝áá (á¨áĽá -áĽáť áŚááŹá˝áá˝ á¨ááŁááľ)ᢠááłááá˝ IResource.getParent()ᣠgetFullPath() ááá° áá¸áᢠáĽáá˛á ááááą á°ááŁá áĽáá˛áłáŤ ááĽáą ááá á áŤáľáááááᢠáááłáŤáľ ááĽáą áĽáá˛áá á¨ááŤáľáááá¸á ááááá˝ ááĽáą á¨áá áአ(CoreException) ááĽááá˘
áááśá˝ á áľáŤ áŚáł ááĽáśá˝ áá áááŚá˝á áááłáá áááŁá áá´á áá°áŁá (ááľá 3)ᢠá Eclipse IDE á áŤáą ááľáĽ á á°á°á¨á áľáááśá˝ áĽá á¨ááá áľáááą áá á áááłá°á ááááŤáľ ááĽáśá˝ áááąáá áááᥠáá˝áá. á áááąá áááłáá˝ áááłáááŤáá˝ á¨á°áááᥠá°áá áá˝ á "Resource deltas" (á¨ááá á´ááł) ááá áááŚá˝á á á°ááá¨á° áááá áá¨á áá°áŁá. á´ááł á¨áľáŤ áŚáł ááĽáľ (áááľ-) áá á áááľ áááśá˝ ááŤá¨á á¨á°á°á¨á áááŚá˝á ááááá áĽá áĽáŤáą áá ááᣠáĽáŤááłááą ááľááá ááááľ áá ááłááľ ááĽáśá˝ áááĽá ááááá áĽá á ááá˝ ááĽáśá˝ áá á¨á°á°á¨á áááŚá˝á á¨ááááš á¨ááŁá á°á¨á á´ááłáá˝ áááá ááááá˘
áŠá. 3. IResourceChangeEvent áĽá IResourceDelta
á ááĽáľ á´ááłáá˝ áá á¨á°áá°á¨á°á á¨ááłáá፠áá´ á¨áá¨á°ááľ áŁá áŞáŤáľ á ááľáĄ
- á ááľ áá á ááἠáĽá áĽá áááŚá˝ á ááľ á áááľ ááá á á áá áá ááááá, ááááŤáąá á´ááł á¨á°áááŁá á áĽáá°áá á ááĽá ááá áá°á¨áľ áá. á¨á°áááᢠá°áá áá˝ á¨á´ááł ááá á á°á°ááá á ááá¨áľ á¨ááĽáľ ááἠááłáááŤáá˝á ááŤááľ áá˝ááá˘
- á´ááł áľá ááĽáą ááἠá¨á°áá áá¨á áááᣠáĽáá áľáá´áá áĽá/ááá á¨áĽáą áá á¨á°áŤáŤááľá "ááá¨áŽá˝" ááá¨áá á¨áᎠ(ááá¨áŽá˝ áááłá á¨áá ááá áľá á°áśá˝)á˘
- á¨ááĽáľ áááłá¨áŞáŤáá˝ á ááŤáŁá á áŠá áľááá°á¨áᣠá´ááł á á°ááĽáŽá á¨áááľ áááá ááŤááááľ áá˝ááá˘
á á áᥠáĽáá°ááá¨á á¨ááá áá´á ááἠááłáá፠áá´ ááááš á¨ááľá áĽááá˝ áááá˝ áĽááł-á°áŽá áá´áá˝á á áá áá¸á.
JDT áŽá
ᨠEclipse á¨áľáŤ áŚáł áááá፠áá´á áá°á¨áłá ááá-áááá°á áá´á ááᢠá¨JDT áŽá á áŤá (org.eclipse.jdt.core plugin) á¨áľáŤ áŚáłá ááá á á¨á፠áĽááł á ááťá ááá°áľ áĽá ááá°áá°á á¤áá á áá°áŁáᣠáĽáąá "á፠áá´á" á°áĽá á¨áá áŤá (á¨á፠áá´á). áá á¤áá á á á áááá˝ áĽá á áááá˝ á¨á°áááá á¨ááá áá´á á¤áá á á á°ááŤá á á፠á áŤááľ ááááťáᢠá¨á፠á¤ááááą áá áá áááááá˝ á ááľá ááľáĽ ááłáŤá. 4.
áŠá. 4. á¨á፠áá´á á¤ááááśá˝
á¨á፠áá´á áĽáá° ááĽáľ áá´á á°ááłáłá áĽááł/á áŤá ááἠáá ááá (ááľá 5)ᢠIJavaElement áĽááł áá áĽá JavaElementInfo á áŤá áá. á¨IJavaElement á áááá˝ áááá á¨á፠á áŤááľ á¨á°ááá° ááŽáśáŽáá ááááťáᢠá ááłááśáš áá´ááš á á áŤáŤá áĽáťáĄ- getElementName() GetParent() áĽá á¨ááłá°ááľ áá¸áᢠá¨JavaElementInfo ááá á¨á°áááá ááĽá¨ ááá áááł áŤá¨ááťáᥠá áááአáĽá áŁá áŞáŤáąá˘
áŠá. 5. IJavaElement áĽá JavaElementInfo
á¨á፠áá´á á¨ááĽá¨áľ áá´á áá á˛áááá á áá á¨áłá áĽááł / á¨á°áááľ ááľá á á°ááŁá á áá á ááłááľ ááŠááśá˝ á ááľ. á¨áá áĽáá°á°ááá¸áᣠá ááĽá¨áľ áá´á ááľáĽáŁ á ááááš á¨ááá áá¨á áĽááá˝ á¨ááá áľ ááĽá¨ ááá áá áá á áá á áá á°á¨ áľááľáł ááľáĽ ááááᢠááá áá á¨á፠áá´á á¨ááĽáľ áá á¨á áá áĽá ááĽá¨ áááŽá˝ áááŠáľ áá˝áá ááááŤáąá á ááľáĄá á¨á፠áĽá á¨ááá áááá˝á: á áááśá˝á, ááľáŽá˝á áĽá áá´áá˝á áŤáŤáľáłá.
áááá á¨ááĽá áá á áá á°á¨ áľááľáł ááľáĽ áá á áá áĽááłáá°áŤ áááľá¨áᣠá¨á፠áá´á áľáá ፠á áá á á¨á°áá°á á¤ááááľ áá¨á LRU áá¸á፠áá áááᣠááá á¨áááá IJavaElement ááᢠá¤ááááą áá¨á áááŽá˝ á¨ááá áŠáľ á¤ááááą áá á áááá áľ áá á ááááľ ááᢠá áá áááł, á áľááš á á°á°ááá áĽá á áá á¨áá ááĽá¨ áááŽá˝ á¨áá¸ááŤá ááľáĽ áááŁá, áĽá á¨á ááłáŤá áá á°á¨ áľááľáł áááł á á°áá°áá á¨áá¸á፠áá á á¨á°áá°á áá. áá á áĽááł áá á¨á°áá°á¨á° ááľá áá áĽá á áá, áá á áĽáá°ááá áŤá á¨á á°ááŁá á ááááŽá˝á á¨á°áá á áŽáľ áá á áá áá°áĽáá.
á á፠á¤ááááśá˝ áá á¨á°á°á¨á áááŚá˝á á¨ááłáá áá´ á¨áá á¨á°áĽáŤáŠáľ á¨áľáŤ áŚáł ááĽáľ áááŚá˝á ááá¨áłá°á áŤáá áá´ áá á°ááłáłá ááᢠá á፠áá´á áá áááŚá˝á áá¨áłá°á á¨áááá á°áá á áááłáááŤáá˝ áááááŁáᣠáĽááá á áĽáá° ElementChangedEvent ááá á¨ááá¨ááľ IJavaElementDelta (áľáĽá 6) á¨áŤá ááá˘
áŠá. 6.ElementChangedEvent áĽá IJavaElementDelta
á¨á፠áá´á áľá áľááśá˝ á áŤá ááá áľá áľá á ááłáľ áá¨á á ááŤáá ᣠáľáááá á á፠ááľáĽ áá°ááá áŽáľ áááá áľáá°á ᣠJDT Core á°á¨á᪠(á áĽá
áá á¨á°áá á¨á°) áá´á áá°áŁá á˘
á¨á ááŁáĽ ááá˝ á¨áá°á áá á áŤáá áá á°á¨ áľááľáłá áááľáą áľááá˝áᣠJDT á áĽáŤááłááą áá á ááłá˘ á ááľ AST áĽáť áá¸áááᢠá¨á፠áá´á á á°áᨠáááŠáŁ AST á á á ááá áĽáá° "ááŤá¨áá"ᣠ"áááŤá" áá´á áá á¨ááłá¨áᣠááĽá¨ áááŽáš AST á á¨áá á¨á áŚááŹá˝á á ááľ á᪠á á°áá áá˝ ááŤá á¨ááŁá¸ááá˘
áĽááá áśáľáľ áá´áá˝ (á¨á፠áá´á ᣠAST ᣠbindings) á á ááľ áá á áá˛á˛ ááľáĽ âá¨áá°áĽ á˝ááł áŤáá¸á á¨áááľ ááŁáŞáŤáá˝áâ áááááŁáľ áá á¨áľ áááá ᣠáá á áááá á¨á፠á ááłá˘ á¨á°ááŤáŠ âá¨áłáśá˝â áá ᣠá¨ááá áŽáľá áááľáŹáľ á¨á°ááŤáŠ áĽááááá˝á (á¨áľá ááľááŁáľ ááááá áá°áŤááľá áĽá á¨ááŽ) áĽáá° áĽá ááᤠá áá¸áľ) ᣠá¨ááá áĽá á¨ááťáťáŤ ááłáŞáŤáá˝á˘ á áá ááłá áá á¨á፠áá´á áአáá ááŤááłá ᣠááááŤáąá ááłá á¨á áá°áá áŞáŤ á áááá ááľáá áááá áá á¨áľ áá á¨ááŤááááá áĽáą áá (áááłá ᣠá Package Explorer ᣠOutline ᣠSearch ᣠCall Hierarchy áĽá á°áá¨áľ áá°ááĄ)á˘
áááśá˝ áááá˝ á 1CáĄá¨á˘áá°áááŤáá áááľ ááłáŞáŤáá˝ áĽá á áá áááá
á ááľ áá. ááľá 7 á1CáĄá¨á˘áá°áááŤáá áááľ ááłáŞáŤáá˝ á¨á´áááá ááľá¨á áá°á¨áľ á¨áááľá Eclipse áááá˝ áŤáłáŤáá˘
áŠá. 7. áááśá˝ áĽáá° ááľá¨á á1CáĄá¨á˘áá°áááŤáá áááľ ááłáŞáŤáá˝
Eclipse Platform áá°á¨áłá áá á¨á° áááśá˝á áŤáááŁá. á¨áá á áá á¨á° áááľ á ááłááľ áá áłáá˝ áŁááá ááá ááľáĽ á°áááá°áá.
áá áĽáá° ááááá áááἠáááἠááłáŞáŤáŁ EMF ááĽá á¨áá´ááá áľáŤáá˝ á°áľáá ááᣠááá áá á ááłááľ á¨áá´áá˝ áááá˝ (áááłáᣠá¨áá á¨á°áĽáŤáŠáľ á áĽááł áá á¨á°áá°á¨áą áá´áá˝) á¨á áá áአá¨áá´ááá ááłáŞáŤáá˝ áŤáľááá ááááᢠáľá EMF áááŤáľ á á°áá á á ááľ ááŁáĽá ááľá áááá ááľáĽ áá
á¨á°áᨠáá˝áá ááá° ááłá áľááá áĽá á áŁá áááŤá áľááá ááľáá á˘áľ á°ááŁá ááᢠá EMF áľá áŤáá á á ááá á¨áĽáŤáľ áľáááľ á á¨áá°á á°á¨á ááŽáááľ ááľáĽ á¨á°áŤá°áą á á ááá á¨áá´ááá ááŽáááśá˝ áĽáá˛áááą ááááąá áĽáť áĽááľá°ááááá˘
1C:á¨á˘áá°áááŤáá áááľ ááłáŞáŤáá˝ áááąáá EMF áĽáŤáąá áĽá ááá˝ á ááŤáł ᨠEclipse áá´ááá ááŽáááśá˝á á áááľ áá áááᢠá á°ááá Xtext ááĽáá°áá áŤá 1CáĄá¨á˘áá°áááŤáá ááááá˝ áĽáá° á áĽáŽááἠá¨ááŽááŤá ááá áĽá á¨áá áá ááá á ááą á¨áááľ ááłáŞáŤáá˝ áá á¨áśá˝ á ááą ááᢠááá á¨áĽááá á¨áááľ ááłáŞáŤáá˝ áá°á¨áľ á¨ááá Eclipse Handly ááŽáááľ áá, áĽáąá á á áá áááá ááľáĽ áĽáááŤáá (á¨á°áá¨ááŠáľ ᨠEclipse áááá˝ ááľáĽ, áĽáľáŤáá áľá¨áľ á áŁá áľááš áá).
áĽáá° áĽááł/á¨á°áááľ ááἠáŤá á áĽá áá á¨á°áá°á¨áą áá´áá˝ áá°á¨áłá á¨áľá-á áá áááá˝ á¨áá á¨ááĽáľ áá´áá áĽá á¨ááŤá áá´á áĽáá° ááłá á°á á áá á°áĽáŤáá°ááᢠá á°á¨ááŞá á¨ááá áá´á áĽá á¨á፠áá´á á Eclipse Java development tools (JDT) á áľááá áá°á¨áľ áááá¸ááá á°ááááˇáᢠáĽá ááá áááľ ááťáá Eclipse *DT ááŽáááśá˝ á¨áá˛á˛ áá á¨áááłá°á á ááá´áá¸á áľááá¸áᣠá áááśá˝ ááľá¨á áá á¨á°á°áŠ ááá á áá˛á˘áá˝ áŤááá áĽááá˝á á áŤááľ áá á¨á°áá°á¨áą áá´áá˝ áá¸á á˘áŁá áľáá áááá á ááááᢠáááłáᣠEclipse C/C++ Development Tooling (CDT) á áá˛á˛ ááľáĽ áŤáá á¨á፠áá´á áá á°ááłáłá áá á¨ááŤáá°á á á˛á˛á˛ á ááá´áá¸á ááľáĽ á¨áá°áŤ C/C++ áá´á á ááá˘
á¨áááľá á ááľáŁ Eclipse á áĽá áá á¨á°áá°á¨áą á¨ááá áá´áá˝á áááááŁáľ áአá¤á°-ááťáááľ á áá°á áᢠáᏠáŤááľ áá´áá˝ á ááááľ á¨á°áá áŠáľ á¨á፠áá´á áŽáľá (á áááá áĽ/ááá á) á ááĽáł á ááľá°áŤá¨á ááᢠá ááá áľáŁá¸á áááłáá˝ ááľáĽ Eclipse Public License (EPL)ᢠ(á áĽááἠᣠᨠEclipse á¨áŤáą ááŽáááśá˝ ᣠáá áĽááá áá á¨áá ááłá á áá°áá ᣠáá á áá°ááá ááá áááśá˝ á áá°áá á˘) á¨áŁá áŞá áľááᤠá á°á¨á᪠ᣠáá áá´ áá° áłáá á˝ááŽá˝ áŤááŤá-á¨áŽáľ ááŁááľ á á áľá°áááᢠá¨áľá á°áśá˝ áá á ááľááá áľ áá, ááá°. ááŁáľ áĽáá á¨á°áááľ áá´áá˝ "á áŤáłá¸á ááľáĽ áŤá áááŽá˝" áááŤá áĽá á áá áŤááá á¨ááááľ á á á á áá ááá. ááá áá á¨á፠á˝áá°-ááłáŚá˝á áĽá ááŽáśáŽáá˝á áááá áĽááł-á°áŽá áá´áá˝ ááá°áĽ á EMF ááłá áá áĽáá°á°á¨á°á°á áá á¨áĽááą áá á áĽáŽ áááľáŤáľ áĽáá°áá áĽá á áá ááá á¨áá˝á áááá˝á ááá á áá˝ááá˘
áá
áááľ áááśá˝ áľáááá
á˝ááŽá˝ áááᤠá ááá á¨áá áááľ á áá°áá. á 2005 á°áááľ
á á°áá°á áááŠáŁ áááľá ááŽáááą áĽáá° EMF á°ááłáłá áľáŤáá˝á ááááłáľ á¨á°áá°á ááᣠááá áá á áĽááł áá áá°áá°á¨áą áá´áá˝ áĽá á áááááľ ááááá˝ (áááľáᣠá¨ááŽááŤá á ááŁáĽ áááá á¨áááá)ᢠá Handly ááááš á¨ááľá ááŚá˝ á¨áá¨á°ááľ áá¸áá˘
- á¨ááá°-ááłáŠá áá áá áá áááŤáá˝ áááá.
- áĽá¨áąá ááááľ áĽá á¨ááá á áŤáŤá-á°áŽá áá´áá˝á á áŽáľ áĽáá°áá áĽá á áá á ááá áĽáŤáľá ááťáťáá˘
- á¨á°ááá° á¨ááł-á°á¨á á¤áá á áá°áá áŠáľ áá´áá˝ áá á¨áĽáŁ á ááá áĽááł áá á¨á°áá°á¨áą áá´áá˝ áá á¨áá°áŠ á¨á፠IDE áááá˝á ááá á áŤáľá˝ááá˘
- á°ááááááľ áĽá áááŤáľ.
- ᨠXtext áá (á á°áᨠááĽááĽá) áá á°áľ.
á¨á፠á˝áá°-ááłáŚá˝á áĽá ááŽáśáŽáá˝á áááááľáŁ á áá áŤááľ á¨ááá á áŤáŤá-á°áŽá áá´áá˝ á á°ááŁá á á°á°áá°áᢠá áááľly á¨áá¨áĄáľ áá áááááá˝ áĽá á¨áá á¨áľ á á°ááŁá á á áľáĽá 8-XNUMX ááłáŤáᢠXNUMX.
áŠá. 8. á¨á፠áááááá˝ áĽá á¨áááľly á áŤááľ áá°á¨áłá á á°ááŁá á
á¨IElement á áááá˝ á¨á ááľá á¤ááááľ áĽááł ááááá áĽá á ááá áááľly áá á¨á°áá°á¨áą áá´áá˝ á áŤááľ á¨á°ááá° ááᢠá¨á áĽáľáľáŤááľ ááá á¤ááááľ á á ááá áĽááł/á¨á°áááľ áá´á á°ááŁáŤá áŤá°ááá (áľáĽá 9)á˘
áŠá. 9. á¨ááŤáŁ / á áŤá á á ááá áĽá á á ááá á á°ááŁá á
á á°á¨ááŞá áááľá á¨áá´á áááá˝á ááááἠá á ááá á¨ááłáá፠áá´á áŤáááŁá (ááľá 10)ᢠáĽáá°áááá¨áąáľáŁ á áĽá á á˛áłáᣠá ááĽá¨áľ áá´á áĽá á á፠áá´á ááľáĽ á¨á°á°áá áŠáľ á¨ááłáá፠áá´áá˝ áá á°ááłáłá ááᣠáĽá IelementDeltaá áá°ááá° á¨ááĽá ááἠáá¨áá áá áááá˘
áŠá. 10. á¨áááľly ááłáá፠áá´ á¨á°áááą áááááá˝ áĽá áá°á¨áłá á á°ááŁá á
á¨áá á¨á°ááá¨á°á á¨áááľá ááá (ááľá 9 áĽá 10) áááááá á áĽá áá á¨á°áá°á¨áą áá´áá˝á áááá¨á ááŤáááá áá˝ááᢠáááá á á¨ááá áá´áὠᣠááŽáááą á°á¨á᪠á°ááŁáŤáľá áŤáááŁá - á á°ááá á¨á፠á áááážá˝ áĽá á¨áá á¨áľ áľáá áŤáá˝ á¨ááá á˝áá ááá á á áŤáᾠᣠá¨ááŁááľ ááá á áŁáá˝ (ááľá 8) á¨ISourceFile á áááá˝ á¨ááá áááá áááááᣠáĽá ISourceConstruct á ááá ááá ááľáĽ áŤááá á áŤá áááááᢠᨠá áĽáľáľáŤááľ áááá˝ SourceFile áĽá SourceConstruct á¨ááá áááá˝ áĽá ááááťá¸á áá á áĽáŽ áááľáŤáľ áááá°áá áľááśá˝á áá°ááĽáŤáᣠáááłá á¨á˝áá ááá¨áŤáá˝ áá á áĽáŽ ááľáŤáľáŁ á¨ááአá˝áá ááľáĽ á¨á áŁá ááá ááŤáá˝ áá ááŤáŤáᣠáá´áá á áá áŤáá á¨áľáŤ á á ááľ áááśá˝ áá ááľáłá¨á ᣠááá°. . áĽááá á áľááśá˝ áá°áá á áĽá áá á áŁá ááłá ááᣠáĽá áááľá áĽáŤáľ áŤáá áá°á¨áłá á á°ááŁá áá á áá á¨áĽ áĽááł áá á¨á°áá°á¨áą á¨ááá áá´áá˝á ááááááľ á¨áá°á¨ááá áĽá¨áľ á áĽá á ááááłáá˘
á¨áá á¨á°áá¨ááŠáľ áá áľááśá˝ á á°á¨á᪠áááľá á¨á˝áá ááľ áĽá á á˝á á°-ááś áá á¨á° áááľáᣠá¨ááá áŽáľ á ááłááá˝ áá áááááľ áľááá (á¨áłáĽá áá ᨠXtext á ááł editor áá áááááá á¨ááŽ) áĽáá˛áá á¨áá°áŠ á ááłááľ á¨á°áááą á¨áŠá áᤠáááá˝á áŤáááŁáᢠá áááľá áá´áá˝ áĽáá° á¨áááá áááá. á á áá áááłá¨áľ ááŽáááą á áááľá áá á¨á፠áá´á áá°áá áá á¨áᎠá ááŤáł ááłááá˝á áá°áŁáᢠ(á áá˛á˛ ááľáĽ áŤáá á¨á፠áá´á áá á á°ááŁá á áá á˛áááá áá áá´á áá á°áĽá áá°áťá ááá˝ááľ á á°áá°á á°á¨á ááá áŤá ááá˘)
áá°á á˛á áĽáá°á°áááá á¨áááľá á¨ááááŞáŤ ááľá áĽá áááľ á á¨áá°á áááł áĽá á á°ááááááľ áá áŤá°áŽá¨ áá á áĽá ááĽááá˘
á ááá á°á¨á, á áĽááł áá á¨á°áá°á¨áą áá´áá˝ "á ááľá" á á°áἠáááŤá. áááłá, áĽááł / á¨á°áááľ ááἠá á ááłáŤá á¨áá ááá áá á°á¨ áľááľáł áá á áĽáá˛ááľáĄ áŤáľá˝áááłá. áá á ááłááľ ááŠááśá˝á á á. áľááá ᣠHandly á scalability á ááá¨áá áľ áá ᣠââââá ááłáááŤá áá´ áľáá ፠áá á˝áá áłááˇá - áĽá ááĽá¨ áááŽá˝á á˛ááአᣠá´ááłáá˝á ááááŁáľ á áŁá áĽá áá ááľáˇáᢠá°ááłáłáŠ á˝áá á áá˛á˛ á፠áá´á ááľáĽ áĽááłá á°ááá ᣠá¨á፠á°ááłá áŽáľ á á ááľ áá á°áľá°áŤáááᢠá áááľly áá áľá á°áľ á áľá°áŤáááá áĽá áJDT á°ááłáłá á¨áá áááľá°á á ááá á°ááᣠáĽáąá á á ááľááááľ á°áá ááᢠáááľlyá áá° ááŁá áá´á áľáá áŤáá˝ áá°áá አá áá ááá á¨áá˝áá áľ á ááľ ááłá áĽáť ááᣠááááŤáąá áĽáá˛á áŤááá áľá á°áľ á á ááľ áŚáł áĽáť ááľá°áŤá¨á áľáááťáá˘
áááľá áá° ááŁá á¨áá´á á á°ááŁá á á á´áááŤá á°ááŁáŤá áááľá¨á á¤á° ááá
ááą á áŁá á°áááá ááá á áá áľá˘ ááá á˝áá á¨á ááłáŤá á¤áá á áá áá° áá á°áłááááľá áá á á
ááᢠáá
á˝áá á¨á°ááłá áĽ.á¤.á
á°ááááááľ ááá˝ áá˝áłáá˝á á ááľ. áááłá áááľá á á ááłáŤá ááá
á áá ááá áá°áŚá˝á á ááĽáá áĽá á á ááá ááá áŤáá¸áá ááááá˝ áĽáá˛áá ááŤ-á°áŽá ááááá˝á ááá
á¨á˝ ááŤáááá áá˝ááᢠá¨ááá ááá á ááááŠá á ááááĄá áľ áá áááľá ááá á ááᾠᨠAST áááá á áááá˝á áĽá á ááá
á°á¨á ᨠAST áĽáŤáąá áĽááłá á áá áá
á, áľááá
á¨ááááá á¨áá°áá°á áá´ áá á°áłááááľá áŤá¨áááŁá. á áá¨á¨áťá áááľá ᨠEclipse á¨áľáŤ áŚáł áá áá áá
á°áľá áá°áááᣠááá áá á¨ááá áľáááśá˝ áá á ááááą á ááĽáł ááľáŤáľ áá˝ááá˘
á¨á áá áľáŞáľ
á¨áá áĽáá°á°áááá á¨áĽááá
áááśá˝ ááľáĽ á ááą 1C: á¨á˘áá°áááŤáá áááľ ááłáŞáŤáá˝ áá, áááľá áá á¨ááááŞáŤá ááᎠáĽá
á áá á¨áááá ᨠ1C: á˘áá°áááŤáá ááááá˝á áĽáá° á¨á°á¨á°á° á¨ááŽááŤá ááá áĽá á¨áá áá
áááá ááá
á¨á˝ áá. áá áááľ á ááἠáááľ áĽáá á ááłáá
áᢠáá
áľáŞáľ 1.0 á¨á°ááá á áá áá¤áá á áá¨áááľ ááľáľá áĽá ááŽáááą á¨ááľáŁáą áááł á¨áᣠá áá áááľá á áłá˛áľ á áłáłááá˝ áĽáá°ááá¨á á°áľá áĽáá°ááááᢠáĽáľá¨ááŤá áľá¨áľáŁ ááŽáááą á áááľ áááľ "áľáá
" áááśá˝ á áá (á á°ááłáłá áááśá˝ á¨áááá
á áľ áá) áĽá á˛á´áá á áá á¤áá áá á¨á áá ááá¨á áĽá ááĽáŤáľ ááĽááᣠáá
á áá˛ááťáá˝ áá°áááá áľ á¨áá˝á áá°áá á á¨áá˝á á¨áá á°ááł áá°áŁáᢠá á°á¨ááŞá á¨ááŽáááą "á¨áłá፠áá á" á áá áá
á°á á°á¨á áá áĽáá°ááá áĽá Handly á¨ááááŞáŤááš áľáŞáśá˝ ááᎠá á
áľá á áłáłááá˝ áááśá˝ áá á á áľá°ááá áááł áĽá¨á°áŤ áááá áá¨á áĽáá˝áááᢠᨠEclipse Handly áá á¨á áá áááá
ᣠáá áá áá˝ááá˘
ááá: hab.com