摘要:Tam tikrai sričiai būdingos kalbos (Domain-Specific Languages, DSL) į bendros paskirties kalbas (General-Purpose Languages, GPL) dažnai įterpiamos tam, kad būtų pateiktos sričiai būdingos problemos išreiškimui. Vartojama natūrali tos srities sintaksė GPL programose. Tai pagreitina plėtros procesą, programos tampa suprantamesnės, lengviau atlikti pasikartojančias užduotis. Galutiniai vartotojai ar srities ekspertai žino, kokią sintaksę reikėtų vartoti, tačiau nemoka sukurti gramatikos ir kalbos apdorojančių priemonių. Norint gauti gramatiką iš įvesties pavyzdžių, galima naudoti gramatines išvadas. Gramatikai išgauti iš DSL pavyzdžių buvo naudojamas gramatinių išvadų memetitinis algoritmas, vadinamas MAGIc. Šiame darbe MAGIc praplečiamas, įdiegiant apdorotas DSL į esamą GPL gramatiką. Be to, į išvadų gavimo procesą įtraukiami ir neigiami pavyzdžiai. Iš gautų rezultatų galima spręsti, kad MAGIc puikiai tinka DSL įtraukti, o išvadų gavimo procesas, naudojant negatyvius pavyzdžius, tobulesnis.http://dx.doi.org/10.5755/j01.itc.40.4.980
其他摘要:Embedding of Domain-Specific Languages (DSLs) into General-Purpose Languages (GPLs) is oftenused to express domain-specific problems using the domain’s natural syntax inside GPL programs. It speeds up thedevelopment process, programs are more self-explanatory and repeating tasks are easier to handle. End-users ordomain experts know what the desired language syntax would look like, but do not know how to write a grammar andlanguage processing tools. Grammatical inference can be used for grammar extraction from input examples. Amemetic algorithm for grammatical inference, named MAGIc, was implemented to extract grammar from DSLexamples. In this work MAGIc is extended with embedding the inferred DSL into existing GPL grammar.Additionally, negative examples were also incorporated into the inference process. From the results it can be concludedthat MAGIc is successful for DSL embedding and that the inference process is improved with use of negativeexamples.http://dx.doi.org/10.5755/j01.itc.40.4.980