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

incremental coverage of legacy software languages
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Incremental Coverage

  • f Legacy Software Languages
  • V. Zaytsev @ PX/17.2 @ SPLASH 2017
slide-2
SLIDE 2

The Generation Gap

1GL 2GL 3GL . 4GL .

slide-3
SLIDE 3

The Generation Gap

1GL 2GL 3GL . 4GL .

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

slide-4
SLIDE 4

Language Migration

1GL 2GL 3GL . 4GL .

slide-5
SLIDE 5

Language Migration with Generated Code

2GL 3GL . (modern compiler/IDE/…)

slide-6
SLIDE 6

Language Migration with 4GL Code

2GL 3GL . 4GL . (modern compiler/IDE/…)

slide-7
SLIDE 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!
slide-8
SLIDE 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
slide-9
SLIDE 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
slide-10
SLIDE 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
slide-11
SLIDE 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
slide-12
SLIDE 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?
slide-13
SLIDE 13