arrow
Return

Pattern Matching Based on Object Graphs

delete2021-01-01
delete1
delete
OA
AI
W
Wei Ke *
K
Ka‐Hou Chan
DOI:10.1109/ACCESS.2021.3128575delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Pattern matching has been widely adopted in functional programming languages, and is gradually getting popular in OO languages, from Scala to Python. The structural pattern matching currently in use has its foundation on algebraic data types from functional languages. To better reflect the pointer structures of OO programs, we propose a pattern matching extension to general statically typed OO languages based on object graphs. By this extension, we support patterns having aliasing and circular referencing, that are typically found in pointer structures. With the requirement of only an abstract subtyping preorder on types, our extension is not restricted to a particular hierarchical class model. We give the formal base of the graph model, that is able to handle aliases and cycles in patterns, together with the abstract syntax to construct the object graphs. More complex cases of conjunction and disjunction of multiple patterns are explored with resolution. We present the type checking rules and operational semantics to reason about the soundness by proving the type safety. We also discuss the design decisions, applicability and limitation of our pattern matching extension.
Keywords:
Pattern matching
Semantics
Syntactics
Safety
Libraries
C plus plus languages
Writing
Pattern matching
object graph
subtyping
type system
operational semantics
programming language

Journal

IEEE Access cover
IEEE Access
IF:
3.6
Papers:
9.8W
Citations:
29.4W

Organization

M
Macao Polytechnic University
Scholars:
1.6K
Papers: 1.5K
Citations: 805
Cited Papers

Cited Papers

Engineering quantum correlations to enhance transport in cold atoms
err2013-01-28
err0
PREAI
errMark Sadgrove; Torben Schell; Ken'ichi Nakagawa; Sandro Wimberger
errShare
errSave
errShare
errSave
A graph-based generic type system for object-oriented programs
err2013-01-09
err5
PREAI
errKe, Wei; Liu, Zhiming; Wang, Shuling; Zhao, Liang
errShare
errSave
errShare
errSave
Oxygen isotope dating of the Australian regolith
err1988-02-01
err0
PREAI
errMichael I. Bird; Allan R. Chivas
errShare
errSave
no more