Wei-Ngan Chin

ORCID: 0000-0002-9660-5682
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Logic, programming, and type systems
  • Formal Methods in Verification
  • Software Testing and Debugging Techniques
  • Parallel Computing and Optimization Techniques
  • Software Engineering Research
  • Security and Verification in Computing
  • Distributed systems and fault tolerance
  • Embedded Systems Design Techniques
  • Logic, Reasoning, and Knowledge
  • Software Reliability and Analysis Research
  • Advanced Malware Detection Techniques
  • Distributed and Parallel Computing Systems
  • Advanced Software Engineering Methodologies
  • Real-Time Systems Scheduling
  • semigroups and automata theory
  • Algorithms and Data Compression
  • Numerical Methods and Algorithms
  • Constraint Satisfaction and Optimization
  • Interconnection Networks and Systems
  • Advanced Database Systems and Queries
  • Model-Driven Software Engineering Techniques
  • Time Series Analysis and Forecasting
  • Data Mining Algorithms and Applications
  • Rough Sets and Fuzzy Logic
  • Fault Detection and Control Systems

National University of Singapore
2015-2024

Yale-NUS College
2015

Singapore-MIT Alliance for Research and Technology
2003-2008

Massachusetts Institute of Technology
2007

Imperial College London
2003

The University of Tokyo
2000

Cornell University
1996

Utrecht University
1996

Karlsruhe University of Education
1996

University of Manchester
1983

The tupling transformation strategy can be used to merge loops together by combining recursive calls and also eliminate redundant for a class of programs. clever (and difficult) step this is find an appropriate tuple calls, called the eureka tuple, which would allow each set computed recursively from its previous set. In many cases, produce super-linear speedup.

10.1145/154630.154643 article EN 1993-01-01

Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the overridden methods superclasses, leading imprecision during program reasoning. To address this, we advocate a fresh approach OO verification that focuses on distinction relation between cater calls with static dispatching from those dynamic dispatching. We formulate novel specification...

10.1145/1328438.1328452 article EN 2008-01-07

Techniques for proving termination and non-termination of imperative programs are usually considered as orthogonal mechanisms. In this paper, we propose a novel mechanism that analyzes proves both program at the same time. We first introduce concept second-order constraints accumulate set relational assumptions on them via Hoare-style verification. then solve these with case analysis to determine (conditional) non- scenarios expressed in some specification logic form. contrast current...

10.1145/2737924.2737993 article EN 2015-06-03

10.1023/a:1012996816178 article EN Higher-Order and Symbolic Computation 2001-01-01

Large functional programs are often constructed by decomposing each big task into smaller tasks which can be performed simpler functions. This hierarchical style of developing has been found to improve programmers' productivity because functions easier construct and reuse. However, written in this way tend less efficient. Unnecessary intermediate data structures may created. More function invocations required.

10.1145/141471.141494 article EN 1992-01-01

Embedded systems are becoming more widely used but these often resource constrained. Programming models for should take into formal consideration resources such as stack and heap. In this paper, we show how memory bounds can be inferred assembly-level programs. Our inference process captures the needs of each method in terms symbolic values its parameters. For better precision, infer path-sensitive information through a novel guarded expression format. current proposal relies on Presburger...

10.1145/1375634.1375656 article EN 2008-06-07

Many program optimisations and analyses, such as array-bound checking, termination analysis, etc, depend on knowing the size of a function's input output. However, information can be difficult to compute. Firstly, accurate computation requires detecting relation between different inputs function. Secondly, analyses may require slightly information, thus computation. Literature in has mainly concentrated instead inferencing. In this paper, we provide generic framework which variants expressed...

10.1145/328690.328893 article EN 1999-11-01

The problems involved in developing efficient parallel programs have proved harder than those sequential ones, both for programmers and compilers. Although program calculation has been found to be a promising way solve these the world, we believe that it needs much more effort study its effective use world. In this paper, propose calculational framework derivation of with two main innovations:. -We novel inductive synthesis lemma based on which an elementary but powerful parallelization...

10.1145/268946.268972 article EN 1998-01-01

Abstract Large functional programs are often constructed by decomposing each big task into smaller tasks which can be performed simpler functions. This hierarchical style of developing has been found to improve programmers' productivity because functions easier construct and reuse. However, written in this way tend less efficient. Unnecessary intermediate data structures may created. More function invocations required. To reduce such performance penalties, Phil Wadler proposed a...

10.1017/s0956796800001179 article EN Journal of Functional Programming 1994-10-01

Region-based memory management offers several important potential advantages over garbage collection, including real-time performance, better data locality, and more efficient use of limited memory. Researchers have advocated the regions for functional, imperative, object-oriented languages. Lexically scoped are now a core feature Real-Time Specification Java (RTSJ)[5].Recent research in region-based programming has focused on region checking, which requires manual effort to augment program...

10.1145/996841.996871 article EN Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation 2004-06-09

10.1007/s10009-014-0307-4 article EN International Journal on Software Tools for Technology Transfer 2014-03-18

The symbolic-heap fragment of separation logic has been actively developed and advocated for verifying the memory-safety property computer programs. At present, one its biggest challenges is to effectively prove entailments containing inductive heap predicates. These are usually proof obligations generated when programs that manipulate complex data structures like linked lists, trees, or graphs. To assist in proving such entailments, this paper introduces a lemma synthesis framework, which...

10.1145/3158097 article EN Proceedings of the ACM on Programming Languages 2017-12-27

Many software properties can be analysed through a relational size analysis on each function's inputs and outputs. Such (through form of dependent typing) has been successfully applied to declarative programs, restricted imperative programs; but it elusive for object-based programs. The main challenge is that objects may mutate they aliased. In this paper, we show how safety policies programs by tracking enforced objects' invariants the preconditions methods. We propose several new ideas...

10.1145/1062455.1062500 article EN 2005-01-01
Coming Soon ...