Andrew Santosa
Research Fellow
Department of Computer Science
National University of Singapore
Computing 1 #02-15, 13 Computing Drive, Singapore 117417
Republic of Singapore
Phone: +65-6516-2792, Mobile: +65-9482-7396
FAX: +65-6779-4580 (Attn: Andrew E. Santosa/RF)
E-Mail:

Contents


Brief Bio

I am working towards achieving the goal of industrial production of dependable software. In particular, I am currently working on verification and analysis of programs (in general, anything that can be specified as recursive function or relation, both deterministic (sequential) or nondeterministic (concurrent), even with fairness requirement) by means of symbolic execution, especially using constraint logic programming (CLP). The basic approach is to invent novel non-heuristic techniques for search algorithms. The application area currently being targeted at encompasses the analysis of C source code, verification of real-time systems, and reasoning about omega automata (for which live sequence charts are instances).

I am also tuning in to the developments in programming language technology and software engineering.

In my computer science work, I frequently deal with fixpoint computation. Now, fixpoint computation is founded upon semantics, and therefore we need to look up the dictionary, say, the Oxford English dictionary, where you can find recursive definitions, such as:

Now, let us start with a thing that has a soft glow. According to first definition, we can conclude that the thing has some lustre. By the second definition, we can say that tbe thing has some sheen, and again since it both has some sheen and soft glow, it has some lustre. Since we already know that the object glows softly, has lustre, and has sheen, we know that from the definitions above we will not learn anything new anymore. We finally conclude that the object has soft glow, lustre, and sheen.

My degrees are Doctor of Philosophy (Computer Science, National University of Singapore, Singapore, 2008), Master of Engineering (Graduate School of Information Systems, University of Electro-Communications (UEC), Tokyo, Japan, 1999), Bachelor of Engineering (Computer Science and Information Mathematics, UEC, Tokyo, Japan, 1997).


Research

Program Reasoning in CLP

Here are some of the fruits of research projects led by Professor Joxan Jaffar and with the collaboration of Dr. Razvan Voicu in which I am a member. It resulted in my PhD thesis mentioned below.

Declarative Concurrent Programming

This work is the result of my collaboration with Professor Rafael Ramirez of Universitat Pompeu Fabra.

Selected Other Work


Liveness is Reachability, and Definitely not Safety

(Under Construction)


CLP(R) Bag of Tricks

Before I start, for those who want to learn constraint logic programming or Prolog, the fastest possible way known to me is to study the short book Professional Programmer's Guide to Prolog by A. G. Hamilton, published in 1989 by Pitman Publishing. It does not only teach you how to program, but how to program the logic programming way. You can always attach a counter at every recursion ala imperative for loops, but the book will teach you the more effective use of logic programming recursions.
Latest update: 8 November 2009