Historia unius parvi propositi duodecim annos longi (circa BIRMA.NET primum et ingenue oculatum)

Nativitas huius consilii considerari potest parva idea quae alicubi ad me venit ad finem MMVII, quae ultimam tantum 2007 annis post (hoc loco in tempore — scilicet, quamvis in exsecutione hodiernam invenire debebat, secundum auctori valde satisfacit).

Hoc totum incepit, cum in processu adimplendi tunc officia mea in bibliotheca publica, eo intendebam quod processus notitiae intrandi ex textu tabularum contentorum libri (et musicae) publicationum in datorum existentium perlustrabat; ut videtur, signanter simpliciores esse et automate, adhibita proprietate ordinis et iterabilium omnium notitiarum quae ad inputationem requiruntur, ut nomen auctoris articuli (si loquimur de collectione articulorum), titulus est. articulus (seu subtilis in tabella contentorum repercussus) et pagina numeri paginae hodiernae contentorum item. In primis mihi persuasum est systema aptum ad hoc negotium perficiendum facile in Interreti inveniri posse. Cum quidam admiratio ex eo quod tale consilium invenire non potui, id ex me ipso efficere conari decrevi.

Post aliquantum tempus, primum exemplar incepit opus, quo statim in cotidianis operibus uti coepi, simulque omnia exempla quae ad manus meas pervenerunt debugging. Fortunate, meo consueto opere, ubi minime programmator fui, tunc adhuc in opere meo visibili "downtime" abscessi, quo intensive me detrahebam cerebro meo - rem paene incogitabilem in rebus hodiernis, quae implicant. cotidie de opere faciendo interdiu. Processus expoliendi programma summam non minus quam circa annum accepit, sed etiam postquam effectus vix omnino felix dici potuit - plures erant notiones variae quae ad exsequendum non satis intelligibiles erant: elementa libitum omitti possunt. ; deinceps elementa inspicienda (ad substituenda priora in eventus investigationes); etiam nostra conatus ad aliquid efficiendum sicut expressiones regulares (quae syntax unica est). Dicendum est me ante hoc tempus aliquantum programmandi dedisse (per annos circiter VIII, si non plus), novam occasionem ita ut artes meas ad studium iucundum et necessarium negotium meum penitus attentum applicet. Non mirum est quod fons e fonte codice - in absentia cuiuslibet perspicui accessus ad consilium a me ipso - cito factus est inestimabilis mishmash dissociatarum fragmentorum in lingua C cum aliquibus elementis C++ et aspectus programmationis visualis (initio it. tali consilio uti placuit ut Borland C++ conditorem - "paene Delphi, sed in C"). Nihilominus haec omnia tandem fructum tulerunt in bibliothecae nostrae cotidianis operibus automando.

Simul decrevi, modo in casu, cursus ad instituendi amet tincidunt amet. Nescio an vere possibile sit a scabere "esse programmatorem" ibi, sed attentis artibus quas iam tunc habueram, potui technologias aliquantum magisterii quae eo tempore magis pertinebant, ut sicut C#, Visual Studio evolutionis sub NET, ac nonnullae technologiae ad Java, HTML et SQL pertinentia. Tota institutio totum biennium accepit, et initium functus est ad aliud propositum meum, quod ultimo per plures annos extendit - sed haec thema est publicationis separati. Hic tantum notare conveniet me conatus sum explicationibus accommodare, quos iam in proposito descripto habui ut applicationes fenestrae plenae curvatae in C# et WinForms, quae necessariam functionem adibant, utere et uti fundamento ventura diploma delineatio.
Subinde incepit haec opinio digna mihi videri in talibus annuis colloquiis cum participatione legatorum variarum bibliothecarum "LIBKOM" et "CRIMEA". Idea est, sed non est mihi exsecutio illo tempore. Tunc etiam optabam ut quis eam rescriberet utendo opportunioribus accessibus. Uno modo vel alio, 2013 Statui referre relationem de opere meo praemisso scribere et mittere ad Conference Organising Committee cum applicatione pro concessione participandi colloquii. Mihi aliquantum mirum, probata est applicatio mea, et incepi emendationes nonnullas facere in hoc consilio, ut illud ad colloquium exhibendum praeparet.

Eo tempore, consilium iam novum nomen BIRM accepit, varias accessiones (non tam plene impletas, sed potius sumptas) acquirit facultates - omnia singula possunt inveniri in fama.

Esse honestum difficile erat aliquid integrum dicere BIMA 2013; Ingenue est calliditas nimis festinanter facta. In terminis codicis, nullae fere innovationes omnino speciales erant, nisi potius inopem conatum quandam syntaxin unitam creare pro parser, aspectu simile linguae IRBIS 64 formatting (et re vera etiam systematis ISIS — cum parenthesi ut structurae cyclicae, quare In tempore putavi satis frigidus videri). Parser nequaquam offendit in his circulis parenthesi congrui generis (quia parentheses etiam aliud munus expleverunt, scilicet, structuras ad libitum designaverunt in parsing quae omitti potest). Iterum omnes refero qui volet cognoscere tum difficilem existimationem, syntaxin BIRM iniustam accuratius ad meam illius temporis famam.

In genere, praeter luctantem cum propria parser, nihil habeo quod de codice huius versionis dicam - nisi de conversione fontium exsistentium in C ++ servata quaedam notae typicae .NET codicis (ut honestum est, suus'. obscurum , quod ad omnia me movenda prorsus admonuit - fortasse quidam stultus metus est ne mei fontis Codices occulti, quasi aliquid aequivalens cum recipe Coca-Cola arcano).

Fortassis haec stultorum sententia etiam in causa est difficultatum in bibliotheca DLL proveniens cum interface facta operativae existentis ad notitias ingrediendi in electronicum catalogum (sic, aliam rem magni momenti non commemoravi: posthac omnes. Codex BIRM "machinae" tam exspectabatur, a parte interfaciei separata est et in opportunitate DLL fasciculata est). Quare necesse erat singulas operas pro his propositis scribere, quae nihilominus, in specie ac methodo commercii cum utentis, impudenter eandem workstationem "Catalogizer" systematis IRBIS 64 expresserunt — haec quaestio separata est. In summa: necessariam soliditatem meis tunc explicationibus pro graduatio meo propositi (alioquin sola parser machina indigestibilis quodammodo non satis erat). Praeterea nonnullas difficultates obveniebam ad exsequendam interfaciem Catalogi operationum cum modulis meis propriis, in utroque C++ et C# effectis, et directe accessu meo machinam.

In universum, impariter satis, hoc potius inconditum exemplar futuri BIRMA.NET quod "equus" meus in quadriennium insequentibus fiere destinabatur. Fieri non potest, hoc tempore saltem non tentavi vias novas, perfectioresque ideae diuturnae exsequendas. Inter alias innovationes, iam involutae sunt series cyclicae quae elementa optionales comprehendere potuerunt - hoc est quomodo ideam universalium exemplorum ad vitam vivificandam pro descriptionibus bibliographicarum publicationum ac variarum rerum iucundarum. Attamen, in practica opera tunc temporis, haec omnia exigui exigebant, et exsecutionem tunc temporis satis sufficientem habui ad intrandas tabulas contentorum. Praeterea, vector evolutionis nostrae bibliothecae magis ac magis deviare coepit ad digitizationes archivi musei, referens aliaque opera parvi momenti ad me, quae tandem me coegit ut tandem eam relinquerem, iis qui vellent cedere. His omnibus magis placet.

Paradoxice, post hos scenicos eventus, consilium BIRM, quod tum iam omnes notas figurae diuturni constructionis proiectionis habuit, inchoare videbatur novam vitam diu exspectatam! Otiosis cogitationibus tempus liberius habui, iterum coepi pectere Mundum Telam quaerendo simile quid (fortunate, nunc iam suspicari potui, omnia haec non uspiam, sed in GitHub quaerere), et alicubi in At the. Ineunte hoc anno, tandem veniebam productum congruentem e comitatu notissimo Salesforce sub nomine parvo Gorp. Per se omnia fere, quae opus erant a tali machinamento, scilicet, singula fragmenta ab arbitrario ingeniose segregare, textum clare structum, cum satis usor-amicum interfacem habens pro fine usuario, inter has essentias intelligibiles, ut exemplar, exemplum et occursus, simul familiari syntaxi regularium locutionum utens, quae incomparabiliter magis legi potest ob divisionem in designatas coetus semanticos pro parsing.

Communiter hoc unum statui Gorp (Miror quid hoc nomen sit? Forsitan aliquod genus "generalis parser regularis ordinatur"?) - quod prorsus diu quaesivi. Verum, eius immediata exsecutio pro meis necessitatibus talem quaestionem habuit ut haec machinatio nimis arcta adhaesio ad seriem structurae fontis textus postularet. Aliquot enim relationes ut tabellae stipes (nempe ab econticis ponuntur ut exempla perspicua utendi propositi), hoc satis idoneus est, sed in eisdem textibus tabularum contentorum lustratarum, improbabile est. Ceterum pagina eadem cum tabula contentorum incipere potest a verbis "Tabulae Contents", "Contentum" et quaevis aliae descriptiones praevias quas in eventibus analysin intentae (et abscindendo manually. omni tempore etiam incommodum est). Praeterea inter singula elementa repetenda, ut auctoris nomen, titulum et numerum paginarum, pagina certam quisquiliarum quantitatem (exempli gratia, delineatas et notas temere tantum) contineri potest, quae etiam grata esse possint. abscindere. Novissimus tamen aspectus nondum ita significatus erat, sed ob primam, exsistentia exsistentia non potuit incipere quaerere structuras necessarias in textu quodam loco, sed simpliciter processit ab initio, non invenit. ibi exemplaria certa et .... meum officium finivit. Uti patet, sweaking aliquod opus saltem spatium inter repetendas structuras permittit, idque me ad operandum redegit.

Alia quaestio fuit ipsum consilium in Java, si in posterum aliqua instrumenta instrumentorum huius technologiae cum familiaribus applicationibus ad intrandas notitias in databases exsistentes (ut Irbis "Cataloguer") efficere cogitavit, saltem saltem hoc in C# et .NET. Non est quod Java ipsa lingua mala est – semel etiam usus sum ad effectum deducendi per applicationem fenestrarum interesting quae calculatoris programmarii domestici functionem implevit (sicut pars consilii curriculi). Et in verbis syntaxis eidem C-acri simillimum est. Bene, hoc solum plus est: facilius mihi erit propositum exsistens finalisare. Nolui tamen in hunc mundum magis insolitum fenestrae (vel potius desktop) technologiae Javae iterum infundere - tamen lingua ipsa non ad talem usum formandam, nec iterationem omnino desideres. praecedens. Forsitan plane est, quia C# coniunctus cum WinForms Delphis multo propinquior est, cum quo multi ex nobis olim inceperunt. Feliciter, necessaria solutio satis cito inventa est in forma propositi IKVM.NETquae efficit facilem esse interpretandi programmata Java in tractanda .NET codicem. Verum, consilium ipsum iam ab auctoribus relictum est, sed eius postrema exsecutio mihi permisit ut actiones necessarias ad fontes fontium satis feliciter explere. Gorp.

Omnes igitur mutationes necessarias feci et omnia in DLL speciei congrui congregavi, quae facile ab omnibus inceptis "excerpi" potuit pro .NET Framework in Studio Visuali condito. Interea alium tabulatum creavi ad opportunum proventus redditos Gorp, in specie datarum structurarum respondentium quae in tabula visum processui conveniet (accepta pro fundamento tam ordinum quam columnarum; tum claves dictionarii et indices numerales). Bene, necessariae utilitates ipsae ad expediendas et ostentandas eventus satis cito scripta sunt.

Item, processus adaptationis templates ad novam machinam ad docendum ad exemplaria exsistentia tabulae contentorum perlustrandarum parse textuum specialium inpedimenta non causare. Re quidem vera ne ad priora mea exempla omnino referre debebam: omnia necessaria exempla de integro creavi. Praeterea, si exempla destinata ad operandum cum praecedenti systematis versione satis angustum pro textuum compage constituunt, qui cum eorum ope recte parsed possent, nova machina iam effecit ut satis universalia exempla enucleare posset, quae pluribus generibus notarum ad semel. Conatus sum etiam scribere aliquod genus comprehensivae templates pro quavis mensa arbitraria contentorum textuum, quamquam, utique, etiam omnibus novis facultatibus aperiendis, in iis, praesertim, limitata facultatem ad easdem repetendi series inserendi. ut, exempli gratia, cognomina et sigla plures auctores in ordine), hoc evasit utopia.

Forsitan in posterum poterit quendam notionem meta- emplatorum efficere, qui fontem textum reprimere poterit pro obsequio plurium exemplorum promptorum simul, ac deinde, secundum consecutiones consecutiones, deligere. maxime idoneus, algorithmus intelligens utens aliquo genere. Sed nunc de alia quaestione magis sollicitus eram. A Total similis GorpQuamvis omnis eius versatilis ac modificationes posui, tamen in se insita erat ut unum, ut videtur, simplex, id facere posset, quod a prima prima versione propria scriptor meus facere potuit. Nempe: facultatem inveniendi et extrahendi e fonte textu omnia fragmenta, quae larvam intra Formulae loco suo loco designatam aequant, cum omnino non curet quid textus ille in spatiis inter haec fragmenta contineat. Hactenus novam machinam leviter emendavi, sino ut inquirere omnes possibiles novas repetitiones certarum talium personarum e positione currenti, possibilitatem relinquendo praesentiam in textu notarum arbitrariorum, quae omnino erant. unaccounted enim in parsing, inter detectas repetens structuras inclusit. Nihilominus hoc non effecit ut proximum larva quantumvis eventus investigationis in priori fragmento personati respondente utens: severitas structurae textus descriptae adhuc locum non reliquit inclusionibus irregularibus characteribus arbitrariis.

Et si ad exempla tabularum contentorum quas in hanc quaestionem incidi nondum tam gravis videor, tunc cum nova parsing mechanismum adhibere conatur ad simile opus parsing contentorum a loco (i.e. eadem parsing), suum circumscriptiones hic sunt visae cum omni evidentia. Post omnia, satis facile est supponere necessarias personas pro fragmentis notae interretialis, inter quas notationes quaerimus (quae extrahendae sunt) collocari debent, sed quomodo assem cogere possumus ut statim ad proximum progrediamur. simile fragmentum, quamvis omnia tags ac HTML attributa quae in spatiis inter se positis poni possunt?

Postquam paululum ratus sum, duas formas inserviendi inducere decrevi (% All_before) и (%all_after)prompto proposito inservire cupimus ut omnia quae in textu fonti contineantur omittantur ante quamlibet formam (mask) quae sequuntur. Porro si (% All_before) hae omnes arbitrariae inclusiones neglecta, tum (%all_after)e contrario fragmentum ex antecedente fragmento addi desideratum. Simplex sonat, sed ad hanc notionem deducendam, quam per gorp fontes iterum pectere habui, ut necessarias modificationes redderet, ne logicam iam effectam dissolveret. Ad extremum hoc facere potuimus (quamvis etiam ipsa, prima, licet valde buggy, exsecutio parser meae scripta est, et etiam citius - in duobus hebdomadibus). Posthac systema formam vere universalem suscepit - non minus quam XII annis post primos conatus ad munus suum faciendum.

Scilicet hoc non est finis somniorum. Potes etiam omnino rescribere gorp templates parser in C#, utens aliquo ex bibliothecis in promptu ad exsequendam grammaticam liberam. Puto codicem signanter simpliciorem esse debere, et hoc nobis permittet legatum in forma fontium Javae existentium. Sed cum exsistenti machinae genere, etiam satis potest varias res iucundas facere, etiam conatus efficiendi meta-templationes quas supra memoravi, ne dicam varias notitias e variis paginis parsing (non tamen excludo. quae instrumenta programmandi specializata ad hoc magis idonea sunt – Modo experientiam illis nondum opportunam non habui).

Obiter hac aestate iam invitationem accepi ab electronica electronica societas quae technologiae Memassiae utitur (de elit originalis. Gorp) colloquium pro subsequenti in Riga opere. Proh dolor, momento temporis paratus sum ad tales officinas.

Si haec materia aliquod studium excitat, in altera parte conabor fusius describere technologiam componendi et deinde parsing exempla utendi exemplo exsecutionis quae in Memasys. Gorp (Mea additamenta, exceptis duobus functionis verbis iam descriptis, nullas fere mutationes ad ipsam syntaxin Formulae faciunt, ita fere omnia documenta pro systemate originali. Gorp Apta quoque versioni meae).

Source: www.habr.com

Add a comment