Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair

is dócha, eclipse le fada ó shin níor ghá aon réamhrá speisialta. Tá cur amach ag go leor daoine ar Eclipse a bhuíochas le huirlisí forbartha Eclipse Java (JDT). Is é an Java IDE foinse oscailte seo a bhfuil an-tóir air a chomhcheanglaíonn formhór na bhforbróirí leis an bhfocal “Eclipse”. Mar sin féin, is ardán leathnaithe é Eclipse chun uirlisí forbartha a chomhtháthú (Ardán Eclipse), agus roinnt IDEanna a tógadh ar a bhonn, lena n-áirítear JDT. Is é Eclipse an Tionscadal Eclipse araon, an tionscadal ardleibhéil a chomhordaíonn forbairt an Ardán Eclipse agus an JDT, agus an Eclipse SDK, toradh seachadta na forbartha sin. Ar deireadh, is Fondúireacht foinse oscailte é Eclipse le pobal ollmhór tionscadal, nach bhfuil gach ceann acu scríofa i Java nó a bhaineann le huirlisí forbartha (mar shampla, tionscadail IoT Eclipse и Eolaíocht Eclipse). Tá domhan Eclipse an-ilghnéitheach.

San Airteagal seo, atá forbhreathnú sa nádúr, déanfaimid iarracht féachaint ar chuid de bhunghnéithe ailtireacht Eclipse mar ardán chun uirlisí forbartha comhtháite a thógáil agus smaoineamh tosaigh a thabhairt ar na comhpháirteanna Eclipse atá mar bhunús leis an teicneolaíocht. ardán don “Configurator nua” 1C: Fiontar. 1C: uirlisí forbartha fiontraíochta saor in aisce,. Ar ndóigh, beidh athbhreithniú den sórt sin dosheachanta den chuid is mó superficial agus sách teoranta, lena n-áirítear toisc go bhfuil muid ag díriú ní hamháin ar fhorbróirí Eclipse mar an lucht féachana sprice. Mar sin féin, tá súil againn go mbeidh fiú forbróirí Eclipse taithí acu in ann faisnéis suimiúil a fháil san alt. Mar shampla, labhróimid faoi cheann de “rúin an Eclipse”, tionscadal réasúnta nua nach bhfuil mórán aithne air. Eclipse Handly, a bhunaigh agus a thacaigh 1C.
Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair

Réamhrá ar Ailtireacht Eclipse

Breathnaímid ar dtús ar roinnt gnéithe ginearálta den ailtireacht Eclipse ag baint úsáide as an sampla Eclipse uirlisí forbartha Java (JDT). Ní thaisme an rogha JDT mar shampla. Is é seo an chéad timpeallacht forbartha comhtháite le feiceáil in Eclipse. Cruthaíodh tionscadail * DT Eclipse eile, ar nós Eclipse C/C++ Development Tooling (CDT), níos déanaí agus tugadh ar iasacht iad idir bhunphrionsabail ailtireachta agus blúirí cód foinse aonair ó JDT. Tá bunghnéithe na hailtireachta atá leagtha síos in JDT ábhartha go dtí an lá inniu le haghaidh beagnach aon IDE a tógadh ar bharr an Ardán Eclipse, lena n-áirítear 1C: Uirlisí Forbartha Fiontair.

Ar an gcéad dul síos, ba cheart a thabhairt faoi deara go bhfuil Eclipse tréithrithe ag cisealú ailtireachta measartha soiléir, le deighilt feidhmiúlacht teanga-neamhspleách ó fheidhmiúlacht atá deartha chun tacú le teangacha ríomhchlárúcháin ar leith, agus deighilt comhpháirteanna “croíláir” atá neamhspleách ar Chomhéadain ó na comhpháirteanna a bhaineann leo. le comhéadan úsáideora tacaíochta.

Mar sin, sainíonn an tArdán Eclipse bonneagar coiteann, teanga-neamhspleách, agus cuireann na huirlisí forbartha Java IDE Java lán-feiceáil le Eclipse. Tá roinnt comhpháirteanna san Ardán Eclipse agus an JDT araon, agus baineann gach ceann acu le “croílár” atá neamhspleách ar Chomhéadain nó le ciseal Chomhéadain (Fíor 1).

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 1. Ardán Eclipse agus JDT

Déanaimis liosta de na príomhchodanna den Ardán Eclipse:

  • Runtime — Sainmhíníonn an bonneagar breiseán. Tá ailtireacht modúlach tréithrithe ag Eclipse. Go bunúsach, is bailiúchán "pointí sínte" agus "sínte" é Eclipse.
  • Spás Oibre — Bainistíonn tionscadal amháin nó níos mó. Is éard atá i dtionscadal ná fillteáin agus comhaid atá mapáilte go díreach chuig an gcóras comhad.
  • Foireann Uirlisí Caighdeánach Giuirléid (SWT) - Soláthraíonn gnéithe bunúsacha comhéadan úsáideora atá comhtháite leis an gcóras oibriúcháin.
  • JFace — Soláthraíonn sé roinnt creataí Chomhéadain a tógadh ar bharr SWT.
  • Workbench — Sainmhíníonn sé paraidím Chomhéadain Eclipse: eagarthóirí, tuairimí, peirspictíochtaí.

Ní mór a rá go soláthraíonn Ardán Eclipse go leor comhpháirteanna úsáideacha eile freisin chun uirlisí forbartha comhtháite a thógáil, lena n-áirítear Debug, Compare, Search, agus Foireann. Ba cheart tagairt ar leith a dhéanamh do JFace Text - an bonn chun “eagarthóirí cliste” a thógáil ar an gcód foinseach. Ar an drochuair, ní féidir fiú scrúdú cursory a dhéanamh ar na comhpháirteanna seo, chomh maith leis na comhpháirteanna ciseal Chomhéadain, laistigh de raon feidhme an ailt seo, mar sin sa chuid eile den alt seo cuirfimid teorainn le forbhreathnú ar na príomhchodanna “croíláracha” de. an tArdán Eclipse agus JDT.

Croí-Am Rite

Tá bonneagar breiseán Eclipse bunaithe ar OSGi agus a sholáthraíonn an tionscadal Eclipse Equinox. Is beart OSGi é gach breiseán Eclipse. Sainmhíníonn sonraíocht OSGi, go háirithe, meicníochtaí le haghaidh leagan agus réiteach spleáchais. Chomh maith leis na meicníochtaí caighdeánacha seo, tugann Equinox isteach an coincheap pointí leathnaithe. Is féidir le gach breiseán a phointí síntí féin a shainiú, agus feidhmiúlacht bhreise (“síntí”) a thabhairt isteach sa chóras ag baint úsáide as pointí síntí arna sainiú ag na forlíontáin chéanna nó eile. Tá aon chur síos mionsonraithe ar na meicníochtaí OSGi agus Equinox thar raon feidhme an ailt seo. Ná tabhair faoi deara ach go bhfuil modúlú in Eclipse iomlán (cuimsíonn aon fhochóras, lena n-áirítear Runtime, breiseán amháin nó níos mó), agus is síneadh é beagnach gach rud in Eclipse. Ina theannta sin, bhí na prionsabail seo leabaithe in ailtireacht Eclipse i bhfad sular tugadh isteach OSGi (ag an am sin d’úsáid siad a dteicneolaíocht féin, mórán cosúil le OSGi).

Lárionad Oibre

Oibríonn beagnach aon timpeallacht chomhtháite forbartha a tógadh ar bharr an Ardán Eclipse le spás oibre Eclipse. Is é an spás oibre a chuimsíonn cód foinse an fheidhmchláir a forbraíodh san IDE de ghnáth. Léarscáileanna spás oibre díreach chuig an gcóras comhad agus tá sé comhdhéanta de thionscadail ina bhfuil fillteáin agus comhaid. Tugtar na tionscadail, na fillteáin agus na comhaid seo acmhainní spás oibre. Feidhmíonn cur i bhfeidhm spás oibre in Eclipse mar thaisce maidir leis an gcóras comhad, rud a fhágann gur féidir trasnú an chrainn acmhainne a bhrostú go suntasach. Ina theannta sin, soláthraíonn spás oibre roinnt seirbhísí breise, lena n-áirítear meicníocht fógartha le haghaidh athruithe acmhainní и bonneagar tógálaí incriminteach.

Tá an chomhpháirt Croí-Acmhainní (breiseán org.eclipse.core.resources) freagrach as tacú leis an spás oibre agus lena acmhainní. Go háirithe, soláthraíonn an chomhpháirt seo rochtain ríomhchláraithe ar an spás oibre san fhoirm samhlacha acmhainne. Chun oibriú go héifeachtach leis an tsamhail seo, teastaíonn bealach simplí ó chliaint chun nasc chuig acmhainn a chur i láthair. Sa chás seo, bheadh ​​​​sé inmhianaithe an rud a stórálann go díreach ar staid na hacmhainne sa mhúnla a cheilt ó rochtain na gcliant. Seachas sin, i gcás, mar shampla, comhad a scriosadh, d'fhéadfadh an cliant leanúint de bheith i seilbh réad nach bhfuil sa mhúnla a thuilleadh, agus na fadhbanna ina dhiaidh sin. Réitíonn Eclipse an fhadhb seo ag baint úsáide as rud ar a dtugtar láimhseáil acmhainn. Feidhmíonn Láimhseáil mar eochair (ní bhíonn a fhios aige ach an cosán chuig an acmhainn sa spás oibre) agus rialaíonn sé go hiomlán rochtain ar an réad múnla inmheánach, a stórálann go díreach faisnéis faoi staid na hacmhainne. Is éagsúlacht é an dearadh seo ar an bpatrún Láimhseáil/Corp.

Rís. Léiríonn Figiúr 2 an idiom Handle/Corp mar a chuirtear i bhfeidhm é ar an tsamhail acmhainne. Is ionann comhéadan IResource agus láimhseáil acmhainne agus is API é, murab ionann agus an rang Acmhainní, a chuireann an comhéadan seo i bhfeidhm, agus an rang ResourceInfo, a sheasann don chomhlacht, nach APInna iad. Cuirimid béim ar nach bhfuil a fhios ag an láimhseáil ach an cosán chuig an acmhainn i gcoibhneas le fréamh an spáis oibre agus nach bhfuil nasc ann le faisnéis acmhainne. Cruthaíonn réada faisnéise acmhainne “crann eiliminte” mar a thugtar air. Tá an struchtúr sonraí seo ábhartha go hiomlán sa chuimhne. Chun an sampla faisnéise acmhainne a fhreagraíonn do hanla a fháil, trasnaítear an crann eiliminte de réir an chosáin atá stóráilte sa hanla sin.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 2. IResource agus ResourceInfo

Mar a fheicfimid níos déanaí, úsáidtear dearadh bunúsach na samhla acmhainne (d'fhéadfaimis é a thabhairt ar láimhseáil-bhunaithe) in Eclipse le haghaidh samhlacha eile freisin. Faoi láthair, déanaimis liosta de chuid de na hairíonna sainiúla den dearadh seo:

  • Is réad luacha é láimhseáil. Is éard is cuspóirí luacha ann ná réada do-athchurtha nach bhfuil a gcomhionannas bunaithe ar fhéiniúlacht. Is féidir rudaí den sórt sin a úsáid go sábháilte mar eochair i gcoimeádáin hashed. Is féidir tagairt a dhéanamh don acmhainn chéanna i gcásanna iomadúla láimhseála. Chun iad a chur i gcomparáid, ní mór duit an modh comhionann (Réad) a úsáid.
  • Sainmhíníonn Handle iompar acmhainne, ach níl faisnéis ann faoi staid na hacmhainne (is é an t-aon sonraí a stórálann sé ná an "eochair", an cosán chuig an acmhainn).
  • D’fhéadfadh Handle tagairt a dhéanamh d’acmhainn nach bhfuil ann (ceachtar acmhainn nár cruthaíodh go fóill, nó acmhainn atá scriosta cheana féin). Is féidir an bhfuil acmhainn ann a sheiceáil trí úsáid a bhaint as modh IResource.exists().
  • Is féidir roinnt oibríochtaí a chur i bhfeidhm bunaithe ar fhaisnéis arna stóráil sa láimhseáil féin amháin (oibríochtaí láimhseála amháin mar a thugtar orthu). Is samplaí iad IResource.getParent(), getFullPath(), etc. Ní gá go mbeadh an acmhainn ann le go n-éireoidh lena leithéid d’oibríocht. Oibríochtaí a dteastaíonn acmhainn uathu chun go n-éireoidh leo caitheann CoreException mura bhfuil an acmhainn ann.

Soláthraíonn Eclipse meicníocht éifeachtach chun fógra a thabhairt faoi athruithe ar acmhainní spás oibre (Fíor 3). Is féidir acmhainní a athrú mar thoradh ar ghníomhaíochtaí a dhéantar laistigh den IDE Eclipse féin nó mar thoradh ar shioncrónú leis an gcóras comhad. Sa dá chás, cuirtear faisnéis mhionsonraithe ar fáil do chliaint a shíníonn d’fhógraí faoi na hathruithe i bhfoirm “resource deltas”. Déanann deilt cur síos ar athruithe idir dhá stát de chrann acmhainn spáis oibre (fo) agus is crann é féin, a ndéanann gach nód cur síos ar athrú ar acmhainn agus ina bhfuil liosta deilt ag an gcéad leibhéal eile a chuireann síos ar athruithe ar acmhainní leanaí.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 3. IResourceChangeEvent agus IResourceDelta

Tá na tréithe seo a leanas ag an meicníocht fógartha atá bunaithe ar deilte acmhainne:

  • Déantar cur síos ar athrú amháin agus go leor athruithe ag baint úsáide as an struchtúr céanna, ós rud é go dtógtar an deilt ag baint úsáide as prionsabal na comhdhéanamh athfhillteach. Is féidir le cliaint suibscríobhaí fógraí um athrú acmhainní a phróiseáil trí shliocht athchúrsach trí chrann deilt.
  • Tá faisnéis iomlán sa deilt faoi athruithe ar an acmhainn, lena n-áirítear a gluaiseacht agus/nó athruithe ar na “marcóirí” a bhaineann léi (mar shampla, léirítear earráidí tiomsaithe mar mharcóirí).
  • Ós rud é go ndéantar tagairtí acmhainní tríd an láimhseáil, is féidir le deilt tagairt a dhéanamh go nádúrtha d'acmhainn iargúlta.

Mar a fheicfimid go luath, tá na príomhchodanna de dhearadh na meicníochta fógra um athrú múnla acmhainní ábhartha freisin do mhúnlaí eile atá bunaithe ar láimhseáil.

Croílár JDT

Is múnla bunúsach teanga-agnostic é samhail acmhainn spáis oibre Eclipse. Soláthraíonn comhpháirt JDT Core (breiseán org.eclipse.jdt.core) API chun struchtúr an spáis oibre a nascleanúint agus a anailísiú ó thaobh Java de, an “samhail Java” mar a thugtar air (Múnla Java). Sainmhínítear an API seo i dtéarmaí eilimintí Java, i gcomparáid leis an múnla bunúsach acmhainne API, atá sainmhínithe i dtéarmaí fillteáin agus comhaid. Taispeántar príomh-chomhéadain an chrainn eilimint Java i bhFíor. 4.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 4. Eilimintí Samhail Java

Úsáideann an tsamhail Java an teanga láimhseála/cabhail chéanna leis an tsamhail acmhainne (Fíor 5). Is é IJavaElement an láimhseáil, agus imríonn JavaElementInfo ról an chomhlachta. Sainmhíníonn comhéadan IJavaElement prótacal is coiteann do gach eilimint Java. Tá cuid dá modhanna láimhseála amháin: getElementName(), getParent(), etc. Stórálann an réad JavaElementInfo staid na heiliminte comhfhreagracha: a struchtúr agus a tréithe.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 5. IJavaElement agus JavaElementInfo

Tá roinnt difríochtaí sa tsamhail Java i gcur i bhfeidhm an bhundearaidh láimhse/cabhail i gcomparáid leis an tsamhail acmhainne. Mar a luadh thuas, sa mhúnla acmhainne, tá an crann eiliminteach, a bhfuil a nóid ina réad faisnéise acmhainne, go hiomlán i gcuimhne. Ach is féidir le líon i bhfad níos mó eilimintí a bheith ag samhail Java ná an crann acmhainne, toisc go léiríonn sé freisin struchtúr inmheánach comhaid .java agus .class: cineálacha, réimsí, agus modhanna.

Chun crann iomlán na n-eilimintí sa chuimhne a sheachaint go hiomlán, úsáideann cur i bhfeidhm samhail Java taisce LRU de mhéid teoranta d'eolas eilimint, áit a bhfuil an eochair láimhseáil IJavaElement. cruthaítear réada faisnéise eiliminte ar éileamh agus an crann eiliminte á nascleanúint. Sa chás seo, díshealbhaítear na míreanna is lú a úsáidtear go minic as an taisce, agus tá tomhaltas cuimhne an tsamhail teoranta go fóill don mhéid taisce sonraithe. Buntáiste eile é seo a bhaineann le dearadh atá bunaithe ar láimhseáil, a cheiltíonn sonraí cur chun feidhme den sórt sin go hiomlán ó chód an chliaint.

Go ginearálta tá an mheicníocht chun athruithe ar eilimintí Java a fhógairt cosúil leis an meicníocht chun athruithe ar acmhainní spás oibre a pléadh thuas a rianú. Síníonn cliant ar mian leis monatóireacht a dhéanamh ar athruithe sa tsamhail Java d’fhógraí, a léirítear mar réad ElementChangedEvent ina bhfuil IJavaElementDelta (Fíor 6).

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 6. ElementChangedEvent agus IJavaElementDelta

Níl faisnéis sa mhúnla Java faoi chomhlachtaí modha nó réiteach ainmneacha, mar sin le haghaidh anailís mhionsonraithe ar chód scríofa i Java, soláthraíonn JDT Core múnla breise (neamh-láimh-bhunaithe): crann comhréire teibí (crann comhréire teibí, AST). Léiríonn AST an toradh ar pharsáil an téacs foinseach. Freagraíonn nóid AST d’eilimintí de struchtúr an mhodúil foinse (dearbhuithe, oibreoirí, nathanna cainte, etc.) agus tá faisnéis iontu faoi chomhordanáidí na heiliminte comhfhreagracha sa bhuntéacs, chomh maith le (mar rogha) faisnéis faoi réiteach ainmneacha i bhfoirm naisc chuig mar a thugtar orthu ceangail. Is éard is ceangail ann ná réada a léiríonn eintitis ainmnithe, amhail cineálacha, modhanna, agus athróga, atá ar eolas ag an tiomsaitheoir. Murab ionann agus nóid AST, ar crann iad, tacaíonn ceangail le crostagairt agus cruthaíonn siad graf de ghnáth. Is é an aicme teibí ASTNode an bunrang coiteann do gach nóid AST. Freagraíonn fo-aicmí ASTNode do struchtúir chomhréire ar leith den teanga Java.

Toisc gur féidir le crainn chomhréire méid suntasach cuimhne a ithe, ní dhéanann JDT ach AST amháin a thaisceadh don eagarthóir gníomhach. Murab ionann agus samhail Java, breathnaítear ar an AST go hiondúil mar mhúnla “idirmheánach”, “sealadach” nár cheart do chliaint tagairt a dhéanamh dá gcomhaltaí lasmuigh de chomhthéacs na hoibríochta as ar eascair cruthú an AST.

Tá na trí mhúnla liostaithe (samhail Java, AST, ceangail) le chéile mar bhunús chun “uirlisí forbartha cliste” a thógáil i JDT, lena n-áirítear eagarthóir cumhachtach Java le “cúntóirí” éagsúla, gníomhartha éagsúla chun cód foinse a phróiseáil (lena n-áirítear liosta allmhairithe a eagrú ainmneacha agus formáidiú de réir na stíl shaincheaptha), uirlisí cuardaigh agus athfhachtóirithe. Sa chás seo, tá ról speisialta ag an tsamhail Java, ós rud é go n-úsáidtear é mar bhunús le haghaidh léiriú amhairc ar struchtúr an fheidhmchláir atá á fhorbairt (mar shampla, i Package Explorer, Imlíne, Cuardach, Ordlathas Glaonna, agus Ordlathas Cineál).

Comhpháirteanna eclipse a úsáidtear in 1C: Uirlisí Forbartha Fiontair

I bhFíor. Léiríonn Fíor 7 na comhpháirteanna Eclipse atá mar bhunús leis an ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 7. Eclipse mar ardán do 1C: Uirlisí Forbartha Fiontair

Ardán Eclipse soláthraíonn sé bonneagar bunúsach. D'fhéachamar ar roinnt gnéithe den bhonneagar seo sa chuid roimhe seo.

Creat Samhaltú Eclipse (EMF) soláthraítear modh ginearálta chun sonraí struchtúrtha a shamhaltú. Tá EMF comhtháite leis an Ardán Eclipse, ach is féidir é a úsáid ar leithligh freisin i bhfeidhmchláir rialta Java. Go minic, tá aithne mhaith ag forbróirí nua Eclipse ar EMF cheana féin, cé nach dtuigeann siad go hiomlán fós intricacies Platform Eclipse. Ceann de na cúiseanna atá le tóir chomh tuillte go maith ná an dearadh uilíoch, lena n-áirítear, i measc rudaí eile, API meta-leibhéal aontaithe, a ligeann duit oibriú le haon mhúnla EMF ar bhealach ginearálta. Méadaíonn na feidhmiúcháin bhunúsacha maidir le cuspóirí samhail a sholáthraíonn EMF agus an fochóras chun cód múnla a ghiniúint bunaithe ar an meitea-mhúnla luas na forbartha go suntasach agus laghdaítear líon na n-earráidí. Tá meicníochtaí ag EMF freisin chun samhlacha a shraithiú, chun athruithe ar an tsamhail a rianú, agus go leor eile.

Cosúil le haon uirlis fhíor-ghinearálta, tá EMF oiriúnach chun raon leathan fadhbanna samhaltaithe a réiteach, ach d’fhéadfadh uirlisí samhaltaithe níos speisialaithe a bheith ag teastáil ó roinnt aicmí samhlacha (mar shampla na samhlacha láimhseáil-bhunaithe a pléadh thuas). Is tasc gan bhuíochas é a bheith ag caint faoi EMF, go háirithe laistigh de theorainneacha airteagal amháin, ós rud é gur leabhar ar leith é seo, agus leabhar sách tiubh. Ná déanaimis ach a thabhairt faoi deara gur cheadaigh an córas ardcháilíochta ginearálaithe atá mar bhonn leis an EMF raon iomlán tionscadal atá tiomnaithe do shamhaltú a bhunú, atá san áireamh sa tionscadal ardleibhéil. Múnlaithe Eclipse in éineacht leis an EMF féin. Tionscadal amháin dá leithéid is ea Eclipse Xtext.

Eclipse Xtext soláthraíonn sé bonneagar "samhaltú téacs". Úsáideann Xtext ANTLR chun an buntéacs a pharsáil agus EMF chun an ASG a thagann as a léiriú (graf teibí shéimeantach, atá ina theaglaim de AST agus de cheangail go bunúsach), ar a dtugtar an “múnla shéimeantach” freisin. Déantar cur síos ar ghramadach na teanga arna múnlú ag Xtext i dteanga Xtext féin. Ligeann sé seo duit ní hamháin cur síos gramadaí a ghiniúint do ANTLR, ach freisin meicníocht sraitheachúcháin AST a fháil (i.e. soláthraíonn Xtext parsálaí agus unparsálaí), leid comhthéacs, agus roinnt comhpháirteanna teanga eile. Ar an láimh eile, níl an teanga ghramadaí a úsáidtear in Xtext chomh solúbtha ná, abair, an teanga ghramadaí a úsáidtear in ANTLR. Mar sin, is gá uaireanta an teanga fheidhmithe a “lúbadh” go Xtext, rud nach mbíonn ina fhadhb de ghnáth má táimid ag caint faoi theanga atá á forbairt ón tús, ach a d’fhéadfadh a bheith do-ghlactha do theangacha a bhfuil comhréir acu cheana féin. Ina ainneoin sin, is é Xtext an uirlis is aibí, gné-saibhir agus is ilúsáide in Eclipse faoi láthair chun teangacha ríomhchlárúcháin agus uirlisí forbartha a fhorbairt dóibh. Go háirithe, is uirlis iontach é le haghaidh fréamhshamhlú tapa teangacha a bhaineann go sonrach le fearainn (teanga sainiúil don fhearann, DSL). Chomh maith leis an “croílár teanga” thuasluaite atá bunaithe ar ANTLR agus EMF, soláthraíonn Xtext go leor comhpháirteanna úsáideacha ardleibhéil, lena n-áirítear meicníochtaí innéacsaithe, tógáil incriminteach, “eagarthóir cliste”, agus go leor, i bhfad níos mó, ach fágann sé amach láimhseáil- samhlacha teanga bunaithe. Cosúil le EMF, is ábhar ar fiú leabhar ar leith é Xtext, agus is ar éigean gur féidir linn labhairt go hachomair faoi a chumais go léir faoi láthair.

1C:Úsáideann Uirlisí Forbartha Fiontair go gníomhach an EMF féin agus roinnt tionscadal Samhaltaithe Eclipse eile. Go háirithe, tá Xtext ar cheann de na bunsraitheanna d’uirlisí forbartha le haghaidh 1C:Teangacha Fiontair den sórt sin mar an teanga ríomhchlárúcháin ionsuite agus teanga na gceisteanna. Bunús eile do na huirlisí forbartha seo is ea an tionscadal Eclipse Handly, a phléfaimid níos mine (de na comhpháirteanna Eclipse atá liostaithe, is é an ceann is lú atá ar eolas fós).

Eclipse Handly, fothionscadal de thionscadal ardleibhéil Eclipse Technology, a tháinig chun cinn mar thoradh ar ranníocaíocht tosaigh cód le Fondúireacht Eclipse a rinne 1C in 2014. Ó shin i leith, tá 1C ag leanúint ar aghaidh ag tacú le forbairt an tionscadail: Is fostaithe de chuid na cuideachta iad cimitheoirí láimhe. Tá an tionscadal beag, ach tá nideoige sách uathúil aige in Eclipse: is é a phríomhsprioc tacú le forbairt samhlacha atá bunaithe ar láimhseáil.

Pléadh bunphrionsabail ailtireachta na múnlaí láimhseáil-bhunaithe, mar an idiom hanla/cabhail, thuas ag baint úsáide as an tsamhail acmhainne agus as an tsamhail Java mar shamplaí. Thug sé faoi deara freisin go bhfuil an tsamhail acmhainne agus an tsamhail Java araon mar bhunús tábhachtach d'uirlisí forbartha Eclipse Java (JDT). Agus ós rud é go bhfuil ailtireacht cosúil le JDT ag beagnach gach tionscadal * DT Eclipse, ní áibhéil mhór a bheadh ​​ann a rá go bhfuil múnlaí láimhseáil-bhunaithe mar bhonn agus mar thaca ag go leor IDEanna, mura bhfuil gach IDE tógtha ar bharr an Ardán Eclipse. Mar shampla, tá samhail C/C++ atá bunaithe ar láimhseáil ag an Eclipse C/C++ Development Tooling (CDT) a imríonn an ról céanna san ailtireacht CDT agus atá ag samhail Java sa JDT.

Roimh Handly, níor thairg Eclipse leabharlanna speisialaithe chun samhlacha teanga bunaithe ar láimhseáil a thógáil. Cruthaíodh na samhlacha atá ann faoi láthair go príomha trí chód samhail Java a oiriúnú go díreach (mar shampla cóip / greamaigh), i gcásanna ina gceadaíonn sé Ceadúnas Poiblí Eclipse (EPL). (Ar ndóigh, ní ceist dhlíthiúil é seo de ghnáth do thionscadail Eclipse féin, abair, ach ní i gcás táirgí foinse dúnta.) Chomh maith lena haphazardness dúchasach, tugann an teicníocht seo isteach fadhbanna aitheanta: dúbailt cód tugtha isteach le linn oiriúnú d'earráidí, srl. Is é an rud atá níos measa ná go bhfanann na samhlacha a bhíonn mar thoradh orthu mar “rudaí iontu féin” agus nach mbaineann siad leas as an acmhainneacht le haghaidh aontú. Ach d’fhéadfaí comhpháirteanna ath-inúsáidte a chruthú le bheith ag obair leo, mar a tharla i gcás EMF, as coincheapa agus prótacail choiteanna a leithlisiú le haghaidh samhlacha teanga atá bunaithe ar láimhseáil.

Ní hé nár thuig Eclipse na ceisteanna seo. Ar ais i 2005 Máirtín Aeschlimann, ag tabhairt achoimre ar an taithí ar an fhréamhshamhail CDT a fhorbairt, d'áitigh an gá atá le comh-bhonneagar a chruthú le haghaidh samhlacha teanga, lena n-áirítear samhlacha láimhseála. Ach, mar a tharlaíonn go minic, mar gheall ar thascanna tosaíochta níos airde, níor tháinig cur i bhfeidhm na smaointe seo i gceart. Idir an dá linn, tá fachtóiriú cód *DT fós ar cheann de na topaicí tearcfhorbartha in Eclipse.

Go pointe áirithe, tá an tionscadal Handly deartha chun réiteach a fháil ar na fadhbanna céanna agus atá ag EMF, ach do mhúnlaí láimhseála, agus cinn teanga go príomha (i.e. gnéithe de struchtúr roinnt teanga ríomhchlárúcháin). Tá na príomhspriocanna a socraíodh agus Handly á dhearadh liostaithe thíos:

  • Sainaithint príomh-astarraingtí an réimse ábhair.
  • Iarracht a laghdú agus cáilíocht chur i bhfeidhm na múnlaí teanga láimhseála a fheabhsú trí chóid a athúsáid.
  • API aontaithe meit-leibhéal a sholáthar do na samhlacha a thagann as, rud a fhágann gur féidir comhpháirteanna IDE coitianta a chruthú a oibríonn le samhlacha teanga-bhunaithe.
  • Solúbthacht agus scalability.
  • Comhtháthú le Xtext (i sraith ar leith).

Chun aird a tharraingt ar choincheapa agus ar phrótacail choiteanna, rinneadh anailís ar na samhlacha atá bunaithe ar láimhseáil teanga a chur i bhfeidhm faoi láthair. Taispeántar na príomh-chomhéadan agus feidhmiúcháin bhunúsacha a sholáthraíonn Handly i bhFíor. 8.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 8. Comhéadain choiteanna agus cur i bhfeidhm bunúsach eilimintí Handly

Is ionann an comhéadan IElement agus láimhseáil eilimint agus tá sé comónta le heilimintí de gach samhail Handly-bhunaithe. Cuireann an rang teibí Element an mheicníocht láimhseála/colainne ginearálaithe i bhfeidhm (Fíor 9).

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 9. IElement agus láimhseáil cineálach/cur i bhfeidhm an choirp

Ina theannta sin, soláthraíonn Handly meicníocht ghinearálaithe chun fógra a thabhairt faoi athruithe ar eilimintí samhail (Fíor 10). Mar a fheiceann tú, tá sé cosúil go ginearálta leis na meicníochtaí fógartha a cuireadh i bhfeidhm sa tsamhail acmhainne agus sa tsamhail Java, agus úsáideann IElementDelta chun léiriú aontaithe ar fhaisnéis athraithe eilimint a sholáthar.

Eclipse mar ardán teicneolaíochta do 1C: Uirlisí Forbartha Fiontair
Rís. 10. Comhéadain ghinearálta agus cur i bhfeidhm bunúsach meicníocht fógra Handly

Is féidir an chuid Handly a pléadh thuas (Fíor 9 agus 10) a úsáid chun beagnach aon mhúnlaí láimhseáil-bhunaithe a léiriú. Le haghaidh cruthú teangeolaíoch samhlacha, cuireann an tionscadal feidhmiúlacht bhreise ar fáil - go háirithe, comhéadain choitianta agus feidhmiúcháin bhunúsacha d'eilimintí struchtúr an bhuntéacs, mar a thugtar air eilimintí foinse (Fig. 8). Seasann comhéadan ISourceFile do bhunchomhad, agus seasann ISourceConstruct d’eilimint laistigh den bhunchomhad. Cuireann na haicmí teibí SourceFile agus SourceConstruct meicníochtaí ginearálaithe i bhfeidhm chun tacú le hoibriú le comhaid foinse agus a n-eilimintí, mar shampla, oibriú le maoláin téacs, ceangailteach le comhordanáidí eilimint sa bhuntéacs, samhlacha a réiteach le hábhar reatha maoláin chóip oibre. , etc. Is gnách gur dúshlán mór é na meicníochtaí seo a chur i bhfeidhm, agus is féidir le Handly laghdú suntasach a dhéanamh ar an iarracht ar mhúnlaí teanga lámhbhunaithe a fhorbairt trí bhunfheidhmiúcháin ardchaighdeáin a sholáthar.

Chomh maith leis na meicníochtaí lárnacha atá liostaithe thuas, soláthraíonn Handly bonneagar do mhaoláin téacs agus pictiúir, tacaíocht do chomhtháthú le heagarthóirí cód foinse (lena n-áirítear comhtháthú lasmuigh den bhosca leis an eagarthóir Xtext), chomh maith le roinnt comhpháirteanna UI coitianta a oibriú le heagarthóirí cód foinse.Samhlacha láimhseála cosúil le creat imlíneach. Chun a chumais a léiriú, cuireann an tionscadal roinnt samplaí ar fáil, lena n-áirítear cur i bhfeidhm na samhla Java in Handly. (I gcomparáid le cur i bhfeidhm iomlán na samhla Java in JDT, tá an tsamhail seo simplithe d’aon ghnó ar mhaithe le soiléireacht níos fearr.)

Mar a luadh níos luaithe, díríodh go mór le linn dearadh tosaigh Handly agus an fhorbairt ina dhiaidh sin ar inscálaithe agus solúbthacht.

I bprionsabal, déanann samhlacha láimhseáil-bhunaithe scála maith "de réir dearadh". Mar shampla, ceadaíonn an idiom hanla/colainne duit teorainn a chur leis an méid cuimhne a chaitear le samhail. Ach tá nuances ann freisin. Mar sin, nuair a bhí Handly ag tástáil le haghaidh inscálaithe, thángthas ar fhadhb i gcur i bhfeidhm na meicníochta fógartha - nuair a athraíodh líon mór eilimintí, thóg sé an iomarca ama ar thógáil deltas. Iompaigh sé amach go raibh an fhadhb chéanna i láthair sa tsamhail JDT Java, as a bhfuil an cód comhfhreagrach a oiriúnú uair amháin. Shocraigh muid an fabht in Handly agus d’ullmhaigh muid paiste comhchosúil do JDT, rud a fuarthas le buíochas. Níl anseo ach sampla amháin ina bhféadfadh sé a bheith úsáideach Handly a thabhairt isteach i bhfeidhmithe múnla atá ann cheana féin, mar sa chás seo d’fhéadfaí fabht dá leithéid a shocrú in aon áit amháin.

Chun go mbeidh sé indéanta go teicniúil cur i bhfeidhm Handly i bhfeidhmithe samhail atá ann cheana féin, ní mór solúbthacht shuntasach a bheith ag an leabharlann. Is í an phríomhfhadhb ná comhoiriúnacht siar a choinneáil ar fud an tsamhail API. Réitíodh an fhadhb seo i Láimh 0.5 tríd an API samhail-shonrach a scaradh go soiléir, arna shainiú agus á rialú go hiomlán ag an bhforbróir, ón API aontaithe meite-leibhéal a sholáthraíonn an leabharlann. Ní hamháin go bhfuil sé indéanta go teicniúil Handly a chur i bhfeidhm sna feidhmeanna atá ann cheana féin, ach tugann sé freisin saoirse shuntasach don fhorbróir múnla nua agus an API á dhearadh.

Tá gnéithe eile ag baint le solúbthacht freisin. Mar shampla, ní chuireann Handly srian ar bith ar struchtúr na samhla agus is féidir é a úsáid chun samhaltú a dhéanamh ar theangacha ginearálta agus ar theangacha a bhaineann go sonrach leis an bhfearann. Agus struchtúr an chomhaid foinse á thógáil, ní fhorordaíonn Handly aon chineál áirithe ionadaíochta AST agus, i bprionsabal, ní éilíonn sé fiú AST féin a bheith ann, rud a áirithíonn comhoiriúnacht le beagnach aon mheicníocht parsála. Ar deireadh, tacaíonn Handly le comhtháthú iomlán le spás oibre Eclipse, ach féadann sé oibriú go díreach le córais comhaid freisin a bhuíochas dá chomhtháthú le Córas Comhad Eclipse (EFS).

Leagan reatha Láimh 0.6 tháinig sé amach i mí na Nollag 2016. In ainneoin go bhfuil an tionscadal i riocht goir faoi láthair agus nach bhfuil an API socraithe go fóill, tá Handly in úsáid cheana féin i dhá tháirge tráchtála mhóra a bhí i mbaol gníomhú mar “uchtaitheoirí luatha”, agus, ní mór dom a rá, ná aiféala é go fóill.

Mar a luadh thuas, is é 1C:Uirlisí Forbartha Fiontraíochta ceann de na táirgí seo, áit a n-úsáidtear Handly ón tús chun eilimintí de struchtúr ardleibhéil 1C:Teangacha Fiontair a shamhaltú mar an teanga ríomhchlárúcháin ionsuite agus teanga na gceisteanna. . Tá táirge eile níos lú ar eolas ag an bpobal i gcoitinne. seo Codasip stiúideo, timpeallacht deartha chomhtháite do phróiseálaí tacair teagaisc a bhaineann go sonrach le feidhmchlár (ASIP), a úsáidtear laistigh den chuideachta Seiceach Codasip féin agus ag a cuid cliant, lena n-áirítear AMD, Meánlíon, Soghluaiste, Dearaí Sigma. Tá Codasip ag baint úsáide as Handly i dtáirgeadh ó 2015, ag tosú le leagan Handly 0.2. Úsáideann an scaoileadh is déanaí de Codasip Studio leagan 0.5, a scaoileadh i mí an Mheithimh 2016. Tá Ondřej Ilčík, atá i gceannas ar fhorbairt IDE ag Codasip, i dteagmháil leis an tionscadal, ag cur aiseolas ríthábhachtach ar fáil thar ceann an “uchtaitheora tríú páirtí”. Bhí sé in ann fiú roinnt ama saor a fháil chun páirt a ghlacadh go díreach i bhforbairt an tionscadail, ag cur ciseal Chomhéadain (~4000 líne de chód) i bhfeidhm do cheann de na samplaí Handly, samhail Java. Tá faisnéis phearsanta níos mionsonraithe maidir le húsáid Handly ag uchtóirí le fáil ar an leathanach Success Stories tionscadal.

Tá súil againn, tar éis scaoileadh leagan 1.0 le ráthaíocht ar chobhsaíocht API agus an tionscadal a fhágann an stát goir, go mbeidh uchtaitheoirí nua ag Handly. Idir an dá linn, leanann an tionscadal ar aghaidh ag tástáil agus ag feabhsú an API a thuilleadh, ag scaoileadh dhá eisiúint "mór" in aghaidh na bliana - i mí an Mheithimh (an dáta céanna le scaoileadh comhuaineach Eclipse) agus mí na Nollag, ag soláthar sceideal intuartha ar féidir le huchtaitheoirí brath air. Is féidir linn a rá freisin go bhfuil “ráta fabht” an tionscadail fós ag leibhéal comhsheasmhach íseal agus tá Handly ag obair go hiontaofa i dtáirgí na n-uchtaitheoirí luatha ó na chéad leaganacha. Chun tuilleadh iniúchadh a dhéanamh ar Eclipse Handly, is féidir leat úsáid a bhaint as Teagaisc ag Tosú и Forbhreathnú Ailtireachta.

Foinse: will.com

Add a comment