
arXiv: 1701.00634
Paisley is an extensible lightweight embedded domain-specific language for nondeterministic pattern matching in Java. Using simple APIs and programming idioms, it brings the power of functional-logic processing of arbitrary data objects to the Java platform, without constraining the underlying object-oriented semantics. Here we present an extension to the Paisley framework that adds pattern-based control flow. It exploits recent additions to the Java language, namely functional interfaces and lambda expressions, for an explicit and transparent continuation-passing style approach to control. We evaluate the practical impact of the novel features on a real-world case study that reengineers a third-party open-source project to use Paisley in place of conventional object-oriented data query idioms. We find the approach viable for incremental refactoring of legacy code, with significant qualitative improvements regarding separation of concerns, clarity and intentionality, thus making for easier code understanding, testing and debugging.
In Proceedings WLP'15/'16/WFLP'16, arXiv:1701.00148
FOS: Computer and information sciences, Computer Science - Programming Languages, D.1.6, Electronic computers. Computer science, QA1-939, D.1.5, D.3.3, D.1.5; D.1.6; D.3.3, QA75.5-76.95, Mathematics, Programming Languages (cs.PL)
FOS: Computer and information sciences, Computer Science - Programming Languages, D.1.6, Electronic computers. Computer science, QA1-939, D.1.5, D.3.3, D.1.5; D.1.6; D.3.3, QA75.5-76.95, Mathematics, Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 1 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
