incremental coverage of legacy software languages
play

Incremental Coverage of Legacy Software Languages V. Zaytsev @ - PowerPoint PPT Presentation

Incremental Coverage of Legacy Software Languages V. Zaytsev @ PX/17.2 @ SPLASH 2017 The Generation Gap 4GL . 3GL . 2GL 1GL The Generation Gap MAP STD_PARM_V OF ACC_XXX_I TO CASH_ACT_UPD 4GL . MOVE INPUT-PARM OF


  1. Incremental Coverage of Legacy Software Languages V. Zaytsev @ PX/17.2 @ SPLASH 2017

  2. The Generation Gap 4GL . 3GL . 2GL 1GL

  3. The Generation Gap MAP STD_PARM_V OF ACC_XXX_I TO CASH_ACT_UPD 4GL . MOVE INPUT-PARM OF JCL(1:LL OF JCL) TO BOOKING-DATE 3GL . MVC X’49C’(8,1),X’4A4’(2) 2GL D2 07 14 9C 24 A4 1GL

  4. Language Migration 4GL . 3GL . 2GL 1GL

  5. Language Migration with Generated Code 3GL . 2GL (modern compiler/IDE/…)

  6. Language Migration with 4GL Code 4GL . 3GL . 2GL (modern compiler/IDE/…)

  7. Keep in Mind ● No language design, 100% implementation ● Documentation is not (a) given ● Domain experts = language experts/devs ● Many iterations with domain experts ● Months and years of effort, even with advanced tech ● Don’t try this at home!

  8. Challenge: Regression Parsing ● regression parsing in general works well ● also in industrial settings ● great for the nightly build ● sometimes suitable only for weekly builds ● takes too long for continuous processes ● incrementality is ad hoc and limited

  9. Challenge: Test Suite Inference ● first days of the compiler: nothing parses ● first months of the compiler: nothing runs ● customers grow impatient ● need to measure progress ● extensive test suites take tremendous time to create ● need coverage analysis, iterative refinement, etc

  10. Challenge: Grammar Impact Analysis ● grammars are great ● finite specs of complex infinite artefacts ● if one nonterminal changes, what is the impact? ● no readily useful techniques, but no foreseeable showstoppers ● knowing the change impact enables many incremental techniques

  11. Challenge: Grammar/Samples Dependencies ● for some languages, grammar inference is feasible and useful ● cf. “ Parser Generation by Example for Legacy Pattern Languages ” @ GPCE ● very few studies on incremental grammar inference ● needed both ways: codebase are updated, grammars too ● many opportunities to research and make great tools

  12. Challenge: Neighbour Analysis ● the dark data of compiler construction: near misses ● cannot parse: “totally against expectations” vs “missing comma” ● useful for error tolerance and recovery ● done manually when exploring a new 4GL ● practical parsers often distinguish between success and commit ● differential testing + fuzzing?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend