Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa

Angamba, fanakona-masoandro efa ela no tsy nila fampidiran-dresaka manokana. Olona maro no mahafantatra ny Eclipse noho ny fitaovana fampandrosoana Eclipse Java (JDT). Ity Java IDE open source malaza ity izay ampifandraisin'ny ankamaroan'ny mpamorona amin'ny teny hoe "Eclipse". Na izany aza, Eclipse dia sady sehatra azo itarina hampidirana fitaovana fampandrosoana (Eclipse Platform), ary IDE maromaro naorina amin'ny fotony, anisan'izany ny JDT. Eclipse dia sady Eclipse Project, ilay tetikasa ambony indrindra izay mandrindra ny fampandrosoana ny Eclipse Platform sy ny JDT, ary ny Eclipse SDK, ny vokatra azo tamin'io fivoarana io. Farany, Eclipse dia Fondation open-source miaraka amina vondrom-piarahamonina tetikasa goavana, tsy voasoratra amin'ny Java na mifandraika amin'ny fitaovana fampandrosoana (ohatra, tetikasa). Eclipse IoT и Eclipse Science). Ny tontolon'ny Eclipse dia tena samihafa.

Ato amin'ity lahatsoratra ity, izay topimaso amin'ny natiora, dia hiezaka ny hijery ny sasany amin'ireo fototry ny maritrano Eclipse isika ho sehatra fananganana fitaovana fampandrosoana mitambatra ary hanome hevitra voalohany momba ny singa Eclipse izay mamorona ny fototry ny teknolojia. sehatra ho an'ny "Configurator vaovao" 1C: Enterprise. 1C: Fitaovam-pampandrosoana orinasa. Mazava ho azy fa tsy azo ihodivirana ny famerenana toy izany ary ho voafetra ihany, ao anatin'izany ny tsy fifantohana amin'ny mpamorona Eclipse ho mpihaino kendrena. Na izany aza, manantena izahay fa na ireo mpamorona Eclipse za-draharaha aza dia hahita fampahalalana mahaliana ao amin'ny lahatsoratra. Ohatra, hiresaka momba ny iray amin'ireo "tsiambaratelon'ny Eclipse" isika, tetikasa somary vaovao sy tsy dia fantatra loatra. Eclipse Handly, izay naorina sy notohanan'ny 1C.
Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa

Fampidirana ny Architecture Eclipse

Andeha hojerentsika aloha ny lafiny ankapobeny amin'ny maritrano Eclipse amin'ny fampiasana ny ohatra Eclipse Java fitaovana fampandrosoana (JDT). Tsy tongatonga ho azy ny fisafidianana ny JDT ho ohatra. Ity no tontolo fampandrosoana mitambatra voalohany niseho tao amin'ny Eclipse. Ny tetikasa *DT Eclipse hafa, toy ny Eclipse C/C++ Development Tooling (CDT), dia noforonina taty aoriana ary nindrana ny foto-drafitr'asa fototra sy ny sombin-kaody loharano tsirairay avy amin'ny JDT. Ny fototry ny maritrano napetraka ao amin'ny JDT dia manan-danja amin'izao andro izao ho an'ny saika IDE rehetra natsangana teo an-tampon'ny Eclipse Platform, anisan'izany ny 1C: Enterprise Development Tools.

Voalohany indrindra, tokony ho marihina fa ny Eclipse dia miavaka amin'ny fananganana maritrano mazava tsara, miaraka amin'ny fisarahana ny fampiasa tsy miankina amin'ny fiteny amin'ny fiasa natao hanohanana ny fiteny fandaharana manokana, ary ny fisarahana ny singa "fototra" tsy miankina amin'ny UI amin'ireo singa mifandray. miaraka amin'ny mpampiasa interface tsara.

Noho izany, ny Eclipse Platform dia mamaritra fotodrafitrasa mahazatra, tsy miankina amin'ny fiteny, ary ny fitaovana fampandrosoana Java dia manampy Java IDE feno amin'ny Eclipse. Na ny Eclipse Platform na ny JDT dia misy singa maromaro, ny tsirairay amin'izy ireo dia an'ny "fototra" tsy miankina UI na sosona UI (sary 1).

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 1. Eclipse Platform sy JDT

Andeha hotanisaintsika ireo singa fototra amin'ny Eclipse Platform:

  • Runtime - Mamaritra ny fotodrafitrasa plugin. Ny Eclipse dia miavaka amin'ny maritrano modular. Amin'ny ankapobeny, ny Eclipse dia fitambarana "teboka fanitarana" sy "fanitarana".
  • sehatr'asa - Mitantana tetikasa iray na maromaro. Ny tetikasa dia misy lahatahiry sy rakitra izay voasariky mivantana amin'ny rafitra fichier.
  • Fitaovana Widget mahazatra (SWT) - Manome singa fototra amin'ny mpampiasa interface tsara tafiditra amin'ny rafitra fiasana.
  • JFace - Manome rafitra UI maromaro natsangana eo an-tampon'ny SWT.
  • Workbench - Mamaritra ny paradigma Eclipse UI: mpanonta, fomba fijery, fomba fijery.

Tsy maintsy lazaina fa ny Eclipse Platform dia manome singa mahasoa maro hafa amin'ny fananganana fitaovana fampivoarana mitambatra, ao anatin'izany ny Debug, Compare, Search, ary Team. Tokony hotononina manokana ny JFace Text - fototry ny fananganana “editors smart” amin'ny kaody loharano. Indrisy anefa, na dia ny fandinihana fohy momba ireo singa ireo, ary koa ny singa sosona UI, dia tsy azo atao ao anatin'ity lahatsoratra ity, ka amin'ny ambiny amin'ity fizarana ity dia hametra ny tenantsika amin'ny fijerena ireo singa fototra "fototra" amin'ny ny Eclipse Platform sy JDT.

Core Runtime

Ny fotodrafitrasa plugin Eclipse dia mifototra amin'ny OSGi ary omen'ny tetikasa Eclipse Equinox. Ny plugin Eclipse tsirairay dia fonosana OSGi. Ny fanondroana OSGi dia mamaritra, indrindra indrindra, ny mekanika amin'ny famoahana sy ny famahana ny fiankinan-doha. Ho fanampin'ireo mekanika mahazatra ireo, ny Equinox dia mampiditra ny foto-kevitra teboka fanitarana. Ny plugin tsirairay dia afaka mamaritra ny teboka fanitarana azy manokana, ary mampiditra fiasa fanampiny ("fanitarana") amin'ny rafitra mampiasa teboka fanitarana voafaritra amin'ny plugins mitovy na hafa. Ny famaritana amin'ny antsipiriany momba ny mekanika OSGi sy Equinox dia any ivelan'ity lahatsoratra ity. Mariho fotsiny fa ny modularization amin'ny Eclipse dia total (ny subsystem rehetra, anisan'izany ny Runtime, dia misy plugins iray na maromaro), ary saika ny zavatra rehetra ao amin'ny Eclipse dia fanitarana. Ankoatr'izay, ireo fitsipika ireo dia napetraka tao amin'ny rafitra Eclipse ela be talohan'ny fampidirana ny OSGi (tamin'izany fotoana izany dia nampiasa ny teknolojiany manokana izy ireo, mitovy amin'ny OSGi).

Core Workspace

Saika ny tontolo fampandrosoana mitambatra naorina eo an-tampon'ny Eclipse Platform dia miasa miaraka amin'ny toeram-piasana Eclipse. Io no toeram-piasana izay matetika ahitana ny kaody loharanon'ny fampiharana novolavolaina tao amin'ny IDE. Sarintany mivantana mankany amin'ny rafi-drakitra ny habaka asa ary misy tetikasa misy lahatahiry sy rakitra. Ireo tetikasa, lahatahiry ary rakitra ireo dia antsoina harena toeram-piasana. Ny fampiharana ny toeram-piasana ao amin'ny Eclipse dia toy ny cache mifandray amin'ny rafi-drakitra, izay ahafahana manafaingana ny fandehanana amin'ny hazo loharanon-karena. Ankoatra izany, ny toeram-piasana dia manome serivisy fanampiny maromaro, ao anatin'izany mekanika fampahafantarana momba ny fanovana loharanon-karena и incremental mpanorina fotodrafitrasa.

Ny singa Core Resources (org.eclipse.core.resources plugin) dia tompon'andraikitra amin'ny fanohanana ny toeram-piasana sy ny loharanon-karenany. Indrindra indrindra, ity singa ity dia manome fidirana amin'ny programa amin'ny sehatry ny asa amin'ny endrika modely loharanon-karena. Mba hiasa tsara amin'ity maodely ity, mila fomba tsotra hanolorana rohy mankany amin'ny loharano iray ny mpanjifa. Amin'ity tranga ity dia ilaina ny manafina ny zavatra izay mitahiry mivantana ny toetry ny loharano ao amin'ny modely amin'ny fidirana amin'ny mpanjifa. Raha tsy izany, raha toa ka, ohatra, ny famafana rakitra, ny mpanjifa dia afaka manohy mitazona zavatra izay tsy ao amin'ny modely intsony, miaraka amin'ireo olana manaraka. Ny Eclipse dia mamaha ity olana ity amin'ny fampiasana zavatra antsoina hoe hiatrika loharanon-karena. Handle dia miasa toy ny fanalahidy (fantany ihany ny lalana mankany amin'ny loharano ao amin'ny toeram-piasana) ary mifehy tanteraka ny fidirana amin'ny zavatra modely anatiny, izay mitahiry mivantana ny vaovao momba ny toetry ny loharano. Ity endrika ity dia fiovaovan'ny lamina Tantana/Vatany.

vary. Ny sary 2 dia mampiseho ny fomba fiteny Handle/Body izay ampiharina amin'ny maodely loharanon-karena. Ny seha-pifandraisana IResource dia maneho ny tahon'ny loharano iray ary API iray, fa tsy toy ny kilasin'ny Resource, izay mampihatra an'io interface io, ary ny kilasy ResourceInfo, izay maneho ny vatana, izay tsy API. Antitranterinay fa tsy mahalala afa-tsy ny lalana mankany amin'ny loharano mifandraika amin'ny fototry ny toeram-piasana ny handle ary tsy misy rohy mankany amin'ny mombamomba ny loharano. Ny zavatra momba ny loharanon-karena dia mamorona antsoina hoe "hazo singa". Ity firafitry ny data ity dia vita tanteraka amin'ny fitadidiana. Mba hahitana ny ohatry ny fampahalalana momba ny loharano mifandraika amin'ny tahony, ny hazo singa dia mandeha araka ny lalana voatahiry ao amin'io taho io.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 2. IResource sy ResourceInfo

Araka ny ho hitantsika any aoriana, dia ampiasaina ao amin'ny Eclipse ho an'ny maodely hafa koa ny endrika fototra amin'ny maodelin'ny loharanon-karena (azo antsoina hoe mifototra amin'ny tànana). Amin'izao fotoana izao, andeha hotanisaintsika ny sasany amin'ireo toetra mampiavaka an'ity endrika ity:

  • Ny handle dia zavatra sarobidy. Ny zavatra sarobidy dia zavatra tsy azo ovaina izay tsy mifototra amin'ny maha-izy azy ny fitoviana. Ny zavatra toy izany dia azo ampiasaina soa aman-tsara ho fanalahidin'ny kaontenera hash. Ny tranga maromaro amin'ny tantana dia afaka manondro loharano iray ihany. Mba hampitahana azy ireo dia mila mampiasa ny fomba mitovy (Object) ianao.
  • Ny Handle dia mamaritra ny fitondran-tenan'ny loharano iray, saingy tsy misy fampahalalana momba ny toetry ny loharanon-karena (ny hany angona voatahiry dia ny "key", ny lalana mankany amin'ny loharano).
  • Handle dia mety manondro loharano tsy misy (na loharano mbola tsy noforonina, na loharano efa voafafa). Ny fisian'ny loharano iray dia azo jerena amin'ny alàlan'ny fomba IResource.exists().
  • Ny asa sasany dia azo ampiharina mifototra fotsiny amin'ny fampahalalana voatahiry ao amin'ny tahony ihany (izay atao hoe fampandehanana tanana ihany). Ohatra ny IResource.getParent(), getFullPath(), sns. Tsy mila misy ny loharanon-karena mba hahombiazan'ny asa toy izany. Ny asa izay mitaky loharanon-karena mba hahomby dia manipy CoreException raha tsy misy ny loharano.

Ny Eclipse dia manome rafitra mahomby amin'ny fampahafantarana ny fiovan'ny loharanon-karena (sary 3). Ny loharanon-karena dia mety miova na vokatry ny hetsika natao tao amin'ny Eclipse IDE mihitsy na vokatry ny fampifanarahana amin'ny rafi-drakitra. Amin'ireo tranga roa ireo, ireo mpanjifa izay misoratra anarana amin'ny fampandrenesana dia omena fampahalalana amin'ny antsipiriany momba ny fiovana amin'ny endrika "delta loharano". Ny delta iray dia manoritsoritra fiovana eo amin'ny fanjakana roa amin'ny hazo loharanon-karena (sub-) ary hazo iray izy, ny node tsirairay izay mamaritra ny fiovan'ny loharano iray ary misy lisitry ny delta amin'ny ambaratonga manaraka izay mamaritra ny fiovan'ny loharanon-jaza.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 3. IResourceChangeEvent sy IResourceDelta

Ny mekanika fampahafantarana mifototra amin'ny delta loharano dia manana ireto toetra manaraka ireto:

  • Ny fiovana tokana sy ny fiovana maro dia voafaritra amin'ny fampiasana rafitra mitovy, satria ny delta dia naorina amin'ny alàlan'ny fitsipiky ny fananganana miverimberina. Ny mpanjifan'ny mpanjifa dia afaka manodina fampandrenesana fanovana loharanon-karena amin'ny alàlan'ny fidinana miverimberina amin'ny alàlan'ny hazo delta.
  • Ny delta dia mirakitra fampahalalana feno momba ny fiovana amin'ny loharanon-karena, ao anatin'izany ny fivezivezeny sy/na ny fiovana ao amin'ny "marika" mifandray aminy (ohatra, ny fahadisoana fanangonana dia aseho ho marika).
  • Satria natao amin'ny alalan'ny tahony ny fanondroana loharanon-karena, ny delta dia afaka manondro loharano lavitra ho azy.

Araka ny ho hitantsika tsy ho ela, ny singa fototra amin'ny fandrafetana ny mekanika fampahafantarana ny fiovan'ny modely loharanon-karena dia manan-danja ihany koa amin'ny maodely mifototra amin'ny tahony hafa.

JDT Core

Ny maodelin'ny loharanon'asa Eclipse dia modely agnostika amin'ny fiteny fototra. Ny singa JDT Core (plugin org.eclipse.jdt.core) dia manome API ho an'ny fitetezana sy famakafakana ny rafi-piasana amin'ny fomba fijery Java, ilay antsoina hoe "modely Java" (Modely Java). Ity API ity dia voafaritra amin'ny resaka singa Java, mifanohitra amin'ny API modely loharano fototra, izay voafaritra amin'ny laha-tahiry sy rakitra. Ny fifandraisana lehibe amin'ny hazo singa Java dia aseho amin'ny sary. 4.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 4. Java Model Elements

Ny maodely Java dia mampiasa teny filamatra / vatana mitovy amin'ny modely loharano (sary 5). IJavaElement no tantana, ary JavaElementInfo no mitana ny andraikitry ny vatana. Ny interface IJavaElement dia mamaritra protocol mahazatra amin'ny singa Java rehetra. Ny sasany amin'ireo fomba fiasany dia mitantana ihany: getElementName (), getParent (), sns. Ny zavatra JavaElementInfo dia mitahiry ny toetry ny singa mifandraika amin'izany: ny rafitra sy ny toetrany.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 5. IJavaElement sy JavaElementInfo

Ny modely Java dia manana fahasamihafana eo amin'ny fampiharana ny famolavolana fototra / vatana raha oharina amin'ny modely loharano. Araka ny voalaza etsy ambony, ao amin'ny maodely loharanon-karena, ny hazo singa, izay ny node dia zavatra momba ny loharanon-karena, dia voarakitra ao anaty fitadidiana. Saingy ny modely Java dia mety manana singa betsaka kokoa noho ny hazo loharano, satria izy io koa dia maneho ny firafitry ny .java sy .class rakitra: karazana, saha ary fomba.

Mba hialana amin'ny fametrahana tanteraka ny hazon'ny singa rehetra ao anaty fitadidiana, ny fampiharana modely Java dia mampiasa cache LRU voafetra amin'ny fampahalalana singa, izay misy ny fanalahidy IJavaElement. Ny zavatra momba ny singa dia noforonina araka ny fangatahana rehefa mandeha ny hazo singa. Amin'ity tranga ity, esorina ao amin'ny cache ny entana kely indrindra ampiasaina matetika, ary mijanona ho voafetra amin'ny haben'ny cache voatondro ny fanjifàna fitadidiana modely. Ity dia tombony iray hafa amin'ny famolavolana mifototra amin'ny tànana, izay manafina tanteraka ny antsipirian'ny fampiharana toy izany amin'ny kaody mpanjifa.

Ny rafitra fampahafantarana ny fanovana amin'ny singa Java dia amin'ny ankapobeny dia mitovy amin'ny rafitra fanaraha-maso ny fanovana amin'ny loharanon'asa voaresaka etsy ambony. Ny mpanjifa iray maniry ny hanara-maso ny fiovana amin'ny modely Java dia misoratra anarana amin'ny fampandrenesana, izay aseho ho toy ny zavatra ElementChangedEvent izay misy IJavaElementDelta (sary 6).

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 6. ElementChangedEvent sy IJavaElementDelta

Ny modely Java dia tsy ahitana fampahalalana momba ny vatan'ny fomba na ny famahana anarana, ka ho an'ny famakafakana amin'ny antsipiriany momba ny kaody voasoratra amin'ny Java, JDT Core dia manome modely fanampiny (tsy mifototra amin'ny tanana): hazo syntax abstract (hazo syntax abstract, AST). Ny AST dia maneho ny vokatry ny fanapariahana ny lahatsoratra loharano. Ny node AST dia mifanitsy amin'ny singa amin'ny firafitry ny maody loharano (fanambarana, mpandraharaha, fanehoan-kevitra, sns.) ny endriky ny rohy mankany amin'ny antsoina hoe fatorana. Ny fatorana dia zavatra misolo tena ireo enti-milaza anarana, toy ny karazana, fomba, ary miovaova, fantatry ny mpanangona. Tsy toy ny AST nodes, izay mamorona hazo, famatorana manohana cross-reference ary amin'ny ankapobeny dia mamorona grafika. Ny kilasy abstract ASTNode dia kilasy fototra mahazatra ho an'ny node AST rehetra. Ny subclass ASTNode dia mifanaraka amin'ny fananganana syntactic manokana amin'ny fiteny Java.

Satria ny hazo syntax dia afaka mandany fitadidiana be dia be, AST iray ihany no tazonin'ny JDT ho an'ny tonian-dahatsoratra mavitrika. Mifanohitra amin'ny modely Java, ny AST dia heverina ho modely "manelanelana", "tsy maharitra", ireo singa izay tsy tokony horaisin'ny mpanjifa any ivelan'ny tontolon'ny asa izay nitarika ny famoronana AST.

Ireo maodely telo voatanisa (modely Java, AST, bindings) miaraka no fototry ny fananganana "fitaovana fampandrosoana manan-tsaina" ao amin'ny JDT, ao anatin'izany ny tonian-dahatsoratra Java matanjaka miaraka amin'ny "mpanampy" isan-karazany, hetsika isan-karazany amin'ny fanodinana ny kaody loharano (ao anatin'izany ny fikarakarana lisitry ny fanafarana. anarana sy fandrafetana araka ny fomba namboarina), fitaovana fitadiavana sy refactoring. Amin'ity tranga ity, ny modely Java dia mitana anjara toerana manokana, satria io no ampiasaina ho fototry ny fanehoana an-tsary ny firafitry ny fampiharana novolavolaina (ohatra, ao amin'ny Package Explorer, Outline, Search, Call Hierarchy, ary Type Hierarchy).

Ny singa Eclipse ampiasaina amin'ny 1C: Enterprise Developments Tools

Ao amin'ny Fig. Ny sary 7 dia mampiseho ireo singa Eclipse izay mandrafitra ny fototry ny sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 7. Eclipse ho sehatra ho an'ny 1C: Fitaovam-pampandrosoana orinasa

Eclipse Platform manome fotodrafitrasa fototra. Nojerentsika ny lafiny sasany amin’io fotodrafitrasa io tao amin’ny fizarana teo aloha.

Eclipse Modeling Framework (EMF) dia manome fomba ankapobe amin'ny famolavolana angona voarafitra. Ny EMF dia tafiditra amin'ny Eclipse Platform, saingy azo ampiasaina mitokana amin'ny fampiharana Java mahazatra. Matetika, ireo mpamorona Eclipse vaovao dia efa mahafantatra tsara ny EMF, na dia mbola tsy takatry ny sain'ny Eclipse Platform aza izy ireo. Ny iray amin'ireo antony mahatonga ny laza mendrika toy izany dia ny famolavolana manerantany, izay ahitana, ankoatra ny zavatra hafa, ny API meta-level mitambatra, izay ahafahanao miara-miasa amin'ny modely EMF amin'ny ankapobeny. Ny fampiharana fototra ho an'ny zavatra modely nomen'ny EMF sy ny subsystem amin'ny famokarana kaody modely mifototra amin'ny meta-modely dia mampitombo be ny haavon'ny fampandrosoana ary mampihena ny isan'ny lesoka. Ny EMF koa dia mirakitra mekanika ho an'ny serialization modely, fanaraha-maso ny fanovana ny modely, sy ny maro hafa.

Tahaka ny fitaovana tena ilaina amin'ny ankapobeny, ny EMF dia mety amin'ny famahana olana maro isan-karazany, fa ny kilasy modely sasany (ohatra, ny maodely mifototra amin'ny tahony voalaza etsy ambony) dia mety mitaky fitaovana manokana momba ny modely. Ny firesahana momba ny EMF dia asa tsy misy fisaorana, indrindra ao anatin'ny fe-potoana voafetra amin'ny lahatsoratra iray, satria io no lohahevitry ny boky misaraka, ary somary matevina. Mariho fotsiny fa ny rafitra avo lenta amin'ny ankapobeny mifototra amin'ny EMF dia namela ny fahaterahan'ny tetikasa iray manontolo natokana ho an'ny modely, izay tafiditra ao amin'ny tetikasa ambony indrindra. Eclipse Modeling miaraka amin'ny EMF mihitsy. Iray amin'izany ny tetikasa Eclipse Xtext.

Eclipse Xtext manome fotodrafitrasa "modely lahatsoratra". Mampiasa Xtext ANTLR ho an'ny famakafakana ny lahatsoratra loharano sy ny EMF ho fanehoana ny ASG (sary semantika abstract, izay fitambaran'ny AST sy ny bindings), antsoina koa hoe "modely semantika". Ny fitsipi-pitenenana amin'ny fiteny novolavolain'i Xtext dia voafaritra amin'ny fitenin'ny Xtext manokana. Izany dia mamela anao tsy hamokatra famaritana fitsipi-pitenenana ho an'ny ANTLR, fa koa hahazoana mekanika serialization AST (izany hoe Xtext dia manome parser sy unparser), toro-hevitra momba ny teny manodidina, ary singa maromaro amin'ny fiteny hafa. Amin'ny lafiny iray, ny fiteny gramatika ampiasaina amin'ny Xtext dia tsy dia miovaova noho, ohatra, ny fiteny gramatika ampiasaina amin'ny ANTLR. Noho izany, indraindray dia ilaina ny "manondrika" ny fiteny ampiharina amin'ny Xtext, izay matetika tsy olana raha miresaka momba ny fiteny iray novolavolaina hatramin'ny voalohany isika, saingy mety tsy azo ekena ho an'ny fiteny manana syntax efa napetraka. Na eo aza izany, Xtext no fitaovana matotra indrindra, manana endri-javatra, ary maro hafa amin'ny Eclipse amin'ny fananganana fiteny fandaharana sy fitaovana fampandrosoana ho azy ireo. Indrindra indrindra, fitaovana tsara indrindra ho an'ny prototyping haingana izy io fiteny manokana amin'ny sehatra (fitenim-paritra manokana, DSL). Ho fanampin'ny "fototra amin'ny fiteny" voalaza etsy ambony miorina amin'ny ANTLR sy EMF, Xtext dia manome singa avo lenta mahasoa maro, ao anatin'izany ny mekanika fanondroana, ny fananganana increment, ny "editor smart", ary ny maro hafa, saingy mamela ny tànana- modely amin'ny fiteny mifototra. Tahaka ny EMF, Xtext dia lohahevitra mendrika ho an'ny boky mitokana, ary zara raha afaka miresaka fohy momba ny fahaizany rehetra isika amin'izao fotoana izao.

1C: Ny Fitaovam-pampandrosoana Orinasa dia mampiasa ny EMF sy ny tetikasa Eclipse Modeling hafa. Indrindra indrindra, ny Xtext dia iray amin'ireo fototry ny fitaovana fampandrosoana ho an'ny fiteny 1C: Enterprise toy ny fiteny fandaharana sy fiteny fanontana naorina. Ny fototra iray hafa amin'ireo fitaovana fampivoarana ireo dia ny tetikasa Eclipse Handly, izay hodinihintsika amin'ny antsipiriany kokoa (amin'ireo singa Eclipse voatanisa, dia mbola tsy dia fantatra loatra).

Eclipse Handly, zana-tetikasa iray amin'ny tetikasa avo lenta Eclipse Technology, nipoitra vokatry ny fandraisan'anjaran'ny kaody voalohany ho an'ny Eclipse Foundation nataon'ny 1C tamin'ny 2014. Nanomboka teo dia nanohy nanohana ny fampandrosoana ny tetikasa ny 1C: mpiasan'ny orinasa ny mpanome tanana. Kely ilay tetikasa, saingy manana sehatra miavaka ao amin'ny Eclipse: ny hanohanana ny famolavolana modely mifototra amin'ny tahony no tena tanjony.

Ny fitsipika fototra momba ny maritrano amin'ny maodely mifototra amin'ny tantana, toy ny idiom-tanana/body, dia noresahina tetsy ambony tamin'ny fampiasana ny modely loharano sy ny modely Java ho ohatra. Nomarihiny ihany koa fa ny modely loharanon-karena sy ny modely Java dia fototra manan-danja ho an'ny fitaovana fampandrosoana Eclipse Java (JDT). Ary satria saika ny tetik'asa *DT Eclipse rehetra dia manana maritrano mitovy amin'ny JDT, tsy manitatra loatra ny milaza fa ny maodely mifototra amin'ny tànana no fototry ny maro, raha tsy ny IDE rehetra naorina teo an-tampon'ny Eclipse Platform. Ohatra, ny Eclipse C/C ++ Development Tooling (CDT) dia manana maodely C/C ++ mifototra amin'ny tahony izay manana anjara toerana mitovy amin'ny maritrano CDT tahaka ny ataon'ny modely Java ao amin'ny JDT.

Talohan'ny Handly, Eclipse dia tsy nanolotra tranomboky manokana amin'ny fananganana modely fiteny mifototra amin'ny tahony. Ny modely misy amin'izao fotoana izao dia noforonina tamin'ny alàlan'ny fampifanarahana mivantana ny kaody modely Java (aka kopia/mametaka), amin'ny tranga izay ahafahany Eclipse Public License (EPL). (Mazava ho azy fa tsy olana ara-dalàna izany, ohatra, ny tetikasa Eclipse, fa tsy ho an'ny vokatra mihidy.) Ho fanampin'ny tsy fahatomombanana misy azy, ity teknika ity dia mampiditra olana fanta-daza: ny kopia kaody nampidirin'ny rehefa mampifanaraka ny fahadisoana, Sns Ny tena ratsy dia mijanona ho "zavatra ao amin'ny tenany" ireo modely aterak'izany ary tsy manararaotra ny mety ho fampiraisana. Saingy ny fitokanana ny foto-kevitra sy ny protocole mahazatra ho an'ny maodely fiteny mifototra amin'ny tantana dia mety hitarika amin'ny famoronana singa azo ampiasaina amin'ny fiaraha-miasa amin'izy ireo, mitovy amin'ny zava-nitranga tamin'ny EMF.

Tsy hoe tsy azon'ny Eclipse ireo olana ireo. Hiverina any amin'ny 2005 Martin Aeschlimann, mamintina ny traikefa amin'ny famolavolana ny prototype CDT, niady hevitra ilaina ny mamorona fotodrafitrasa iraisana ho an'ny maodely fiteny, ao anatin'izany ny maodely mifototra amin'ny tahony. Saingy, toy ny mitranga matetika, noho ny asa laharam-pahamehana ambony kokoa, ny fampiharana ireo hevitra ireo dia tsy tonga amin'izany mihitsy. Mandritra izany fotoana izany, ny fametrahana ny kaody *DT dia mbola iray amin'ireo lohahevitra tsy mivoatra ao amin'ny Eclipse.

Amin'ny lafiny iray, ny tetikasa Handly dia natao hamahana ny olana mitovy amin'ny EMF, fa ho an'ny maodely mifototra amin'ny tantana, ary indrindra indrindra amin'ny fiteny (izany hoe maneho singa amin'ny firafitry ny fiteny fandaharana sasany). Ny tanjona lehibe napetraka amin'ny famolavolana Handly dia voatanisa etsy ambany:

  • Famantarana ny tena abstractions ny lohahevitra faritra.
  • Fampihenana ny ezaka sy fanatsarana ny kalitaon'ny fampiharana ireo maodely fiteny mifototra amin'ny tànana amin'ny alàlan'ny fampiasana indray ny fehezan-dalàna.
  • Fanomezana API meta-level mitambatra ho an'ireo maodely aterak'izany, ka ahafahana mamorona singa IDE mahazatra izay miasa amin'ny maodely mifototra amin'ny fiteny.
  • Flexibility sy scalability.
  • Fampidirana amin'ny Xtext (amin'ny sosona misaraka).

Mba hanasongadinana ireo hevi-dehibe sy protocole mahazatra, dia nodinihina ireo fampiharana efa misy amin'ny modely mifototra amin'ny fiteny. Ny interface lehibe sy ny fampiharana fototra nomen'i Handly dia aseho amin'ny sary. 8.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 8. Fifandraisana mahazatra sy fampiharana fototra amin'ny singa Handly

Ny interface IElement dia maneho ny fehin'ny singa iray ary mahazatra amin'ny singa amin'ny modely rehetra mifototra amin'ny Handly. Ny singa kilasy abstract dia mampihatra ny mekanika / vatana ankapobeny (sary 9).

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 9. Fampiharana IElement sy générique handle/body

Ho fanampin'izany, ny Handly dia manome rafitra ankapobeany hampahafantarana ny fiovan'ny singa modely (sary 10). Araka ny hitanao dia mitovitovy amin'ny fomba fampandrenesana napetraka ao amin'ny modely loharano sy ny modely Java izy io, ary mampiasa ny IElementDelta mba hanomezana fanehoana mitambatra ny fampahalalana momba ny fiovan'ny singa.

Eclipse ho sehatra teknolojia ho an'ny 1C: Fitaovam-pampandrosoana orinasa
vary. 10. Fifandraisana ankapobe sy fampiharana fototra amin'ny mekanika fampahafantarana Handly

Ny ampahany Handly resahina etsy ambony (sary 9 sy 10) dia azo ampiasaina hanehoana saika modely mifototra amin'ny tahony. Ho an'ny famoronana fiteny modely, ny tetikasa dia manolotra fiasa fanampiny - indrindra, ny fifandraisana mahazatra sy ny fampiharana fototra ho an'ny singa amin'ny rafitry ny lahatsoratra loharano, ilay antsoina hoe singa loharano (sary 8). Ny interface ISourceFile dia maneho rakitra loharano, ary ISourceConstruct dia maneho singa iray ao anatin'ny rakitra loharano. Ny kilasy abstract SourceFile sy SourceConstruct dia mametraka rafitra ankapobeny hanohanana ny fiasana amin'ny rakitra loharano sy ny singany, ohatra, miasa amin'ny buffers lahatsoratra, mamehy ny fandrindrana singa iray ao amin'ny lahatsoratra loharano, mampifanaraka ny maodely amin'ny votoatin'ny buffer dika mitovy miasa. , sns. Ny fampiharana ireo mekanika ireo dia matetika fanamby, ary ny Handly dia afaka mampihena be ny ezaka amin'ny famolavolana modely amin'ny fiteny mifototra amin'ny tànana amin'ny fanomezana fampiharana fototra avo lenta.

Ho fanampin'ireo rafitra fototra voatanisa etsy ambony, ny Handly dia manome fotodrafitrasa ho an'ny buffers lahatsoratra sy sary, fanohanana ny fampidirana amin'ny mpamoaka lahatsoratra loharano (anisan'izany ny fampidirana ivelan'ny boaty miaraka amin'ny tonian-dahatsoratra Xtext), ary koa ireo singa UI mahazatra sasany izay miasa miaraka amin'ireo tonian-dahatsoratry ny loharanon-kaody. Mba hanehoana ny fahaizany dia manome ohatra maromaro ny tetikasa, anisan'izany ny fampiharana ny modely Java ao amin'ny Handly. (Raha ampitahaina amin'ny fampiharana feno ny modely Java ao amin'ny JDT, ity maodely ity dia niniana nohamafisina mba hazava kokoa.)

Araka ny nomarihina teo aloha, ny fifantohana lehibe tamin'ny famolavolana voalohany an'i Handly sy ny fivoarana manaraka dia ny scalability sy ny flexibility.

Amin'ny ankapobeny, ny modely mifototra amin'ny tànana dia mirefy tsara "amin'ny famolavolana". Ohatra, ny idiom-tanana/body dia ahafahanao mametra ny habetsaky ny fahatsiarovana lanin'ny modely. Saingy misy ihany koa ny nuances. Noho izany, rehefa nanandrana ny Handly ho an'ny scalability, dia nisy olana hita teo amin'ny fampiharana ny mekanika fampahafantarana - rehefa niova ny singa marobe dia naharitra ela ny fananganana delta. Hita fa nisy olana iray ihany tao amin'ny modely JDT Java, izay nampifanarahana ny code mifanaraka aminy indray mandeha. Namboarinay tao amin'ny Handly ilay bug ary nanomana patch mitovy amin'izany ho an'ny JDT, izay noraisina tamim-pankasitrahana. Ohatra iray ihany ity izay mety hahasoa ny fampidirana Handly amin'ny fampiharana modely efa misy, satria amin'ity tranga ity dia azo amboarina amin'ny toerana iray ihany ny bug toy izany.

Mba hahatonga ny fampiharana Handly ho azo tanterahina ara-teknika amin'ny fampiharana modely efa misy, ny tranomboky dia tsy maintsy manana flexibility lehibe. Ny olana lehibe dia ny fitazonana ny fifanarahana mihemotra manerana ny modely API. Voavaha io olana io tamin'ny Handy 0.5 amin'ny fanasarahana mazava ny API manokana modely, voafaritra sy fehezin'ny mpamorona tanteraka, amin'ny API meta-level mitambatra nomen'ny tranomboky. Izany dia tsy vitan'ny hoe azo atao ara-teknika ny fampiharana Handly amin'ny fampiharana efa misy, fa manome fahalalahana lehibe ho an'ny mpamorona modely vaovao rehefa mamolavola ny API.

Ny flexibilité dia manana lafiny hafa koa. Ohatra, ny Handly dia saika tsy misy fameperana amin'ny firafitry ny maodely ary azo ampiasaina amin'ny fanaovana modely amin'ny fiteny amin'ny tanjona ankapobeny sy amin'ny sehatra manokana. Rehefa manangana ny firafitry ny rakitra loharano, Handly dia tsy manendry endrika manokana amin'ny fanehoana AST ary, amin'ny ankapobeny, dia tsy mitaky ny fisian'ny AST mihitsy aza, ka miantoka ny fifanarahana amin'ny saika mekanika parsing. Farany, Handly dia manohana ny fampidirana tanteraka amin'ny toeram-piasana Eclipse, fa afaka miasa mivantana amin'ny rafi-drakitra ihany koa noho ny fampidirana azy amin'ny Eclipse File System (EFS).

Dika ankehitriny Handy 0.6 nivoaka tamin'ny Desambra 2016. Na dia eo aza ny zava-misy fa ny tetikasa amin'izao fotoana izao dia ao anatin'ny incubation ary ny API dia tsy mbola raikitra farany, Handly dia efa ampiasaina amin'ny vokatra ara-barotra lehibe roa izay nitondra ny risika ho toy ny "ambony aloha", ary, tsy maintsy lazaiko, aza manenina aloha.

Araka ny voalaza etsy ambony, ny iray amin'ireo vokatra ireo dia ny 1C: Enterprise Development Tools, izay ampiasain'i Handly hatrany am-piandohana mba hamolavola singa amin'ny rafitra avo lenta amin'ny 1C: Fiteny orinasa toy ny fiteny fandaharana sy fiteny fanontana naorina. . Vokatra iray hafa tsy dia fantatry ny besinimaro. izany Codasip Studio, tontolo famolavolana mitambatra ho an'ny processeur (ASIP) manokana amin'ny fampiharana, ampiasain'ny orinasa Czech Codasip tenany sy ny mpanjifany, ao anatin'izany AMD, AVG, Mobileye, Sigma Designs. Codasip dia nampiasa Handly tamin'ny famokarana nanomboka tamin'ny taona 2015, nanomboka tamin'ny dikan-teny Handly 0.2. Ny famoahana farany an'ny Codasip Studio dia mampiasa version 0.5, navoaka tamin'ny Jona 2016. Ondřej Ilčík, izay mitarika ny fampivoarana ny IDE ao amin'ny Codasip, dia mifandray amin'ny tetikasa, manome valin-kafatra lehibe amin'ny anaran'ny “mpanapaka antoko fahatelo”. Afaka nahita fotoana malalaka mihitsy aza izy mba handraisana anjara mivantana amin'ny fampivoarana ny tetikasa, amin'ny fampiharana ny sosona UI (~4000 andalana code) ho an'ny iray amin'ireo ohatra Handly, modely Java. Ny fampahalalana amin'ny antsipiriany bebe kokoa momba ny fampiasana ny Handly ataon'ny adopters dia hita ao amin'ny pejy Tantara mahomby tetikasa.

Manantena izahay fa aorian'ny famoahana ny version 1.0 miaraka amin'ny antoka ny fahamarinan'ny API sy ny tetikasa miala amin'ny fanjakana incubation, Handly dia hanana mpandray vaovao. Mandritra izany fotoana izany, ny tetikasa dia manohy manandrana sy manatsara kokoa ny API, mamoaka famoahana "lehibe" roa isan-taona - amin'ny volana Jona (mitovy ny daty amin'ny famoahana Eclipse miaraka) sy ny volana Desambra, manome fandaharam-potoana azo ianteherana izay azo ianteherana. Azontsika atao koa ny manampy fa ny "taham-pahavoazana" an'ny tetikasa dia mijanona amin'ny haavo ambany tsy tapaka ary Handly dia niasa tamim-pahatokiana tamin'ny vokatra avy amin'ireo mpanorina tany am-boalohany hatramin'ny dikan-teny voalohany. Raha te hijery bebe kokoa ny Eclipse Handly dia azonao ampiasaina Fanombohana Tutorial и Topimaso amin'ny maritrano.

Source: www.habr.com

Add a comment